Update sdm controllers

Clean code
This commit is contained in:
Salman Manoe 2025-03-14 13:39:23 +07:00
parent c7c751e61f
commit 0801da3173
42 changed files with 4911 additions and 6111 deletions

View File

@ -265,6 +265,14 @@
<version>${commons-collections.version}</version> <version>${commons-collections.version}</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${project.lombok.version}</version>
<scope>provided</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -6,73 +6,51 @@ import java.text.SimpleDateFormat;
/** /**
* Constants value * Constants value
* *
* @author Roberto * @author Roberto, Syamsu
*/ */
public class Constants { public class Constants {
public static final String JASAMEDIKA = "SkFTQU1FRElLQQ=="; public static final String JASAMEDIKA = "SkFTQU1FRElLQQ==";
public static final String APP_VERSION = "APP_VERSION"; public static final String APP_VERSION = "APP_VERSION";
public static final String AUTH_HEADER_NAME = "X-AUTH-TOKEN"; public static final String AUTH_HEADER_NAME = "X-AUTH-TOKEN";
//for example
public static final String IDR = "IDR"; public static final String IDR = "IDR";
public static final String RP = "RP"; public static final String RP = "RP";
public static final String COMMA = ","; public static final String COMMA = ",";
public static final DecimalFormat ONE_COMA_FORMAT = new DecimalFormat("#.#"); public static final DecimalFormat ONE_COMA_FORMAT = new DecimalFormat("#.#");
public static final DecimalFormat TWO_COMA_FORMAT = new DecimalFormat( public static final DecimalFormat TWO_COMA_FORMAT = new DecimalFormat("#.##");
"#.##"); public static final DecimalFormat MONEY_FORMAT_WITHOUT_COMMA = new DecimalFormat("###,###");
public static final DecimalFormat MONEY_FORMAT_WITHOUT_COMMA = new DecimalFormat(
"###,###");
public static final class DateFormat { public static final class DateFormat {
public static final SimpleDateFormat yyyyMMdd = new SimpleDateFormat( public static final SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyyMMdd");
"yyyyMMdd"); public static final SimpleDateFormat dd_MMM_yyyy = new SimpleDateFormat("dd MMM yyyy");
public static final SimpleDateFormat dd_MMM_yyyy = new SimpleDateFormat( public static final SimpleDateFormat yyyy_MM_dd_HH_mm_ss = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
"dd MMM yyyy"); public static final SimpleDateFormat yyyy_MM_dd_T_HH_mm_ss = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
public static final SimpleDateFormat yyyy_MM_dd_HH_mm_ss = new SimpleDateFormat( public static final SimpleDateFormat yyyyMMdd_HH_mm_ss = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
"yyyy-MM-dd HH:mm:ss");
public static final SimpleDateFormat yyyy_MM_dd_T_HH_mm_ss = new SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ss");
public static final SimpleDateFormat yyyyMMdd_HH_mm_ss = new SimpleDateFormat(
"yyyyMMdd HH:mm:ss");
} }
/* message */
public static final class MessageInfo { public static final class MessageInfo {
public static final String INFO_MESSAGE = "INFO_MESSAGE"; public static final String INFO_MESSAGE = "INFO_MESSAGE";
public static final String WARNING_MESSAGE = "WARNING_MESSAGE"; public static final String WARNING_MESSAGE = "WARNING_MESSAGE";
public static final String ERROR_MESSAGE = "ERROR_MESSAGE"; public static final String ERROR_MESSAGE = "ERROR_MESSAGE";
public static final String EXCEPTION_MESSAGE = "EXCEPTION_MESSAGE"; public static final String EXCEPTION_MESSAGE = "EXCEPTION_MESSAGE";
} }
/* locale id (indonesia / default) and en (english) */ /* locale id (indonesia / default) and en (english) */
public static final class Locale { public static final class Locale {
public static final String INA = "ina"; public static final String INA = "ina";
public static final String EN = "en"; public static final String EN = "en";
} }
//Update perubahan di sini, harus disamakan dengan package yang ada di jasamedika-bussiness
//com.jasamedika.medifirst2000.logging.hibernate.async
public static final class HttpHeader { public static final class HttpHeader {
public static final String SUPERVISING = "Supervising"; public static final String SUPERVISING = "Supervising";
public static final String MODULE = "Module"; public static final String MODULE = "Module";
public static final String FORM = "Form"; public static final String FORM = "Form";
public static final String ACTION = "Action"; public static final String ACTION = "Action";
public static final String URL_FORM = "AlamatUrlForm"; // syamsu public static final String URL_FORM = "AlamatUrlForm"; // syamsu
public static final String KD_RUANGAN = "KdRuangan"; // syamsu public static final String KD_RUANGAN = "KdRuangan"; // syamsu
public static final String KD_RUANGAN_T = "KdRuanganT"; // syamsu public static final String KD_RUANGAN_T = "KdRuanganT"; // syamsu
public static final String KD_RUANGAN_A = "KdRuanganA"; // syamsu public static final String KD_RUANGAN_A = "KdRuanganA"; // syamsu
public static final String TGL_KIRIM = "tglKirim"; // syamsu public static final String TGL_KIRIM = "tglKirim"; // syamsuu
// public static final String RUANGAN_TUJUAN = "ruanganTujuan"; // syamsu
// public static final String ID_RUANGAN_TUJUAN_ALT = "ruanganTujuanAlt"; // syamsu
public static final String KD_USER = "KdUser"; // syamsu public static final String KD_USER = "KdUser"; // syamsu
} }
} }

View File

@ -14,5 +14,4 @@ public final class MessageResource {
public static final String LABEL_SUCCESS_CREATED = "label.success.created"; public static final String LABEL_SUCCESS_CREATED = "label.success.created";
public static final String LABEL_SUCCESS_OK = "label.success.ok"; public static final String LABEL_SUCCESS_OK = "label.success.ok";
public static final String LABEL_UPDATE_DATA_CUTI = "label.update.data.cuti"; public static final String LABEL_UPDATE_DATA_CUTI = "label.update.data.cuti";
} }

View File

@ -1,35 +1,33 @@
package com.jasamedika.medifirst2000.controller; package com.jasamedika.medifirst2000.controller;
import java.util.HashMap; import com.jasamedika.medifirst2000.constants.MessageResource;
import java.util.List; import com.jasamedika.medifirst2000.controller.base.LocaleController;
import java.util.Map; import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.MapRuanganToAkomodasiService;
import javax.servlet.http.HttpServletRequest; import com.jasamedika.medifirst2000.service.RuanganService;
import javax.validation.Valid; import com.jasamedika.medifirst2000.vo.MapRuanganToAkomodasiVO;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.orm.jpa.JpaSystemException; import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.jasamedika.medifirst2000.constants.Constants; import javax.servlet.http.HttpServletRequest;
import com.jasamedika.medifirst2000.constants.MessageResource; import javax.validation.Valid;
import com.jasamedika.medifirst2000.controller.base.LocaleController; import java.util.HashMap;
import com.jasamedika.medifirst2000.core.web.WebConstants; import java.util.List;
import com.jasamedika.medifirst2000.exception.ServiceVOException; import java.util.Map;
import com.jasamedika.medifirst2000.service.MapRuanganToAkomodasiService;
import com.jasamedika.medifirst2000.service.RuanganService; import static com.jasamedika.medifirst2000.constants.Constants.MessageInfo.ERROR_MESSAGE;
import com.jasamedika.medifirst2000.util.CommonUtil; import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.LABEL_SUCCESS;
import com.jasamedika.medifirst2000.util.rest.RestUtil; import static com.jasamedika.medifirst2000.util.CommonUtil.isNotNullOrEmpty;
import com.jasamedika.medifirst2000.vo.MapRuanganToAkomodasiVO; import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonHttpStatus;
import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonResponse;
import static org.springframework.http.HttpStatus.*;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.web.bind.annotation.RequestMethod.*;
@RestController @RestController
@RequestMapping("/akomodasi") @RequestMapping("/akomodasi")
@ -41,121 +39,114 @@ public class AkomodasiController extends LocaleController<MapRuanganToAkomodasiV
private MapRuanganToAkomodasiService mapRuanganToAkomodasiService; private MapRuanganToAkomodasiService mapRuanganToAkomodasiService;
@Autowired @Autowired
private RuanganService ruanganService; private RuanganService<?> ruanganService;
@RequestMapping(value = "/save-mapping", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/save-mapping", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> saveMappingAkomodasi(HttpServletRequest request, public ResponseEntity<Map<String, Object>> saveMappingAkomodasi(HttpServletRequest request,
@Valid @RequestBody MapRuanganToAkomodasiVO vo) { @Valid @RequestBody MapRuanganToAkomodasiVO vo) {
Map<String, Object> result = new HashMap<String, Object>(); Map<String, Object> result = new HashMap<>();
try { try {
MapRuanganToAkomodasiVO resultVo = new MapRuanganToAkomodasiVO(); MapRuanganToAkomodasiVO resultVo;
if (CommonUtil.isNotNullOrEmpty(vo.getId())) { if (isNotNullOrEmpty(vo.getId())) {
resultVo = mapRuanganToAkomodasiService.update(vo); resultVo = mapRuanganToAkomodasiService.update(vo);
} else { } else {
resultVo = mapRuanganToAkomodasiService.add(vo); resultVo = mapRuanganToAkomodasiService.add(vo);
} }
result.put("data", resultVo); result.put("data", resultVo);
if (CommonUtil.isNotNullOrEmpty(result)) { if (isNotNullOrEmpty(result)) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, CREATED, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage);
} else { } else {
return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE); return getJsonHttpStatus(NOT_ACCEPTABLE);
} }
} catch (ServiceVOException sve) { } catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when add mapping akomodasi", sve.getMessage()); LOGGER.error("Got ServiceVOException {} when add mapping akomodasi", sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); addHeaderMessage(ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when add mapping akomodasi", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when add mapping akomodasi", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/delete-mapping", method = RequestMethod.DELETE) @RequestMapping(value = "/delete-mapping", method = DELETE)
public ResponseEntity<String> deleteMappingAkomodasi(HttpServletRequest request, @RequestParam("id") Integer id) { public ResponseEntity<String> deleteMappingAkomodasi(HttpServletRequest request, @RequestParam("id") Integer id) {
try { try {
Boolean result = mapRuanganToAkomodasiService.delete(id); Boolean result = mapRuanganToAkomodasiService.delete(id);
if (result) { if (result) {
return RestUtil.getJsonResponse("Mapping is deleted successsfully", HttpStatus.OK); return getJsonResponse("Mapping is deleted successsfully", OK);
} else { } else {
return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE); return getJsonHttpStatus(NOT_ACCEPTABLE);
} }
} catch (ServiceVOException sve) { } catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when delete mapping akomodasi", sve.getMessage()); LOGGER.error("Got ServiceVOException {} when delete mapping akomodasi", sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); addHeaderMessage(ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when delete mapping akomodasi", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when delete mapping akomodasi", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-all-mapping", method = RequestMethod.GET) @RequestMapping(value = "/get-all-mapping", method = GET)
public ResponseEntity<List<MapRuanganToAkomodasiVO>> getAllMappingAkomodasi(HttpServletRequest request) { public ResponseEntity<List<MapRuanganToAkomodasiVO>> getAllMappingAkomodasi(HttpServletRequest request) {
try { try {
List<MapRuanganToAkomodasiVO> result = mapRuanganToAkomodasiService.getAllActiveAkomodasi(); List<MapRuanganToAkomodasiVO> result = mapRuanganToAkomodasiService.getAllActiveAkomodasi();
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException sve) { } catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when get all mapping akomodasi", sve.getMessage()); LOGGER.error("Got ServiceVOException {} when get all mapping akomodasi", sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); addHeaderMessage(ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get all mapping akomodasi", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when get all mapping akomodasi", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-mapping", method = RequestMethod.GET) @RequestMapping(value = "/get-mapping", method = GET)
public ResponseEntity<MapRuanganToAkomodasiVO> getMappingAkomodasi(HttpServletRequest request, public ResponseEntity<MapRuanganToAkomodasiVO> getMappingAkomodasi(HttpServletRequest request,
@RequestParam("id") Integer id) { @RequestParam("id") Integer id) {
try { try {
MapRuanganToAkomodasiVO result = mapRuanganToAkomodasiService.findById(id); MapRuanganToAkomodasiVO result = mapRuanganToAkomodasiService.findById(id);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException sve) { } catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when get all mapping akomodasi", sve.getMessage()); LOGGER.error("Got ServiceVOException {} when findById", sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); addHeaderMessage(ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get all mapping akomodasi", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when findById", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-kamar-by-ruangan", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get-kamar-by-ruangan", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> getKamarByRuangan(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> getKamarByRuangan(HttpServletRequest request,
@RequestParam(value = "idRuangan", required = true) Integer idRuangan) { @RequestParam(value = "idRuangan") Integer idRuangan) {
List<Map<String, Object>> result = null;
try { try {
result = ruanganService.findKamarByRuangan(idRuangan); List<Map<String, Object>> result = ruanganService.findKamarByRuangan(idRuangan);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); throw new ServiceVOException(e.getMessage());
} }
return RestUtil.getJsonResponse(result, HttpStatus.OK);
} }
@RequestMapping(value = "/get-akomodasi-ruangan-by-mapping-produk", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get-akomodasi-ruangan-by-mapping-produk", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> getAkomodasiRuanganByMappingProduk(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> getAkomodasiRuanganByMappingProduk(HttpServletRequest request,
@RequestParam(value = "idRuangan", required = true) Integer idRuangan) { @RequestParam(value = "idRuangan") Integer idRuangan) {
List<Map<String, Object>> result = null;
try { try {
result = mapRuanganToAkomodasiService.getAkomodasiRuanganByMapProduk(idRuangan); List<Map<String, Object>> result = mapRuanganToAkomodasiService.getAkomodasiRuanganByMapProduk(idRuangan);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, HttpStatus.OK);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); throw new ServiceVOException(e.getMessage());
} }
return RestUtil.getJsonResponse(result, HttpStatus.OK);
} }
} }

View File

@ -1,82 +1,62 @@
package com.jasamedika.medifirst2000.controller; package com.jasamedika.medifirst2000.controller;
import java.io.UnsupportedEncodingException; import com.jasamedika.medifirst2000.controller.base.LocaleController;
import java.lang.reflect.Field; import com.jasamedika.medifirst2000.service.ModelService;
import java.net.URLDecoder; import com.jasamedika.medifirst2000.util.JsonUtil;
import java.util.ArrayList; import com.jasamedika.medifirst2000.vo.AntrianPasienRegistrasiVO;
import java.util.List; import org.slf4j.Logger;
import java.util.Map; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.JoinColumn; import javax.persistence.JoinColumn;
import javax.persistence.OneToMany; import javax.persistence.OneToMany;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import org.json.JSONException; import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonResponse;
import org.springframework.beans.factory.annotation.Autowired; import static org.springframework.http.HttpStatus.CREATED;
import org.springframework.http.HttpHeaders; import static org.springframework.http.HttpStatus.OK;
import org.springframework.http.HttpStatus; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import org.springframework.http.MediaType; import static org.springframework.web.bind.annotation.RequestMethod.GET;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.jasamedika.medifirst2000.base.vo.BaseMasterVO;
import com.jasamedika.medifirst2000.base.vo.BaseModelVO;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.controller.base.LocaleController;
import com.jasamedika.medifirst2000.service.ModelService;
import com.jasamedika.medifirst2000.util.JsonUtil;
import com.jasamedika.medifirst2000.util.rest.RestUtil;
import com.jasamedika.medifirst2000.vo.AntrianPasienRegistrasiVO;
@RestController @RestController
@RequestMapping("/service") @RequestMapping("/service")
public class GenericServiceController extends LocaleController<AntrianPasienRegistrasiVO> { public class GenericServiceController extends LocaleController<AntrianPasienRegistrasiVO> {
@Autowired private static final Logger LOG = LoggerFactory.getLogger(GenericServiceController.class);
private ModelService<?> modelService;
private static final String CONTENT_TYPE = "Content-Type"; private static final String CONTENT_TYPE = "Content-Type";
@SuppressWarnings("rawtypes") @Autowired
public static List<Field> GetFields(Class data) { private ModelService<?> modelService;
List<Field> items = new ArrayList<Field>();
Class parent = data.getSuperclass();
Class tmpClass = null;
if (BaseModelVO.class.isAssignableFrom(data.getClass())) {
tmpClass = BaseTransactionVO.class;
} else if (BaseTransactionVO.class.isAssignableFrom(data.getClass())) {
tmpClass = BaseMasterVO.class;
}
if ((data == tmpClass)) { public static List<Field> GetFields(Class<?> data) {
for (Field field : data.getDeclaredFields()) { List<Field> items = new ArrayList<>();
items.add(field); Class<?> parent = data.getSuperclass();
} if (parent != null)
return items; items.addAll(GetFields(data.getSuperclass()));
} items.addAll(Arrays.asList(data.getDeclaredFields()));
if (parent != null) {
for (Field field : GetFields(data.getSuperclass())) {
items.add(field);
}
}
for (Field field : data.getDeclaredFields()) {
items.add(field);
}
return items; return items;
} }
@RequestMapping(value = "/get-setting/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get-setting/", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<String> getData(@RequestParam(value = "prefix", required = false) String prefix) { public ResponseEntity<String> getData(@RequestParam(value = "prefix", required = false) String prefix) {
return getJsonResponse(GetSettingDataFixed(prefix), CREATED, mapHeaderMessage);
return RestUtil.getJsonResponse(GetSettingDataFixed(prefix), HttpStatus.CREATED, mapHeaderMessage);
} }
@RequestMapping(value = "/list-generic/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/list-generic/", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> listGeneric( public ResponseEntity<List<Map<String, Object>>> listGeneric(
@RequestParam(value = "view", required = false) String entity, @RequestParam(value = "view", required = false) String entity,
@RequestParam(value = "select", required = false) String field, @RequestParam(value = "select", required = false) String field,
@ -91,72 +71,59 @@ public class GenericServiceController extends LocaleController<AntrianPasienRegi
@RequestParam(value = "filter[filters][0][ignoreCase]", required = false) String ignorecase, @RequestParam(value = "filter[filters][0][ignoreCase]", required = false) String ignorecase,
@RequestParam(value = "criteria", required = false) String criteria, @RequestParam(value = "criteria", required = false) String criteria,
@RequestParam(value = "values", required = false) String values, HttpServletRequest request) @RequestParam(value = "values", required = false) String values, HttpServletRequest request)
throws SecurityException, ClassNotFoundException, JSONException, UnsupportedEncodingException { throws SecurityException, ClassNotFoundException, UnsupportedEncodingException {
String data = request.getQueryString(); String data = request.getQueryString();
data = URLDecoder.decode(data, "UTF-8"); data = URLDecoder.decode(data, "UTF-8");
String[] arrQueries = data.split("&"); String[] arrQueries = data.split("&");
StringBuilder criteriaBuilder = new StringBuilder(criteria);
StringBuilder valuesBuilder = new StringBuilder(values);
for (String query : arrQueries) { for (String query : arrQueries) {
if (query.indexOf("filter[filters][0][filter][field]") >= 0) { if (query.contains("filter[filters][0][filter][field]")) {
if (criteria == null) criteriaBuilder.append(",").append(query.replace("filter[filters][0][filter][field]=", ""));
criteria = query.replace("filter[filters][0][filter][field]=", ""); } else if (query.contains("filter[filters][0][filter][value]")) {
else valuesBuilder.append(",").append(query.replace("filter[filters][0][filter][value]=", ""));
criteria += "," + query.replace("filter[filters][0][filter][field]=", "");
} else if (query.indexOf("filter[filters][0][filter][value]") >= 0) {
if (values == null)
values = query.replace("filter[filters][0][filter][value]=", "");
else
values += "," + query.replace("filter[filters][0][filter][value]=", "");
} }
} }
values = valuesBuilder.toString();
criteria = criteriaBuilder.toString();
if (field.equals("*")) { if (field.equals("*")) {
field = ""; StringBuilder fieldBuilder = new StringBuilder();
for (Field fieldItem : GetFields(Class.forName("com.jasamedika.medifirst2000.entities." + entity))) { for (Field fieldItem : GetFields(Class.forName("com.jasamedika.medifirst2000.entities." + entity))) {
{ String name = fieldItem.getName();
String name = fieldItem.getName(); if (name.equals("serialVersionsUID"))
if (name.equals("serialVersionsUID")) continue;
continue; boolean valid = false;
Boolean valid = false; for (java.lang.annotation.Annotation annotation : fieldItem.getDeclaredAnnotations()) {
for (java.lang.annotation.Annotation annotation : fieldItem.getDeclaredAnnotations()) { if (annotation instanceof JoinColumn) {
if (annotation instanceof JoinColumn) { valid = true;
valid = true; } else if (annotation instanceof Column) {
} else if (annotation instanceof Column) { Column column = (Column) annotation;
Column column = (Column) annotation; if (column.name().endsWith("Fk"))
if (column.name().endsWith("Fk")) if (!fieldItem.getName().endsWith("Id"))
if (fieldItem.getName().endsWith("Id") == false) valid = true;
valid = true; } else if (annotation instanceof OneToMany) {
} else if (annotation instanceof OneToMany) { valid = true;
valid = true;
}
} }
if (valid == false)
if (field.equals(""))
field += fieldItem.getName();
else
field += "," + fieldItem.getName();
} }
if (!valid)
if (fieldBuilder.toString().isEmpty())
fieldBuilder.append(fieldItem.getName());
else
fieldBuilder.append(",").append(fieldItem.getName());
} }
field = fieldBuilder.toString();
} else if (field.equals("**")) { } else if (field.equals("**")) {
field = "*"; field = "*";
} }
// for dateformat using [date]
List<Map<String, Object>> modelGenericVO = modelService.getAllData(entity, field, take, skip, page, pageSize, List<Map<String, Object>> modelGenericVO = modelService.getAllData(entity, field, take, skip, page, pageSize,
logic, value, fieldS, operator, ignorecase, criteria, values); logic, value, fieldS, operator, ignorecase, criteria, values);
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.set(CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE); headers.set(CONTENT_TYPE, APPLICATION_JSON_VALUE);
try { try {
return new ResponseEntity<List<Map<String, Object>>>(JsonUtil.ToMaps(modelGenericVO), headers, return new ResponseEntity<>(JsonUtil.ToMaps(modelGenericVO), headers, OK);
HttpStatus.OK);
} catch (IllegalArgumentException | IllegalAccessException e) { } catch (IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace(); LOG.error(e.getMessage());
} }
return null; return null;
} }

View File

@ -1,29 +1,29 @@
package com.jasamedika.medifirst2000.controller; package com.jasamedika.medifirst2000.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.jasamedika.medifirst2000.constants.MessageResource; import com.jasamedika.medifirst2000.constants.MessageResource;
import com.jasamedika.medifirst2000.controller.base.LocaleController; import com.jasamedika.medifirst2000.controller.base.LocaleController;
import com.jasamedika.medifirst2000.core.web.WebConstants;
import com.jasamedika.medifirst2000.entities.PgStatActivity; import com.jasamedika.medifirst2000.entities.PgStatActivity;
import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.PgStatActivityService; import com.jasamedika.medifirst2000.service.PgStatActivityService;
import com.jasamedika.medifirst2000.util.rest.RestUtil;
import com.jasamedika.medifirst2000.vo.LoginUserVO; import com.jasamedika.medifirst2000.vo.LoginUserVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.LABEL_SUCCESS;
import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonResponse;
import static org.springframework.http.HttpStatus.*;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
import static org.springframework.web.bind.annotation.RequestMethod.POST;
@RestController @RestController
@RequestMapping("/integrasi") @RequestMapping("/integrasi")
@ -34,59 +34,61 @@ public class IntegrationController extends LocaleController<LoginUserVO> {
@Autowired @Autowired
private PgStatActivityService pgStatActivityService; private PgStatActivityService pgStatActivityService;
@RequestMapping(value = "/pg-stat-activity/in-state-for-minutes", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/pg-stat-activity/in-state-for-minutes", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<PgStatActivity>> getPgStatActivityInStateForMinutes(HttpServletRequest request) { public ResponseEntity<List<PgStatActivity>> getPgStatActivityInStateForMinutes(HttpServletRequest request) {
try { try {
List<PgStatActivity> result = pgStatActivityService.findByStateAndInterval(); List<PgStatActivity> result = pgStatActivityService.findByStateAndInterval();
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get pg_stat_activity in state for minutes", e.getMessage()); LOGGER.error("Got ServiceVOException {} when pgStatActivityService.findByStateAndInterval", e.getMessage());
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, e.getMessage()); mapHeaderMessage.put(LABEL_SUCCESS, e.getMessage());
return RestUtil.getJsonResponse(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonResponse(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get pg_stat_activity in state for minutes", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when pgStatActivityService.findByStateAndInterval",
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, jse.getMessage()); jse.getMessage());
return RestUtil.getJsonResponse(HttpStatus.CONFLICT, mapHeaderMessage); mapHeaderMessage.put(LABEL_SUCCESS, jse.getMessage());
return getJsonResponse(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/pg-stat-activity/cancel-backend", method = RequestMethod.POST) @RequestMapping(value = "/pg-stat-activity/cancel-backend", method = POST)
public ResponseEntity<Boolean> callPgCancelBackend(HttpServletRequest request, public ResponseEntity<Boolean> callPgCancelBackend(HttpServletRequest request,
@RequestParam(value = "pid", required = true) Integer pid) { @RequestParam(value = "pid") Integer pid) {
try { try {
Boolean result = pgStatActivityService.callCancelBackend(pid); Boolean result = pgStatActivityService.callCancelBackend(pid);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException sve) { } catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when call pg_cancel_backend pid : {}", sve.getMessage(), pid); LOGGER.error("Got ServiceVOException {} when pgStatActivityService.callCancelBackend : {}",
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, sve.getMessage()); sve.getMessage(), pid);
return RestUtil.getJsonResponse(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); mapHeaderMessage.put(LABEL_SUCCESS, sve.getMessage());
return getJsonResponse(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when call pg_cancel_backend pid : {}", jse.getMessage(), pid); LOGGER.error("Got JpaSystemException {} when pgStatActivityService.callCancelBackend : {}",
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, jse.getMessage()); jse.getMessage(), pid);
return RestUtil.getJsonResponse(HttpStatus.CONFLICT, mapHeaderMessage); mapHeaderMessage.put(LABEL_SUCCESS, jse.getMessage());
return getJsonResponse(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/pg-stat-activity/terminate-backend", method = RequestMethod.POST) @RequestMapping(value = "/pg-stat-activity/terminate-backend", method = POST)
public ResponseEntity<Boolean> callPgTerminateBackend(HttpServletRequest request, public ResponseEntity<Boolean> callPgTerminateBackend(HttpServletRequest request,
@RequestParam(value = "pid", required = true) Integer pid) { @RequestParam(value = "pid") Integer pid) {
try { try {
Boolean result = pgStatActivityService.callTerminateBackend(pid); Boolean result = pgStatActivityService.callTerminateBackend(pid);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException sve) { } catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when call pg_terminate_backend pid : {}", sve.getMessage(), pid); LOGGER.error("Got ServiceVOException {} when pgStatActivityService.callTerminateBackend : {}",
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, sve.getMessage()); sve.getMessage(), pid);
return RestUtil.getJsonResponse(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); mapHeaderMessage.put(LABEL_SUCCESS, sve.getMessage());
return getJsonResponse(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when call pg_terminate_backend pid : {}", jse.getMessage(), pid); LOGGER.error("Got JpaSystemException {} when pgStatActivityService.callTerminateBackend : {}",
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, jse.getMessage()); jse.getMessage(), pid);
return RestUtil.getJsonResponse(HttpStatus.CONFLICT, mapHeaderMessage); mapHeaderMessage.put(LABEL_SUCCESS, jse.getMessage());
return getJsonResponse(CONFLICT, mapHeaderMessage);
} }
} }

View File

@ -1,36 +1,35 @@
package com.jasamedika.medifirst2000.controller; package com.jasamedika.medifirst2000.controller;
import java.text.ParseException; import com.jasamedika.medifirst2000.constants.MessageResource;
import java.util.ArrayList; import com.jasamedika.medifirst2000.controller.base.LocaleController;
import java.util.Collection; import com.jasamedika.medifirst2000.exception.ServiceVOException;
import java.util.List; import com.jasamedika.medifirst2000.service.JabatanService;
import java.util.Map; import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.JabatanVO;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.orm.jpa.JpaSystemException; import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.jasamedika.medifirst2000.constants.Constants; import javax.servlet.http.HttpServletRequest;
import com.jasamedika.medifirst2000.constants.MessageResource; import javax.validation.Valid;
import com.jasamedika.medifirst2000.controller.base.LocaleController; import java.util.Collection;
import com.jasamedika.medifirst2000.core.web.WebConstants; import java.util.List;
import com.jasamedika.medifirst2000.exception.ServiceVOException; import java.util.Map;
import com.jasamedika.medifirst2000.service.JabatanService;
import com.jasamedika.medifirst2000.util.CommonUtil; import static com.jasamedika.medifirst2000.constants.Constants.MessageInfo.ERROR_MESSAGE;
import com.jasamedika.medifirst2000.util.rest.RestUtil; import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.LABEL_SUCCESS;
import com.jasamedika.medifirst2000.vo.JabatanVO; import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonHttpStatus;
import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonResponse;
import static org.springframework.http.HttpStatus.*;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
import static org.springframework.web.bind.annotation.RequestMethod.POST;
@RestController @RestController
@RequestMapping("/jabatan") @RequestMapping("/jabatan")
@ -41,137 +40,125 @@ public class JabatanController extends LocaleController<JabatanVO> {
@Autowired @Autowired
private JabatanService jabatanService; private JabatanService jabatanService;
@RequestMapping(value = "/save-jabatan-internal/", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/save-jabatan-internal/", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<String> addVO(@Valid @RequestBody JabatanVO vo, HttpServletRequest request) { public ResponseEntity<String> addVO(@Valid @RequestBody JabatanVO vo, HttpServletRequest request) {
try { try {
Map<String, Object> result = jabatanService.saveJabatan(vo); Map<String, Object> result = jabatanService.saveJabatan(vo);
if (null != result) if (null != result)
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse("New jabatan successfully created", CREATED, mapHeaderMessage);
return RestUtil.getJsonResponse(result.toString(), HttpStatus.CREATED, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when add jabatan", e.getMessage()); LOGGER.error("Got ServiceVOException {} when saveJabatan", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when add jabatan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when saveJabatan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/update-jabatan/", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/update-jabatan/", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<String> editVO(@Valid @RequestBody JabatanVO vo) { public ResponseEntity<String> editVO(@Valid @RequestBody JabatanVO vo) {
try { try {
JabatanVO result = (JabatanVO) jabatanService.update(vo); JabatanVO result = jabatanService.update(vo);
if (null != result) if (null != result)
return RestUtil.getJsonResponse("", HttpStatus.OK); return getJsonResponse("Jabatan successfully updated", OK);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when update Agama", e.getMessage()); LOGGER.error("Got ServiceVOException {} when jabatanService.update", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when update Agama", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when jabatanService.update", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
return getJsonHttpStatus(NOT_ACCEPTABLE);
return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE);
} }
@RequestMapping(value = "/update-jabatan-false/", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/update-jabatan-false/", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<String> editFalseVO(@Valid @RequestBody JabatanVO vo) { public ResponseEntity<String> editFalseVO(@Valid @RequestBody JabatanVO vo) {
try { try {
JabatanVO result = (JabatanVO) jabatanService.deleteJabatan(vo); JabatanVO result = jabatanService.deleteJabatan(vo);
if (null != result) if (null != result)
return RestUtil.getJsonResponse("", HttpStatus.OK); return getJsonResponse("Jabatan successfully updated", OK);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when update Agama", e.getMessage()); LOGGER.error("Got ServiceVOException {} when deleteJabatan", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when update Agama", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when deleteJabatan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
return getJsonHttpStatus(NOT_ACCEPTABLE);
return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE);
} }
@RequestMapping(value = "/delete-jabatan/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/delete-jabatan/", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<String> deleteVO(@RequestParam(value = "id", required = true) Integer id, public ResponseEntity<String> deleteVO(@RequestParam(value = "id") Integer id, HttpServletRequest request) {
HttpServletRequest request) {
try { try {
boolean result = jabatanService.delete(id); boolean result = jabatanService.delete(id);
if (result)
return RestUtil.getJsonResponse(String.valueOf(result), HttpStatus.CREATED); return getJsonResponse("Jabatan successfully deleted");
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when delete Jabatan", e.getMessage()); LOGGER.error("Got ServiceVOException {} when jabatanService.delete", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when delete Jabatan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when jabatanService.delete", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
return getJsonHttpStatus(NOT_ACCEPTABLE);
} }
@RequestMapping(value = "/save-master-jabatan", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/save-master-jabatan", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<JabatanVO> saveJabatan(HttpServletRequest request, @Valid @RequestBody JabatanVO vo) { public ResponseEntity<JabatanVO> saveJabatan(HttpServletRequest request, @Valid @RequestBody JabatanVO vo) {
try { try {
JabatanVO result = new JabatanVO(); JabatanVO result;
if (CommonUtil.isNotNullOrEmpty(vo.getId())) { if (CommonUtil.isNotNullOrEmpty(vo.getId())) {
result = jabatanService.update(vo); result = jabatanService.update(vo);
} else { } else {
result = jabatanService.add(vo); result = jabatanService.add(vo);
} }
if (CommonUtil.isNotNullOrEmpty(result)) { if (CommonUtil.isNotNullOrEmpty(result)) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, CREATED, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage);
} else { } else {
return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE); return getJsonHttpStatus(NOT_ACCEPTABLE);
} }
} catch (ServiceVOException sve) { } catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when add/update master jabatan", sve.getMessage()); LOGGER.error("Got ServiceVOException {} when jabatanService add/update", sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); addHeaderMessage(ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when add/update master jabatan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when jabatanService add/update", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-master-jabatan", method = RequestMethod.GET) @RequestMapping(value = "/get-master-jabatan", method = GET)
public ResponseEntity<List<Map<String, Object>>> getMasterJabatan(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> getMasterJabatan(HttpServletRequest request,
@RequestParam(value = "namaJabatan", required = false) String namaJabatan, @RequestParam(value = "namaJabatan", required = false) String namaJabatan,
@RequestParam(value = "jenisJabatanId", required = false) Integer idJenisJabatan, @RequestParam(value = "jenisJabatanId", required = false) Integer idJenisJabatan,
@RequestParam(value = "unitKerjaId", required = false) Integer idUnitKerja) throws ParseException { @RequestParam(value = "unitKerjaId", required = false) Integer idUnitKerja) {
try { try {
List<Map<String, Object>> result = jabatanService.findJabatan(namaJabatan, idJenisJabatan, idUnitKerja); List<Map<String, Object>> result = jabatanService.findJabatan(namaJabatan, idJenisJabatan, idUnitKerja);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException sve) { } catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when get master jabatan", sve.getMessage()); LOGGER.error("Got ServiceVOException {} when findJabatan", sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); addHeaderMessage(ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get master jabatan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when findJabatan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@SuppressWarnings("unchecked") @RequestMapping(value = "/search-jabatan", method = GET, produces = APPLICATION_JSON_VALUE)
@RequestMapping(value = "/search-jabatan", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Collection<JabatanVO>> getAllVOWithQueryString( public ResponseEntity<Collection<JabatanVO>> getAllVOWithQueryString(
@RequestParam(value = "page", required = false, defaultValue = "0") Integer page, @RequestParam(value = "page", required = false, defaultValue = "0") Integer page,
@RequestParam(value = "limit", required = false, defaultValue = "10") Integer limit, @RequestParam(value = "limit", required = false, defaultValue = "10") Integer limit,
@ -179,116 +166,103 @@ public class JabatanController extends LocaleController<JabatanVO> {
@RequestParam(value = "dir", required = false, defaultValue = "asc") String dir) { @RequestParam(value = "dir", required = false, defaultValue = "asc") String dir) {
Map<String, Object> resultPageMap = jabatanService.findAllWithPageAndLimitAndSortByAndDirectionParameter(page, Map<String, Object> resultPageMap = jabatanService.findAllWithPageAndLimitAndSortByAndDirectionParameter(page,
limit, sort, dir); limit, sort, dir);
return constructListPageResult(resultPageMap); return constructListPageResult(resultPageMap);
} }
@RequestMapping(value = "/get-all-jabatan-struktural", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get-all-jabatan-struktural", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> getAllJabatanStruktural(HttpServletRequest request) { public ResponseEntity<List<Map<String, Object>>> getAllJabatanStruktural(HttpServletRequest request) {
List<Map<String, Object>> result = null;
try { try {
List<Map<String, Object>> result = jabatanService.getJabatanStruktural();
result = jabatanService.getJabatanStruktural(); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return getJsonResponse(result, OK);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); throw new ServiceVOException(e.getMessage());
} }
return RestUtil.getJsonResponse(result, HttpStatus.OK);
} }
@RequestMapping(value = "/get-list-jabatan", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get-list-jabatan", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> getAllJabatanByJenisJabatan(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> getAllJabatanByJenisJabatan(HttpServletRequest request,
@RequestParam(value = "idJenisJabatan", required = true) Integer idJenisJabatan) { @RequestParam(value = "idJenisJabatan") Integer idJenisJabatan) {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
try { try {
List<Map<String, Object>> result = jabatanService.findModelJabatan(idJenisJabatan);
result = jabatanService.findModelJabatan(idJenisJabatan); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return getJsonResponse(result, OK);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); throw new ServiceVOException(e.getMessage());
} }
return RestUtil.getJsonResponse(result, HttpStatus.OK);
} }
@RequestMapping(value = "/validate-nama-jabatan/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/validate-nama-jabatan/", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> validateNamaJabatan(HttpServletRequest request, public ResponseEntity<Map<String, Object>> validateNamaJabatan(HttpServletRequest request,
@RequestParam(value = "idJabatan", required = false) Integer idJabatan, @RequestParam(value = "idJabatan", required = false) Integer idJabatan,
@RequestParam(value = "namaJabatan", required = true) String namaJabatan, @RequestParam(value = "namaJabatan") String namaJabatan,
@RequestParam(value = "idJenisJabatan", required = true) Integer idJenisJabatan, @RequestParam(value = "idJenisJabatan") Integer idJenisJabatan,
@RequestParam(value = "idUnitKerja", required = false) Integer idUnitKerja) { @RequestParam(value = "idUnitKerja", required = false) Integer idUnitKerja) {
try { try {
Map<String, Object> result = jabatanService.validateNamaJabatan(idJabatan, namaJabatan, idJenisJabatan, Map<String, Object> result = jabatanService.validateNamaJabatan(idJabatan, namaJabatan, idJenisJabatan,
idUnitKerja); idUnitKerja);
return getJsonResponse(result, OK);
return RestUtil.getJsonResponse(result, HttpStatus.OK);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when validate nama jabatan", e.getMessage()); LOGGER.error("Got ServiceVOException {} when validateNamaJabatan", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when validate nama jabatan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when validateNamaJabatan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-pegawai-jabatan", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get-pegawai-jabatan", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> getPegawaiByJabatan(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> getPegawaiByJabatan(HttpServletRequest request,
@RequestParam(value = "jabatanId", required = true) Integer idJabatan) { @RequestParam(value = "jabatanId") Integer idJabatan) {
try { try {
List<Map<String, Object>> result = jabatanService.findPegawaiByJabatan(idJabatan); List<Map<String, Object>> result = jabatanService.findPegawaiByJabatan(idJabatan);
return getJsonResponse(result, OK);
return RestUtil.getJsonResponse(result, HttpStatus.OK);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get pegawai jabatan", e.getMessage()); LOGGER.error("Got ServiceVOException {} when findPegawaiByJabatan", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get pegawai jabatan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when findPegawaiByJabatan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-jabatan-dan-batas-nilai", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get-jabatan-dan-batas-nilai", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> getJabatanDanBatasNilai(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> getJabatanDanBatasNilai(HttpServletRequest request,
@RequestParam(value = "jenisJabatanId", required = true) Integer idJenisJabatan, @RequestParam(value = "jenisJabatanId") Integer idJenisJabatan,
@RequestParam(value = "unitKerjaId", required = true) Integer idUnitKerja) { @RequestParam(value = "unitKerjaId") Integer idUnitKerja) {
try { try {
List<Map<String, Object>> result = jabatanService.findJabatanDanBatasNilai(idJenisJabatan, idUnitKerja); List<Map<String, Object>> result = jabatanService.findJabatanDanBatasNilai(idJenisJabatan, idUnitKerja);
return getJsonResponse(result, OK);
return RestUtil.getJsonResponse(result, HttpStatus.OK);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get jabatan dan batas nilai jabatan", e.getMessage()); LOGGER.error("Got ServiceVOException {} when findJabatanDanBatasNilai", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get jabatan dan batas nilai jabatan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when findJabatanDanBatasNilai", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-by-unit-kerja", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get-by-unit-kerja", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> getByUnitKerja(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> getByUnitKerja(HttpServletRequest request,
@RequestParam(value = "unitKerjaId", required = true) Integer idUnitKerja) { @RequestParam(value = "unitKerjaId") Integer idUnitKerja) {
try { try {
List<Map<String, Object>> result = jabatanService.findByUnitKerja(idUnitKerja); List<Map<String, Object>> result = jabatanService.findByUnitKerja(idUnitKerja);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get jabatan by unit kerja", e.getMessage()); LOGGER.error("Got ServiceVOException {} when get jabatanService.findByUnitKerja", e.getMessage());
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, e.getMessage()); mapHeaderMessage.put(LABEL_SUCCESS, e.getMessage());
return RestUtil.getJsonResponse(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonResponse(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get jabatan by unit kerja", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when get jabatanService.findByUnitKerja", jse.getMessage());
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, jse.getMessage()); mapHeaderMessage.put(LABEL_SUCCESS, jse.getMessage());
return RestUtil.getJsonResponse(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonResponse(CONFLICT, mapHeaderMessage);
} }
} }

View File

@ -1,31 +1,29 @@
package com.jasamedika.medifirst2000.controller; package com.jasamedika.medifirst2000.controller;
import java.util.Collection; import com.jasamedika.medifirst2000.controller.base.LocaleController;
import java.util.List; import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.KeluargaPegawaiService;
import javax.servlet.http.HttpServletRequest; import com.jasamedika.medifirst2000.vo.KeluargaPegawaiVO;
import javax.validation.Valid;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.orm.jpa.JpaSystemException; import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.jasamedika.medifirst2000.constants.Constants; import javax.validation.Valid;
import com.jasamedika.medifirst2000.controller.base.IBaseRestController; import java.util.List;
import com.jasamedika.medifirst2000.controller.base.LocaleController;
import com.jasamedika.medifirst2000.exception.ServiceVOException; import static com.jasamedika.medifirst2000.constants.Constants.MessageInfo.ERROR_MESSAGE;
import com.jasamedika.medifirst2000.service.KeluargaPegawaiService; import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonHttpStatus;
import com.jasamedika.medifirst2000.util.rest.RestUtil; import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonResponse;
import com.jasamedika.medifirst2000.vo.KeluargaPegawaiVO; import static org.springframework.http.HttpStatus.*;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
import static org.springframework.web.bind.annotation.RequestMethod.POST;
/** /**
* Controller class for KeluargaPegawaiController * Controller class for KeluargaPegawaiController
@ -36,89 +34,47 @@ import com.jasamedika.medifirst2000.vo.KeluargaPegawaiVO;
*/ */
@RestController @RestController
@RequestMapping("/keluarga-pegawai") @RequestMapping("/keluarga-pegawai")
public class KeluargaPegawaiController extends public class KeluargaPegawaiController extends LocaleController<KeluargaPegawaiVO> {
LocaleController<KeluargaPegawaiVO> implements
IBaseRestController<KeluargaPegawaiVO> {
@Autowired @Autowired
private KeluargaPegawaiService keluargaPegawaiService; private KeluargaPegawaiService keluargaPegawaiService;
private static final Logger LOGGER = LoggerFactory private static final Logger LOGGER = LoggerFactory.getLogger(KeluargaPegawaiController.class);
.getLogger(KeluargaPegawaiController.class);
@RequestMapping(value = "/cari-alamat-id/{id}", method = RequestMethod.GET) @RequestMapping(value = "/cari-alamat-id/{id}", method = GET)
public ResponseEntity<KeluargaPegawaiVO> getVO( public ResponseEntity<KeluargaPegawaiVO> getVO(@PathVariable("id") Integer id) {
@PathVariable("id") Integer id) { KeluargaPegawaiVO keluargaPegawaiVO = keluargaPegawaiService.findById(id);
KeluargaPegawaiVO keluargaPegawaiVO = keluargaPegawaiService
.findById(id);
return RestUtil.getJsonResponse(keluargaPegawaiVO, HttpStatus.OK); return getJsonResponse(keluargaPegawaiVO, OK);
}
@RequestMapping(value = "/get-all/", method = RequestMethod.GET)
public ResponseEntity<List> getAllKeluaraPegawai(
@PathVariable("id") Integer id) {
List keluargaPegawaiVO = keluargaPegawaiService
.findAll();
return RestUtil.getJsonResponse(keluargaPegawaiVO, HttpStatus.OK);
} }
@RequestMapping(value = "/cari-alamat-by-pasien-id/{id}", method = RequestMethod.GET) @RequestMapping(value = "/get-all/", method = GET)
public ResponseEntity<KeluargaPegawaiVO> getByPasienVO( public ResponseEntity<List<KeluargaPegawaiVO>> getAllKeluaraPegawai(@PathVariable("id") Integer id) {
@PathVariable("id") Integer id) { List<KeluargaPegawaiVO> keluargaPegawaiVO = keluargaPegawaiService.findAll();
KeluargaPegawaiVO keluargaPegawaiVO = keluargaPegawaiService return getJsonResponse(keluargaPegawaiVO, OK);
.findById(id);
return RestUtil.getJsonResponse(keluargaPegawaiVO, HttpStatus.OK);
} }
@Override @RequestMapping(value = "/cari-alamat-by-pasien-id/{id}", method = GET)
public ResponseEntity<Collection<KeluargaPegawaiVO>> getAllVOWithQueryString( public ResponseEntity<KeluargaPegawaiVO> getByPasienVO(@PathVariable("id") Integer id) {
HttpServletRequest request, Integer page, Integer limit, KeluargaPegawaiVO keluargaPegawaiVO = keluargaPegawaiService.findById(id);
String sort, String dir) { return getJsonResponse(keluargaPegawaiVO, OK);
return null;
} }
@RequestMapping(value = "/save-keluarga-pegawai", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/save-keluarga-pegawai", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<String> addVO(@Valid @RequestBody KeluargaPegawaiVO vo) { public ResponseEntity<String> addVO(@Valid @RequestBody KeluargaPegawaiVO vo) {
try { try {
KeluargaPegawaiVO result = keluargaPegawaiService.add(vo); KeluargaPegawaiVO result = keluargaPegawaiService.add(vo);
if (null != result) if (null != result)
return RestUtil.getJsonResponse("Success", HttpStatus.CREATED); return getJsonResponse("Success", CREATED);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when add pegawai", e.getMessage()); LOGGER.error("Got ServiceVOException {} when keluargaPegawaiService.add", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, addHeaderMessage(ERROR_MESSAGE, e.getMessage());
e.getMessage()); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR,
mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when add Pegawai", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when keluargaPegawaiService.add", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
jse.getMessage()); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT,
mapHeaderMessage);
} }
return getJsonHttpStatus(NOT_ACCEPTABLE);
return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE);
} }
@Override
public ResponseEntity<String> editVO(KeluargaPegawaiVO vo) {
return null;
}
@Override
public ResponseEntity<String> deleteVO(Integer id) {
return null;
}
@Override
public ResponseEntity<List<KeluargaPegawaiVO>> getAllVO() {
return null;
}
} }

View File

@ -1,38 +1,35 @@
package com.jasamedika.medifirst2000.controller; package com.jasamedika.medifirst2000.controller;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.jasamedika.medifirst2000.constants.MessageResource;
import com.jasamedika.medifirst2000.controller.base.LocaleController;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.KonsultasiService;
import com.jasamedika.medifirst2000.service.RegistrasiPelayananService;
import com.jasamedika.medifirst2000.vo.KonsultasiVO;
import com.jasamedika.medifirst2000.vo.RegistrasiPelayananVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import static com.jasamedika.medifirst2000.constants.Constants.MessageInfo.ERROR_MESSAGE;
import javax.validation.Valid; import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.LABEL_ERROR;
import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.LABEL_SUCCESS;
import org.slf4j.Logger; import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonHttpStatus;
import org.slf4j.LoggerFactory; import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonResponse;
import org.springframework.beans.factory.annotation.Autowired; import static org.springframework.http.HttpStatus.*;
import org.springframework.http.HttpStatus; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import org.springframework.http.MediaType; import static org.springframework.web.bind.annotation.RequestMethod.GET;
import org.springframework.http.ResponseEntity; import static org.springframework.web.bind.annotation.RequestMethod.POST;
import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.jasamedika.medifirst2000.constants.Constants;
import com.jasamedika.medifirst2000.constants.MessageResource;
import com.jasamedika.medifirst2000.controller.base.IBaseRestController;
import com.jasamedika.medifirst2000.controller.base.LocaleController;
import com.jasamedika.medifirst2000.core.web.WebConstants;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.KonsultasiService;
import com.jasamedika.medifirst2000.service.RegistrasiPelayananService;
import com.jasamedika.medifirst2000.util.rest.RestUtil;
import com.jasamedika.medifirst2000.vo.GridAntrianPasienDiPeriksaVO;
import com.jasamedika.medifirst2000.vo.KonsultasiVO;
/** /**
* Controller class for KonsultasiController * Controller class for KonsultasiController
@ -41,46 +38,42 @@ import com.jasamedika.medifirst2000.vo.KonsultasiVO;
*/ */
@RestController @RestController
@RequestMapping("/konsultasi") @RequestMapping("/konsultasi")
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class KonsultasiController extends LocaleController<KonsultasiVO> implements public class KonsultasiController extends LocaleController<KonsultasiVO> {
IBaseRestController<KonsultasiVO> {
private static final Logger LOGGER = LoggerFactory.getLogger(KonsultasiController.class); private static final Logger LOGGER = LoggerFactory.getLogger(KonsultasiController.class);
@Autowired @Autowired
private KonsultasiService konsultasiService; private KonsultasiService<KonsultasiVO> konsultasiService;
@Autowired @Autowired
private RegistrasiPelayananService registrasiPelayananService; private RegistrasiPelayananService<RegistrasiPelayananVO> registrasiPelayananService;
@RequestMapping(value = "/save-konsultasi", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/save-konsultasi", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String,Object>> save(@Valid @RequestBody KonsultasiVO vo,HttpServletRequest request) { public ResponseEntity<Map<String, Object>> save(@Valid @RequestBody KonsultasiVO vo, HttpServletRequest request) {
try { try {
Map<String,Object> result = konsultasiService.addKonsultasi2(vo); Map<String, Object> result = konsultasiService.addKonsultasi(vo);
if (null != result){ mapHeaderMessage.clear();
mapHeaderMessage.clear(); if (null != result) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,getMessage(MessageResource.LABEL_SUCCESS,request )); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
}else{ } else {
mapHeaderMessage.clear(); mapHeaderMessage.put(LABEL_ERROR, getMessage(MessageResource.LABEL_ERROR, request));
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_ERROR,getMessage(MessageResource.LABEL_ERROR,request ));
} }
SaveLog("Konsultasi", "Dokter",request); saveLog("Konsultasi", "Dokter");
return RestUtil.getJsonResponse(result, HttpStatus.CREATED,mapHeaderMessage); return getJsonResponse(result, CREATED, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when add kebutuhan dasar", e.getMessage()); LOGGER.error("Got ServiceVOException {} when addKonsultasi", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when add kebutuhan dasar", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when addKonsultasi", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/antrian-pasien-list-konsul/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/antrian-pasien-list-konsul/", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<Collection<GridAntrianPasienDiPeriksaVO>> getAllVOWithQueryString( public ResponseEntity<Collection<KonsultasiVO>> getAllVOWithQueryString(
@RequestParam(value = "page", required = false, defaultValue = "1") Integer page, @RequestParam(value = "page", required = false, defaultValue = "1") Integer page,
@RequestParam(value = "limit", required = false, defaultValue = "50") Integer limit, @RequestParam(value = "limit", required = false, defaultValue = "50") Integer limit,
@RequestParam(value = "sort", required = false, defaultValue = "noRec") String sort, @RequestParam(value = "sort", required = false, defaultValue = "noRec") String sort,
@ -90,73 +83,34 @@ public class KonsultasiController extends LocaleController<KonsultasiVO> impleme
@RequestParam(value = "dateEnd", required = false) String dateEnd, @RequestParam(value = "dateEnd", required = false) String dateEnd,
@RequestParam(value = "noCm", required = false) String noCm, @RequestParam(value = "noCm", required = false) String noCm,
@RequestParam(value = "pegawaiId", required = false) Integer pegawaiId) { @RequestParam(value = "pegawaiId", required = false) Integer pegawaiId) {
Map<String, Object> resultPageMap = registrasiPelayananService.findAllAntrianPagingKonsultasi(page, limit, sort, dir, Map<String, Object> resultPageMap = registrasiPelayananService.findAllAntrianPagingKonsultasi(page, limit, sort,
ruanganId, dateStart, dateEnd, noCm, pegawaiId); dir, ruanganId, dateStart, dateEnd, noCm, pegawaiId);
return constructListPageResult(resultPageMap); return constructListPageResult(resultPageMap);
} }
@Override @RequestMapping(value = "/get-riwayat-konsultasi/{noCm}/{startDate}/{endDate}", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<Collection<KonsultasiVO>> getAllVOWithQueryString(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> getRiwayatKonsultasi(@PathVariable("noCm") String noCm,
Integer page, Integer limit, String sort, String dir) { @PathVariable("startDate") String startDate, @PathVariable("endDate") String endDate,
return null; HttpServletRequest request) {
}
@Override
public ResponseEntity<KonsultasiVO> getVO(Integer id) {
return null;
}
@Override
public ResponseEntity<String> addVO(KonsultasiVO vo) {
return null;
}
@Override
public ResponseEntity<String> editVO(KonsultasiVO vo) {
return null;
}
@Override
public ResponseEntity<String> deleteVO(Integer id) {
return null;
}
@Override
public ResponseEntity<List<KonsultasiVO>> getAllVO() {
return null;
}
@RequestMapping(value = "/get-riwayat-konsultasi/{noCm}/{startDate}/{endDate}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> getRiwayatKonsultasi(@PathVariable("noCm") String noCm,@PathVariable("startDate") String startDate,
@PathVariable("endDate") String endDate,HttpServletRequest request) {
List<Map<String, Object>> result = null;
try { try {
List<Map<String, Object>> result = konsultasiService.getRiwayatKonsultasi(noCm, startDate, endDate);
result = konsultasiService.getRiwayatKonsultasi(noCm, startDate, endDate); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return getJsonResponse(result, OK);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); throw new ServiceVOException(e.getMessage());
} }
return RestUtil.getJsonResponse(result, HttpStatus.OK);
} }
@RequestMapping(value = "/get-konsultasi-kosong", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get-konsultasi-kosong", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> getKonsultasiKosong(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> getKonsultasiKosong(HttpServletRequest request,
@RequestParam(value = "tglAwal", required = true) String strTglAwal, @RequestParam(value = "tglAwal") String strTglAwal, @RequestParam(value = "tglAkhir") String strTglAkhir) {
@RequestParam(value = "tglAkhir", required = true) String strTglAkhir) {
List<Map<String, Object>> result = null;
try { try {
List<Map<String, Object>> result = konsultasiService.findAllKonsultasiTindakanKosong(strTglAwal,
result = konsultasiService.findAllKonsultasiTindakanKosong(strTglAwal, strTglAkhir); strTglAkhir);
mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, return getJsonResponse(result, OK);
getMessage(MessageResource.LABEL_SUCCESS, request));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); throw new ServiceVOException(e.getMessage());
} }
return RestUtil.getJsonResponse(result, HttpStatus.OK);
} }
} }

View File

@ -16,7 +16,7 @@ import javax.servlet.http.HttpServletRequest;
import static com.jasamedika.medifirst2000.constants.Constants.MessageInfo.ERROR_MESSAGE; import static com.jasamedika.medifirst2000.constants.Constants.MessageInfo.ERROR_MESSAGE;
import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.LABEL_SUCCESS; import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.LABEL_SUCCESS;
import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonHttptatus; import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonHttpStatus;
import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonResponse; import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonResponse;
import static org.slf4j.LoggerFactory.getLogger; import static org.slf4j.LoggerFactory.getLogger;
import static org.springframework.http.HttpStatus.ACCEPTED; import static org.springframework.http.HttpStatus.ACCEPTED;
@ -47,7 +47,7 @@ public class LogbookRemunController extends LocaleController<LogbookKinerjaVO> {
} catch (ServiceVOException | JpaSystemException e) { } catch (ServiceVOException | JpaSystemException e) {
LOGGER.error("Got Exception {} when generateRecap", e.getMessage()); LOGGER.error("Got Exception {} when generateRecap", e.getMessage());
mapHeaderMessage.put(ERROR_MESSAGE, e.getMessage()); mapHeaderMessage.put(ERROR_MESSAGE, e.getMessage());
return getJsonHttptatus(INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
} }

View File

@ -1,20 +1,14 @@
package com.jasamedika.medifirst2000.controller; package com.jasamedika.medifirst2000.controller;
import com.jasamedika.medifirst2000.constants.Constants;
import com.jasamedika.medifirst2000.constants.Master;
import com.jasamedika.medifirst2000.constants.MessageResource; import com.jasamedika.medifirst2000.constants.MessageResource;
import com.jasamedika.medifirst2000.controller.base.LocaleController; import com.jasamedika.medifirst2000.controller.base.LocaleController;
import com.jasamedika.medifirst2000.core.web.WebConstants;
import com.jasamedika.medifirst2000.dto.PegawaiJabatanDto; import com.jasamedika.medifirst2000.dto.PegawaiJabatanDto;
import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.MapPegawaiJabatanToUnitKerjaService; import com.jasamedika.medifirst2000.service.MapPegawaiJabatanToUnitKerjaService;
import com.jasamedika.medifirst2000.util.rest.RestUtil;
import com.jasamedika.medifirst2000.vo.MapPegawaiJabatanToUnitKerjaVO; import com.jasamedika.medifirst2000.vo.MapPegawaiJabatanToUnitKerjaVO;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.orm.jpa.JpaSystemException; import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -22,66 +16,72 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid; import javax.validation.Valid;
import java.text.ParseException; import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.jasamedika.medifirst2000.constants.Constants.MessageInfo.ERROR_MESSAGE;
import static com.jasamedika.medifirst2000.constants.Master.TIDAK_ADA_PERUBAHAN_DATA;
import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.LABEL_SUCCESS;
import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.LABEL_SUCCESS_OK;
import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonHttpStatus;
import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonResponse;
import static org.springframework.http.HttpStatus.*;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
import static org.springframework.web.bind.annotation.RequestMethod.POST;
@RestController @RestController
@RequestMapping("/map-pegawai-jabatan-unitkerja") @RequestMapping("/map-pegawai-jabatan-unitkerja")
public class MapPegawaiJabatanToUnitKerjaController extends LocaleController<MapPegawaiJabatanToUnitKerjaVO> { public class MapPegawaiJabatanToUnitKerjaController extends LocaleController<MapPegawaiJabatanToUnitKerjaVO> {
private static final Logger LOGGER = LoggerFactory.getLogger(MapPegawaiJabatanToUnitKerjaController.class);
@Autowired @Autowired
private MapPegawaiJabatanToUnitKerjaService mapPegawaiJabatanToUnitKerjaService; private MapPegawaiJabatanToUnitKerjaService mapPegawaiJabatanToUnitKerjaService;
private static final Logger LOGGER = LoggerFactory.getLogger(MapPegawaiJabatanToUnitKerjaController.class); @RequestMapping(value = "/save-map", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
@RequestMapping(value = "/save-map", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> save(@Valid @RequestBody List<MapPegawaiJabatanToUnitKerjaVO> vo, public ResponseEntity<Map<String, Object>> save(@Valid @RequestBody List<MapPegawaiJabatanToUnitKerjaVO> vo,
HttpServletRequest request) throws ParseException { HttpServletRequest request) throws ParseException {
try { try {
Map<String, Object> result = mapPegawaiJabatanToUnitKerjaService.saveRev(vo); Map<String, Object> result = mapPegawaiJabatanToUnitKerjaService.saveRev(vo);
if (null != result && result.get("data").equals(Master.TIDAK_ADA_PERUBAHAN_DATA)) { if (null != result && result.get("data").equals(TIDAK_ADA_PERUBAHAN_DATA)) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS_OK, mapHeaderMessage.put(LABEL_SUCCESS_OK, getMessage(MessageResource.LABEL_SUCCESS_OK, request));
getMessage(MessageResource.LABEL_SUCCESS_OK, request)); return getJsonResponse(result, NOT_MODIFIED, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.NOT_MODIFIED, mapHeaderMessage);
} else { } else {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, CREATED, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage);
} }
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when add mapping jabatan", e.getMessage()); LOGGER.error("Got ServiceVOException {} when mapPegawaiJabatanToUnitKerjaService.saveRev", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when add mapping jabatan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when mapPegawaiJabatanToUnitKerjaService.saveRev",
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/hapus-map", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/hapus-map", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> hapusMap(@Valid @RequestBody List<MapPegawaiJabatanToUnitKerjaVO> vo, public ResponseEntity<Map<String, Object>> hapusMap(@Valid @RequestBody List<MapPegawaiJabatanToUnitKerjaVO> vo,
HttpServletRequest request) throws ParseException { HttpServletRequest request) {
Map<String, String> mapHeaderMessage = new HashMap<String, String>(); Map<String, String> mapHeaderMessage = new HashMap<>();
try { try {
Map<String, Object> result = mapPegawaiJabatanToUnitKerjaService.save(vo); Map<String, Object> result = mapPegawaiJabatanToUnitKerjaService.save(vo);
if (null != result) if (null != result)
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, CREATED, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when add Map", e.getMessage()); LOGGER.error("Got ServiceVOException {} when mapPegawaiJabatanToUnitKerjaService.save", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when add Map", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when mapPegawaiJabatanToUnitKerjaService.save", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
/** /**
@ -89,291 +89,271 @@ public class MapPegawaiJabatanToUnitKerjaController extends LocaleController<Map
* API inisiasi awal jika data mapping sudah input tp histori belum, * API inisiasi awal jika data mapping sudah input tp histori belum,
* dilakukan hanya satu kali * dilakukan hanya satu kali
*/ */
@RequestMapping(value = "/get-all-map", method = RequestMethod.GET) @RequestMapping(value = "/get-all-map", method = GET)
public ResponseEntity<Map<String, Object>> getAllMap(HttpServletRequest request) { public ResponseEntity<Map<String, Object>> getAllMap(HttpServletRequest request) {
Map<String, Object> result = null;
try { try {
result = mapPegawaiJabatanToUnitKerjaService.findAllMap(); Map<String, Object> result = mapPegawaiJabatanToUnitKerjaService.findAllMap();
mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, return getJsonResponse(result, OK);
getMessage(MessageResource.LABEL_SUCCESS, request));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); throw new ServiceVOException(e.getMessage());
} }
return RestUtil.getJsonResponse(result, HttpStatus.OK);
} }
@RequestMapping(value = "/get-map-by-pegawai/{id}", method = RequestMethod.GET) @RequestMapping(value = "/get-map-by-pegawai/{id}", method = GET)
public ResponseEntity<List<Map<String, Object>>> getMapByPegawai(@PathVariable("id") Integer id) { public ResponseEntity<List<Map<String, Object>>> getMapByPegawai(@PathVariable("id") Integer id) {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
try { try {
result = mapPegawaiJabatanToUnitKerjaService.findAllDetailByPegawai(id); List<Map<String, Object>> result = mapPegawaiJabatanToUnitKerjaService.findAllDetailByPegawai(id);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get mapping jabatan", e.getMessage()); LOGGER.error("Got ServiceVOException {} when findAllDetailByPegawai", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get mapping jabatan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when findAllDetailByPegawai", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-bawahan-level-jabatan", method = RequestMethod.GET) @RequestMapping(value = "/get-bawahan-level-jabatan", method = GET)
public ResponseEntity<List<Map<String, Object>>> getBawahanByLevelJabatan(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> getBawahanByLevelJabatan(HttpServletRequest request,
@RequestParam(value = "idPegawai", required = true) Integer idPegawai) { @RequestParam(value = "idPegawai") Integer idPegawai) {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
try { try {
result = mapPegawaiJabatanToUnitKerjaService.findAllDetailByLevelJabatan(idPegawai); List<Map<String, Object>> result = mapPegawaiJabatanToUnitKerjaService
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, .findAllDetailByLevelJabatan(idPegawai);
getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get bawahan by level jabatan", e.getMessage()); LOGGER.error("Got ServiceVOException {} when findAllDetailByLevelJabatan", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get bawahan by level jabatan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when findAllDetailByLevelJabatan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-undefined-bawahan", method = RequestMethod.GET) @RequestMapping(value = "/get-undefined-bawahan", method = GET)
public ResponseEntity<List<Map<String, Object>>> getUndefinedBawahan(HttpServletRequest request) { public ResponseEntity<List<Map<String, Object>>> getUndefinedBawahan(HttpServletRequest request) {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
try { try {
result = mapPegawaiJabatanToUnitKerjaService.findAllUndefinedDetail(); List<Map<String, Object>> result = mapPegawaiJabatanToUnitKerjaService.findAllUndefinedDetail();
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get bawahan belum didefinisikan", e.getMessage()); LOGGER.error("Got ServiceVOException {} when findAllUndefinedDetail", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get bawahan belum didefinisikan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when findAllUndefinedDetail", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-sub-unit-by-unit/{id}/{idUnit}", method = RequestMethod.GET) @RequestMapping(value = "/get-sub-unit-by-unit/{id}/{idUnit}", method = GET)
public ResponseEntity<Map<String, Object>> getSubUnitByUnit(@PathVariable("id") Integer id, public ResponseEntity<Map<String, Object>> getSubUnitByUnit(@PathVariable("id") Integer id,
@PathVariable("idUnit") Integer idUnit) { @PathVariable("idUnit") Integer idUnit) {
return RestUtil.getJsonResponse(mapPegawaiJabatanToUnitKerjaService.findSubUnitByUnit(id, idUnit), return getJsonResponse(mapPegawaiJabatanToUnitKerjaService.findSubUnitByUnit(id, idUnit), OK);
HttpStatus.OK);
} }
@RequestMapping(value = "/get-unit-by-pegawai/{id}", method = RequestMethod.GET) @RequestMapping(value = "/get-unit-by-pegawai/{id}", method = GET)
public ResponseEntity<Map<String, Object>> getSubUnitByUnit(@PathVariable("id") Integer id) { public ResponseEntity<Map<String, Object>> getSubUnitByUnit(@PathVariable("id") Integer id) {
return RestUtil.getJsonResponse(mapPegawaiJabatanToUnitKerjaService.findUnitByPgw(id), HttpStatus.OK); return getJsonResponse(mapPegawaiJabatanToUnitKerjaService.findUnitByPgw(id), OK);
} }
@RequestMapping(value = "/get-unit-by-pegawai-jadwal/{id}", method = RequestMethod.GET) @RequestMapping(value = "/get-unit-by-pegawai-jadwal/{id}", method = GET)
public ResponseEntity<List<Map<String, Object>>> getSubUnitByUnitJadwal(@PathVariable("id") Integer id) { public ResponseEntity<List<Map<String, Object>>> getSubUnitByUnitJadwal(@PathVariable("id") Integer id) {
return RestUtil.getJsonResponse(mapPegawaiJabatanToUnitKerjaService.findUnitByPgwJadwal(id), HttpStatus.OK); return getJsonResponse(mapPegawaiJabatanToUnitKerjaService.findUnitByPgwJadwal(id), OK);
} }
@RequestMapping(value = "/get-sub-unit-by-unit-jadwal/{id}/{idUnit}", method = RequestMethod.GET) @RequestMapping(value = "/get-sub-unit-by-unit-jadwal/{id}/{idUnit}", method = GET)
public ResponseEntity<List<Map<String, Object>>> getSubUnitByUnitJadwal(@PathVariable("id") Integer id, public ResponseEntity<List<Map<String, Object>>> getSubUnitByUnitJadwal(@PathVariable("id") Integer id,
@PathVariable("idUnit") Integer idUnit) { @PathVariable("idUnit") Integer idUnit) {
return RestUtil.getJsonResponse(mapPegawaiJabatanToUnitKerjaService.findSubUnitByUnitJadwal(id, idUnit), return getJsonResponse(mapPegawaiJabatanToUnitKerjaService.findSubUnitByUnitJadwal(id, idUnit), OK);
HttpStatus.OK);
} }
@RequestMapping(value = "/get-status-create-jadwal", method = RequestMethod.GET) @RequestMapping(value = "/get-status-create-jadwal", method = GET)
public ResponseEntity<Map<String, Object>> getStatusCreateJadwal( public ResponseEntity<Map<String, Object>> getStatusCreateJadwal(
@RequestParam(value = "id", required = false) Integer id, HttpServletRequest request) { @RequestParam(value = "id", required = false) Integer id, HttpServletRequest request) {
try { try {
Map<String, Object> result = mapPegawaiJabatanToUnitKerjaService Map<String, Object> result = mapPegawaiJabatanToUnitKerjaService
.getMapJabatanForMonitoringAbsensiByPegawai(id); .getMapJabatanForMonitoringAbsensiByPegawai(id);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get status create jadwal", e.getMessage()); LOGGER.error("Got ServiceVOException {} when getMapJabatanForMonitoringAbsensiByPegawai", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get status create jadwal", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when getMapJabatanForMonitoringAbsensiByPegawai", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-drop-down-unit", method = RequestMethod.GET) @RequestMapping(value = "/get-drop-down-unit", method = GET)
public ResponseEntity<Map<String, Object>> getDropDownUnitKerja( public ResponseEntity<Map<String, Object>> getDropDownUnitKerja(
@RequestParam(value = "id", required = false) Integer id, HttpServletRequest request) { @RequestParam(value = "id", required = false) Integer id, HttpServletRequest request) {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
try { try {
result.put("data", mapPegawaiJabatanToUnitKerjaService.getMapUnitKerjaByPegawai(id)); result.put("data", mapPegawaiJabatanToUnitKerjaService.getMapUnitKerjaByPegawai(id));
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get drop down unit", e.getMessage()); LOGGER.error("Got ServiceVOException {} when getMapUnitKerjaByPegawai", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get drop down unit", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when getMapUnitKerjaByPegawai", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-drop-down-subunit", method = RequestMethod.GET) @RequestMapping(value = "/get-drop-down-subunit", method = GET)
public ResponseEntity<Map<String, Object>> getDropDownSubUnitKerja( public ResponseEntity<Map<String, Object>> getDropDownSubUnitKerja(
@RequestParam(value = "id", required = false) Integer id, @RequestParam(value = "id", required = false) Integer id,
@RequestParam(value = "idUnit", required = false) Integer idUnit, HttpServletRequest request) { @RequestParam(value = "idUnit", required = false) Integer idUnit, HttpServletRequest request) {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
try { try {
result.put("data", mapPegawaiJabatanToUnitKerjaService.getMapSubunitKerjaByUnitPegawai(id, idUnit)); result.put("data", mapPegawaiJabatanToUnitKerjaService.getMapSubunitKerjaByUnitPegawai(id, idUnit));
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get drop down subunit", e.getMessage()); LOGGER.error("Got ServiceVOException {} when getMapSubunitKerjaByUnitPegawai", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get drop down subunit", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when getMapSubunitKerjaByUnitPegawai", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/list-atasan-langsung-pegawai", method = RequestMethod.GET) @RequestMapping(value = "/list-atasan-langsung-pegawai", method = GET)
public ResponseEntity<Map<String, Object>> getAtasanLangsungPegawai( public ResponseEntity<Map<String, Object>> getAtasanLangsungPegawai(
@RequestParam(value = "idPegawai", required = false) Integer idPegawai, HttpServletRequest request) { @RequestParam(value = "idPegawai", required = false) Integer idPegawai, HttpServletRequest request) {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
try { try {
result.put("data", mapPegawaiJabatanToUnitKerjaService.findAtasanLangsungPegawai(idPegawai)); result.put("data", mapPegawaiJabatanToUnitKerjaService.findAtasanLangsungPegawai(idPegawai));
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get drop down list atasan langsung", e.getMessage()); LOGGER.error("Got ServiceVOException {} when findAtasanLangsungPegawai", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get drop down list atasan langsung", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when findAtasanLangsungPegawai", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/list-pejabat-penilai-pegawai", method = RequestMethod.GET) @RequestMapping(value = "/list-pejabat-penilai-pegawai", method = GET)
public ResponseEntity<Map<String, Object>> getAtasanPejabatPenilaiPegawai( public ResponseEntity<Map<String, Object>> getAtasanPejabatPenilaiPegawai(
@RequestParam(value = "idPegawai", required = false) Integer idPegawai, HttpServletRequest request) { @RequestParam(value = "idPegawai", required = false) Integer idPegawai, HttpServletRequest request) {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
try { try {
result.put("data", mapPegawaiJabatanToUnitKerjaService.findPejabatPenilaiPegawai(idPegawai)); result.put("data", mapPegawaiJabatanToUnitKerjaService.findPejabatPenilaiPegawai(idPegawai));
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get drop down list atasan pejabat penilai", e.getMessage()); LOGGER.error("Got ServiceVOException {} when findPejabatPenilaiPegawai", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get drop down list atasan pejabat penilai", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when findPejabatPenilaiPegawai", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-formasi-jabatan", method = RequestMethod.GET) @RequestMapping(value = "/get-formasi-jabatan", method = GET)
public ResponseEntity<List<Map<String, Object>>> getFormasiJabatan(HttpServletRequest request) { public ResponseEntity<List<Map<String, Object>>> getFormasiJabatan(HttpServletRequest request) {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
try { try {
result = mapPegawaiJabatanToUnitKerjaService.findFormasiJabatan(); List<Map<String, Object>> result = mapPegawaiJabatanToUnitKerjaService.findFormasiJabatan();
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get formasi jabatan", e.getMessage()); LOGGER.error("Got ServiceVOException {} when findFormasiJabatan", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get formasi jabatan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when findFormasiJabatan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-jabatan-pegawai", method = RequestMethod.GET) @RequestMapping(value = "/get-jabatan-pegawai", method = GET)
public ResponseEntity<List<Map<String, Object>>> getJabatanPegawai(HttpServletRequest request) { public ResponseEntity<List<Map<String, Object>>> getJabatanPegawai(HttpServletRequest request) {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
try { try {
result = mapPegawaiJabatanToUnitKerjaService.getJabatanPegawai(); List<Map<String, Object>> result = mapPegawaiJabatanToUnitKerjaService.getJabatanPegawai();
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get jabatan pegawai", e.getMessage()); LOGGER.error("Got ServiceVOException {} when getJabatanPegawai", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get jabatan pegawai", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when getJabatanPegawai", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/get-evaluasi-jabatan-pegawai-baru", method = RequestMethod.GET) @RequestMapping(value = "/get-evaluasi-jabatan-pegawai-baru", method = GET)
public ResponseEntity<Map<String, Object>> getEvaluasiJabatanPegawaiBaru( public ResponseEntity<Map<String, Object>> getEvaluasiJabatanPegawaiBaru(
@RequestParam(value = "listJabatanId", required = false) List<Integer> listIdJabatan, @RequestParam(value = "listJabatanId", required = false) List<Integer> listIdJabatan,
HttpServletRequest request) { HttpServletRequest request) {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
try { try {
result.put("data", mapPegawaiJabatanToUnitKerjaService.getEvaluasiJabatanPegawaiBaru(listIdJabatan)); result.put("data", mapPegawaiJabatanToUnitKerjaService.getEvaluasiJabatanPegawaiBaru(listIdJabatan));
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get evaluasi jabatan pegawai baru", e.getMessage()); LOGGER.error("Got ServiceVOException {} when getEvaluasiJabatanPegawaiBaru", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get evaluasi jabatan pegawai baru", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when getEvaluasiJabatanPegawaiBaru", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/pegawai/{unitKerjaId}", method = RequestMethod.GET) @RequestMapping(value = "/pegawai/{unitKerjaId}", method = GET)
public ResponseEntity<List<Map<String, Object>>> getPegawaiByUnitKerja(@PathVariable Integer unitKerjaId, public ResponseEntity<List<Map<String, Object>>> getPegawaiByUnitKerja(@PathVariable Integer unitKerjaId,
HttpServletRequest request) { HttpServletRequest request) {
try { try {
List<Map<String, Object>> result = mapPegawaiJabatanToUnitKerjaService List<Map<String, Object>> result = mapPegawaiJabatanToUnitKerjaService
.getlistPegawaiByUnitKerja(unitKerjaId); .getlistPegawaiByUnitKerja(unitKerjaId);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get jabatan pegawai", e.getMessage()); LOGGER.error("Got ServiceVOException {} when getlistPegawaiByUnitKerja", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get jabatan pegawai", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when getlistPegawaiByUnitKerja", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/logbook-title/{idPegawai}", method = RequestMethod.GET) @RequestMapping(value = "/logbook-title/{idPegawai}", method = GET)
public ResponseEntity<String> logbookTitle(@PathVariable("idPegawai") Integer idPegawai) { public ResponseEntity<String> logbookTitle(@PathVariable("idPegawai") Integer idPegawai) {
String jenisLogbook = mapPegawaiJabatanToUnitKerjaService.getJenisLogbook(idPegawai); String jenisLogbook = mapPegawaiJabatanToUnitKerjaService.getJenisLogbook(idPegawai);
return RestUtil.getJsonResponse(jenisLogbook, HttpStatus.OK); return getJsonResponse(jenisLogbook, OK);
} }
@RequestMapping(value = "/jabatan/{idPegawai}", method = RequestMethod.GET) @RequestMapping(value = "/jabatan/{idPegawai}", method = GET)
public ResponseEntity<PegawaiJabatanDto> pegawaiJabatan(@PathVariable("idPegawai") Integer idPegawai) { public ResponseEntity<PegawaiJabatanDto> pegawaiJabatan(@PathVariable("idPegawai") Integer idPegawai) {
PegawaiJabatanDto dataJabatan = mapPegawaiJabatanToUnitKerjaService.getDataJabatan(idPegawai); PegawaiJabatanDto dataJabatan = mapPegawaiJabatanToUnitKerjaService.getDataJabatan(idPegawai);
return RestUtil.getJsonResponse(dataJabatan, HttpStatus.OK); return getJsonResponse(dataJabatan, OK);
} }
} }

View File

@ -1,288 +1,270 @@
package com.jasamedika.medifirst2000.controller; package com.jasamedika.medifirst2000.controller;
import com.jasamedika.medifirst2000.constants.MessageResource;
import com.jasamedika.medifirst2000.controller.base.LocaleController;
import com.jasamedika.medifirst2000.dto.FileUploadExcelDto;
import com.jasamedika.medifirst2000.dto.PayRollDto;
import com.jasamedika.medifirst2000.dto.PayRollUangMakanDto;
import com.jasamedika.medifirst2000.service.PayRollPegawaiService;
import com.jasamedika.medifirst2000.vo.StrukHistoriVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.LABEL_ERROR;
import javax.validation.Valid; import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.LABEL_SUCCESS;
import static com.jasamedika.medifirst2000.util.DateUtil.toDate;
import org.springframework.beans.factory.annotation.Autowired; import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonHttpStatus;
import org.springframework.http.HttpStatus; import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonResponse;
import org.springframework.http.MediaType; import static org.springframework.http.HttpStatus.*;
import org.springframework.http.ResponseEntity; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import org.springframework.web.bind.annotation.RequestBody; import static org.springframework.web.bind.annotation.RequestMethod.GET;
import org.springframework.web.bind.annotation.RequestMapping; import static org.springframework.web.bind.annotation.RequestMethod.POST;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.jasamedika.medifirst2000.constants.MessageResource;
import com.jasamedika.medifirst2000.controller.base.LocaleController;
import com.jasamedika.medifirst2000.core.web.WebConstants;
import com.jasamedika.medifirst2000.dto.FileUploadExcelDto;
import com.jasamedika.medifirst2000.dto.OrderPelayananGiziDto;
import com.jasamedika.medifirst2000.dto.PayRollDto;
import com.jasamedika.medifirst2000.dto.PayRollUangMakanDto;
import com.jasamedika.medifirst2000.service.PayRollPegawaiService;
import com.jasamedika.medifirst2000.util.DateUtil;
import com.jasamedika.medifirst2000.util.rest.RestUtil;
import com.jasamedika.medifirst2000.vo.StrukHistoriVO;
@RestController @RestController
@RequestMapping(value="/pay-roll") @RequestMapping(value = "/pay-roll")
public class PayRollPegawaiController extends LocaleController<StrukHistoriVO> { public class PayRollPegawaiController extends LocaleController<StrukHistoriVO> {
@Autowired @Autowired
private PayRollPegawaiService payRollPegawaiService; private PayRollPegawaiService payRollPegawaiService;
@RequestMapping(value="/get-pegawai-blu-pkwt", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get-pegawai-blu-pkwt", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> prosesPegawaiBluPkwt( public ResponseEntity<List<Map<String, Object>>> prosesPegawaiBluPkwt(
@RequestParam(value="idKategoryPegawai", required = true) Integer idKategoryPegawai, @RequestParam(value = "idKategoryPegawai") Integer idKategoryPegawai,
@RequestParam(value="idJenisGaji" , required = true) Integer idJenisGaji, @RequestParam(value = "idJenisGaji") Integer idJenisGaji, @RequestParam(value = "periode") String periode,
@RequestParam(value="periode", required = true) String periode, @RequestParam(value = "tglHistori", required = false) String tglHistori, HttpServletRequest request) {
@RequestParam(value="tglHistori", required = false) String tglHistori, List<Map<String, Object>> result = payRollPegawaiService.prosesPegawaiBluPkwt(idKategoryPegawai, idJenisGaji,
HttpServletRequest request) { periode, toDate(tglHistori));
List<Map<String, Object>> result = payRollPegawaiService.prosesPegawaiBluPkwt(idKategoryPegawai,idJenisGaji,periode,DateUtil.toDate(tglHistori));
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/save-pegawai-blu-pkwt", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/save-pegawai-blu-pkwt", method = POST, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<PayRollDto>> savePegawaiByStatusPegawai(@RequestBody List<PayRollDto> dtos, public ResponseEntity<List<PayRollDto>> savePegawaiByStatusPegawai(@RequestBody List<PayRollDto> dtos,
HttpServletRequest request) { HttpServletRequest request) {
List<PayRollDto> result = payRollPegawaiService.save(dtos); List<PayRollDto> result = payRollPegawaiService.save(dtos);
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/find-status-pegawai-blu-pkwt", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/find-status-pegawai-blu-pkwt", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> findPegawaiBluPkwt(HttpServletRequest request) { public ResponseEntity<List<Map<String, Object>>> findPegawaiBluPkwt(HttpServletRequest request) {
List<Integer> ids=new ArrayList<Integer>(); List<Integer> ids = new ArrayList<>();
ids.add(9); ids.add(9);
ids.add(10); ids.add(10);
List<Map<String, Object>> result = payRollPegawaiService.findDetailKategoryPegawaiBluPkwt(ids); List<Map<String, Object>> result = payRollPegawaiService.findDetailKategoryPegawaiBluPkwt(ids);
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/find-jenis-gaji", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/find-jenis-gaji", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> findJenisGaji(HttpServletRequest request) { public ResponseEntity<List<Map<String, Object>>> findJenisGaji(HttpServletRequest request) {
List<Map<String, Object>> result = payRollPegawaiService.findAllJenisGaji(); List<Map<String, Object>> result = payRollPegawaiService.findAllJenisGaji();
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/get-uang-makan-pegawai", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get-uang-makan-pegawai", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> prosesUangMakanPegawai( public ResponseEntity<List<Map<String, Object>>> prosesUangMakanPegawai(
@RequestParam(value="idKategoryPegawai", required = true) Integer idKategoryPegawai, @RequestParam(value = "idKategoryPegawai") Integer idKategoryPegawai,
@RequestParam(value="idJenisGaji" , required = true) Integer idJenisGaji, @RequestParam(value = "idJenisGaji") Integer idJenisGaji, @RequestParam(value = "periode") String periode,
@RequestParam(value="periode", required = true) String periode, @RequestParam(value = "tglHistori", required = false) String tglHistori, HttpServletRequest request) {
@RequestParam(value="tglHistori", required = false) String tglHistori, List<Map<String, Object>> result = payRollPegawaiService.prosesUangMakanPegawai(idKategoryPegawai, idJenisGaji,
HttpServletRequest request) { periode, "uangmakan", toDate(tglHistori));
List<Map<String, Object>> result = payRollPegawaiService.prosesUangMakanPegawai(idKategoryPegawai,idJenisGaji,periode,"uangmakan",DateUtil.toDate(tglHistori));
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/find-status-pegawai-uang-makan", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/find-status-pegawai-uang-makan", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> findPegawaiUangMakan(HttpServletRequest request) { public ResponseEntity<List<Map<String, Object>>> findPegawaiUangMakan(HttpServletRequest request) {
List<Integer> ids=new ArrayList<Integer>(); List<Integer> ids = new ArrayList<>();
ids.add(9); ids.add(9);
ids.add(10); ids.add(10);
ids.add(18); ids.add(18);
ids.add(19); ids.add(19);
List<Map<String, Object>> result = payRollPegawaiService.findDetailKategoryPegawaiBluPkwt(ids); List<Map<String, Object>> result = payRollPegawaiService.findDetailKategoryPegawaiBluPkwt(ids);
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/save-pegawai-uang-makan", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/save-pegawai-uang-makan", method = POST, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<PayRollUangMakanDto>> savePegawaiUangMakan(@RequestBody List<PayRollUangMakanDto> dtos, public ResponseEntity<List<PayRollUangMakanDto>> savePegawaiUangMakan(@RequestBody List<PayRollUangMakanDto> dtos,
HttpServletRequest request) { HttpServletRequest request) {
List<PayRollUangMakanDto> result = payRollPegawaiService.saveUangMakan(dtos,"uangmakan"); List<PayRollUangMakanDto> result = payRollPegawaiService.saveUangMakan(dtos, "uangmakan");
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/import-uang-makan", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/import-uang-makan", method = POST, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<PayRollUangMakanDto>> importUangMakan( public ResponseEntity<List<PayRollUangMakanDto>> importUangMakan(
@RequestParam(value="idKategoryPegawai", required = false) Integer idKategoryPegawai, @RequestParam(value = "idKategoryPegawai", required = false) Integer idKategoryPegawai,
@RequestParam(value="idJenisGaji" , required = false) Integer idJenisGaji, @RequestParam(value = "idJenisGaji", required = false) Integer idJenisGaji,
@RequestParam(value="periode", required = false) String periode, @RequestParam(value = "periode", required = false) String periode,
@RequestParam(value="file",required = false) String file, @RequestParam(value = "file", required = false) String file,
@RequestParam(value="tglHistori", required = false) String tglHistori,@RequestBody FileUploadExcelDto dto, @RequestParam(value = "tglHistori", required = false) String tglHistori,
HttpServletRequest request) { @RequestBody FileUploadExcelDto dto, HttpServletRequest request) {
List<PayRollUangMakanDto> result = payRollPegawaiService.importUangMakan(idKategoryPegawai,idJenisGaji,periode,file,DateUtil.toDate(tglHistori),dto); List<PayRollUangMakanDto> result = payRollPegawaiService.importUangMakan(idKategoryPegawai, idJenisGaji,
periode, file, toDate(tglHistori), dto);
if (result != null) { if (result != null) {
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage); return getJsonResponse(result, CREATED, mapHeaderMessage);
} else { } else {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_ERROR, "Processing data error returns empty data"); mapHeaderMessage.put(LABEL_ERROR, "Processing data error returns empty data");
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
} else { } else {
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
} }
@RequestMapping(value="/find-status-pegawai-harianLepas", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/find-status-pegawai-harianLepas", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> findPegawaiHarianLepas(HttpServletRequest request) { public ResponseEntity<List<Map<String, Object>>> findPegawaiHarianLepas(HttpServletRequest request) {
List<Integer> ids=new ArrayList<Integer>(); List<Integer> ids = new ArrayList<>();
ids.add(13); ids.add(13);
List<Map<String, Object>> result = payRollPegawaiService.findDetailKategoryPegawaiBluPkwt(ids); List<Map<String, Object>> result = payRollPegawaiService.findDetailKategoryPegawaiBluPkwt(ids);
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/get-harian-lepas-pegawai", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get-harian-lepas-pegawai", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> prosesPegawaiHarianLepas( public ResponseEntity<List<Map<String, Object>>> prosesPegawaiHarianLepas(
@RequestParam(value="idKategoryPegawai", required = true) Integer idKategoryPegawai, @RequestParam(value = "idKategoryPegawai") Integer idKategoryPegawai,
@RequestParam(value="idJenisGaji" , required = true) Integer idJenisGaji, @RequestParam(value = "idJenisGaji") Integer idJenisGaji, @RequestParam(value = "periode") String periode,
@RequestParam(value="periode", required = true) String periode, @RequestParam(value = "tglHistori", required = false) String tglHistori, HttpServletRequest request) {
@RequestParam(value="tglHistori", required = false) String tglHistori, List<Map<String, Object>> result = payRollPegawaiService.prosesUangMakanPegawai(idKategoryPegawai, idJenisGaji,
HttpServletRequest request) { periode, "harianlepas", toDate(tglHistori));
List<Map<String, Object>> result = payRollPegawaiService.prosesUangMakanPegawai(idKategoryPegawai,idJenisGaji,periode,"harianlepas",DateUtil.toDate(tglHistori));
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/save-pegawai-harian-lepas", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/save-pegawai-harian-lepas", method = POST, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<PayRollUangMakanDto>> saveHarianLepas(@RequestBody List<PayRollUangMakanDto> dtos, public ResponseEntity<List<PayRollUangMakanDto>> saveHarianLepas(@RequestBody List<PayRollUangMakanDto> dtos,
HttpServletRequest request) { HttpServletRequest request) {
List<PayRollUangMakanDto> result = payRollPegawaiService.saveUangMakan(dtos,"harianlepas"); List<PayRollUangMakanDto> result = payRollPegawaiService.saveUangMakan(dtos, "harianlepas");
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/find-status-pegawai-pkwt", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/find-status-pegawai-pkwt", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> findPegawaiDokterPsikologiPkwt(HttpServletRequest request) { public ResponseEntity<List<Map<String, Object>>> findPegawaiDokterPsikologiPkwt(HttpServletRequest request) {
List<Integer> ids=new ArrayList<Integer>(); List<Integer> ids = new ArrayList<>();
ids.add(10); ids.add(10);
List<Map<String, Object>> result = payRollPegawaiService.findDetailKategoryPegawaiBluPkwt(ids); List<Map<String, Object>> result = payRollPegawaiService.findDetailKategoryPegawaiBluPkwt(ids);
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/get-dokter-psikologi-pkwt", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get-dokter-psikologi-pkwt", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> prosesDokterPsikologiPkwt( public ResponseEntity<List<Map<String, Object>>> prosesDokterPsikologiPkwt(
@RequestParam(value="idKategoryPegawai", required = true) Integer idKategoryPegawai, @RequestParam(value = "idKategoryPegawai") Integer idKategoryPegawai,
@RequestParam(value="idJenisGaji" , required = true) Integer idJenisGaji, @RequestParam(value = "idJenisGaji") Integer idJenisGaji, @RequestParam(value = "periode") String periode,
@RequestParam(value="periode", required = true) String periode, @RequestParam(value = "tglHistori", required = false) String tglHistori, HttpServletRequest request) {
@RequestParam(value="tglHistori", required = false) String tglHistori, List<Map<String, Object>> result = payRollPegawaiService.prosesDokterPsikologiPkwt(idKategoryPegawai,
HttpServletRequest request) { idJenisGaji, periode, toDate(tglHistori));
List<Map<String, Object>> result = payRollPegawaiService.prosesDokterPsikologiPkwt(idKategoryPegawai,idJenisGaji,periode,DateUtil.toDate(tglHistori));
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/save-dokter-psikologi-pkwt", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/save-dokter-psikologi-pkwt", method = POST, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<PayRollUangMakanDto>> saveDokterPsikologiPkwt(@RequestBody List<PayRollUangMakanDto> dtos, public ResponseEntity<List<PayRollUangMakanDto>> saveDokterPsikologiPkwt(
HttpServletRequest request) { @RequestBody List<PayRollUangMakanDto> dtos, HttpServletRequest request) {
List<PayRollUangMakanDto> result = payRollPegawaiService.saveUangMakan(dtos,"tunjanganlayanan"); List<PayRollUangMakanDto> result = payRollPegawaiService.saveUangMakan(dtos, "tunjanganlayanan");
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/find-rekanan-penjamin-pasien", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/find-rekanan-penjamin-pasien", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> findRekananPenjaminPasien(HttpServletRequest request) { public ResponseEntity<List<Map<String, Object>>> findRekananPenjaminPasien(HttpServletRequest request) {
List<Map<String, Object>> result = payRollPegawaiService.findRekananPenjaminPasien(); List<Map<String, Object>> result = payRollPegawaiService.findRekananPenjaminPasien();
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/find-umr", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/find-umr", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> findUmr( public ResponseEntity<Map<String, Object>> findUmr(@RequestParam(value = "periode") String periode,
@RequestParam(value="periode", required = true) String periode,
HttpServletRequest request) { HttpServletRequest request) {
Map<String, Object> result = payRollPegawaiService.findUmr(periode); Map<String, Object> result = payRollPegawaiService.findUmr(periode);
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/get-premi-asuransi", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get-premi-asuransi", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> prosesPremiAsuransi( public ResponseEntity<List<Map<String, Object>>> prosesPremiAsuransi(
@RequestParam(value="idJenisGaji" , required = true) Integer idJenisGaji, @RequestParam(value = "idJenisGaji") Integer idJenisGaji, @RequestParam(value = "periode") String periode,
@RequestParam(value="periode", required = true) String periode, @RequestParam(value = "idRekanan") Integer idRekanan,
@RequestParam(value="idRekanan" , required = true) Integer idRekanan, @RequestParam(value = "tglHistori", required = false) String tglHistori, HttpServletRequest request) {
@RequestParam(value="tglHistori", required = false) String tglHistori, List<Map<String, Object>> result = payRollPegawaiService.prosesPremiAsuransi(idJenisGaji, periode, idRekanan,
HttpServletRequest request) { toDate(tglHistori));
List<Map<String, Object>> result = payRollPegawaiService.prosesPremiAsuransi(idJenisGaji,periode,idRekanan,DateUtil.toDate(tglHistori));
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
@RequestMapping(value="/save-premi-asuransi", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/save-premi-asuransi", method = POST, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<PayRollUangMakanDto>> savePremiAsuransi(@RequestBody List<PayRollUangMakanDto> dtos, public ResponseEntity<List<PayRollUangMakanDto>> savePremiAsuransi(@RequestBody List<PayRollUangMakanDto> dtos,
HttpServletRequest request) { HttpServletRequest request) {
List<PayRollUangMakanDto> result = payRollPegawaiService.savePremiAsuransi(dtos); List<PayRollUangMakanDto> result = payRollPegawaiService.savePremiAsuransi(dtos);
if (!result.isEmpty()) { if (!result.isEmpty()) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return getJsonResponse(result, OK, mapHeaderMessage);
} }
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
} }

View File

@ -1,31 +1,33 @@
package com.jasamedika.medifirst2000.controller; package com.jasamedika.medifirst2000.controller;
import com.jasamedika.medifirst2000.constants.Constants;
import com.jasamedika.medifirst2000.constants.MessageResource; import com.jasamedika.medifirst2000.constants.MessageResource;
import com.jasamedika.medifirst2000.controller.base.LocaleController; import com.jasamedika.medifirst2000.controller.base.LocaleController;
import com.jasamedika.medifirst2000.core.web.WebConstants;
import com.jasamedika.medifirst2000.dto.BatalPaketProdukDto; import com.jasamedika.medifirst2000.dto.BatalPaketProdukDto;
import com.jasamedika.medifirst2000.dto.TagihanPendaftaranDto; import com.jasamedika.medifirst2000.dto.TagihanPendaftaranDto;
import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.*; import com.jasamedika.medifirst2000.service.*;
import com.jasamedika.medifirst2000.util.rest.RestUtil;
import com.jasamedika.medifirst2000.vo.MapProdukPaketToProdukVO; import com.jasamedika.medifirst2000.vo.MapProdukPaketToProdukVO;
import com.jasamedika.medifirst2000.vo.MapProdukPaketVO; import com.jasamedika.medifirst2000.vo.MapProdukPaketVO;
import com.jasamedika.medifirst2000.vo.PelayananPasienVO; import com.jasamedika.medifirst2000.vo.PelayananPasienVO;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.orm.jpa.JpaSystemException; import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.jasamedika.medifirst2000.constants.Constants.MessageInfo.ERROR_MESSAGE;
import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.LABEL_SUCCESS;
import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonHttpStatus;
import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonResponse;
import static org.springframework.http.HttpStatus.*;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
@RestController @RestController
@RequestMapping("/pelayanan") @RequestMapping("/pelayanan")
public class PelayananController extends LocaleController<PelayananPasienVO> { public class PelayananController extends LocaleController<PelayananPasienVO> {
@ -50,275 +52,257 @@ public class PelayananController extends LocaleController<PelayananPasienVO> {
@Autowired @Autowired
private MapProdukPaketToProdukService mapProdukPaketToProdukService; private MapProdukPaketToProdukService mapProdukPaketToProdukService;
@RequestMapping(value = "/calculate-indikator-pelayanan", method = RequestMethod.GET) @RequestMapping(value = "/calculate-indikator-pelayanan", method = GET)
public ResponseEntity<List<Map<String, Object>>> calculateIndikatorPelayanan(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> calculateIndikatorPelayanan(HttpServletRequest request,
@RequestParam("tahun") String tahun) { @RequestParam("tahun") String tahun) {
try { try {
List<Map<String, Object>> result = pasienDaftarService.findIndikatorPelayanan(tahun); List<Map<String, Object>> result = pasienDaftarService.findIndikatorPelayanan(tahun);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException sve) { } catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when calculate indikator pelayanan", sve.getMessage()); LOGGER.error("Got ServiceVOException {} when findIndikatorPelayanan", sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); addHeaderMessage(ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when calculate indikator pelayanan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when findIndikatorPelayanan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/validate-nama-produk", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/validate-nama-produk", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> validateNamaProduk(HttpServletRequest request, public ResponseEntity<Map<String, Object>> validateNamaProduk(HttpServletRequest request,
@RequestParam(value = "idProduk", required = false) Integer idProduk, @RequestParam(value = "idProduk", required = false) Integer idProduk,
@RequestParam(value = "namaProduk") String namaProduk) { @RequestParam(value = "namaProduk") String namaProduk) {
try { try {
Map<String, Object> result = produkService.validateNamaProduk(idProduk, namaProduk); Map<String, Object> result = produkService.validateNamaProduk(idProduk, namaProduk);
return getJsonResponse(result, OK);
return RestUtil.getJsonResponse(result, HttpStatus.OK);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when validate nama produk", e.getMessage()); LOGGER.error("Got ServiceVOException {} when validateNamaProduk", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when validate nama produk", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when validateNamaProduk", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/paket-to-produk", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/paket-to-produk", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> getMappingPaketToProduk(HttpServletRequest request, public ResponseEntity<Map<String, Object>> getMappingPaketToProduk(HttpServletRequest request,
@RequestParam(value = "idMapping") Integer idMapping) { @RequestParam(value = "idMapping") Integer idMapping) {
try { try {
Map<String, Object> result = produkService.getMappingPaketToProduk(idMapping); Map<String, Object> result = produkService.getMappingPaketToProduk(idMapping);
return RestUtil.getJsonResponse(result, HttpStatus.OK); return getJsonResponse(result, OK);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get mapping paket to produk", e.getMessage()); LOGGER.error("Got ServiceVOException {} when getMappingPaketToProduk", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get mapping paket to produk", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when getMappingPaketToProduk", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/all-paket-produk", method = RequestMethod.GET) @RequestMapping(value = "/all-paket-produk", method = GET)
public ResponseEntity<List<Map<String, Object>>> getAllPaketToProduk(HttpServletRequest request) { public ResponseEntity<List<Map<String, Object>>> getAllPaketToProduk(HttpServletRequest request) {
try { try {
List<Map<String, Object>> result = produkService.getAllPaketToProduk(); List<Map<String, Object>> result = produkService.getAllPaketToProduk();
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException sve) { } catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when get all data paket to produk", sve.getMessage()); LOGGER.error("Got ServiceVOException {} when getAllPaketToProduk", sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); addHeaderMessage(ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get all data paket to produk", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when getAllPaketToProduk", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/master-satuan-standar", method = RequestMethod.GET) @RequestMapping(value = "/master-satuan-standar", method = GET)
public ResponseEntity<List<Map<String, Object>>> getAllMasterSatuanStandar(HttpServletRequest request) { public ResponseEntity<List<Map<String, Object>>> getAllMasterSatuanStandar(HttpServletRequest request) {
try { try {
List<Map<String, Object>> result = satuanStandarService.getAll(); List<Map<String, Object>> result = satuanStandarService.getAll();
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException sve) { } catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when get all master satuan standar distinct on", sve.getMessage()); LOGGER.error("Got ServiceVOException {} when satuanStandarService.getAll", sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); addHeaderMessage(ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get all master satuan standar distinct on", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when satuanStandarService.getAll", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/klaim-diskon", method = RequestMethod.GET) @RequestMapping(value = "/klaim-diskon", method = GET)
public ResponseEntity<List<String>> KlaimDiskon(HttpServletRequest request, public ResponseEntity<List<String>> KlaimDiskon(HttpServletRequest request,
@RequestParam(value = "noRegistrasi") String noRegistrasi, @RequestParam(value = "noRegistrasi") String noRegistrasi,
@RequestParam(value = "totalKlaim") Double totalKlaim, @RequestParam(value = "totalKlaim") Double totalKlaim,
@RequestParam(value = "jenisDiskon") Integer jenisDiskon) { @RequestParam(value = "jenisDiskon") Integer jenisDiskon) {
try { try {
List<String> result = pelayananPasienService.updateKlaimDiskon(noRegistrasi, totalKlaim, jenisDiskon); List<String> result = pelayananPasienService.updateKlaimDiskon(noRegistrasi, totalKlaim, jenisDiskon);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when klaim diskon karyawan", e.getMessage()); LOGGER.error("Got ServiceVOException {} when updateKlaimDiskon", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when klaim diskon karyawan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when updateKlaimDiskon", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/reset-klaim-diskon", method = RequestMethod.GET) @RequestMapping(value = "/reset-klaim-diskon", method = GET)
public ResponseEntity<String> ResetKlaimDiskon(HttpServletRequest request, public ResponseEntity<String> ResetKlaimDiskon(HttpServletRequest request,
@RequestParam(value = "noRegistrasi") String noRegistrasi) { @RequestParam(value = "noRegistrasi") String noRegistrasi) {
try { try {
String result = pelayananPasienService.resetKlaimDiskon(noRegistrasi); String result = pelayananPasienService.resetKlaimDiskon(noRegistrasi);
mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, return getJsonResponse(result, OK, mapHeaderMessage);
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when klaim diskon karyawan", e.getMessage()); LOGGER.error("Got ServiceVOException {} when resetKlaimDiskon", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when klaim diskon karyawan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when resetKlaimDiskon", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/check-existing-harga-produk-kelas", method = RequestMethod.GET) @RequestMapping(value = "/check-existing-harga-produk-kelas", method = GET)
public ResponseEntity<List<Map<String, Object>>> checkExistingHargaProdukKelas(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> checkExistingHargaProdukKelas(HttpServletRequest request,
@RequestParam(value = "kelasId") Integer idKelas, @RequestParam(value = "produkId") Integer idProduk, @RequestParam(value = "kelasId") Integer idKelas, @RequestParam(value = "produkId") Integer idProduk,
@RequestParam(value = "mappingId", required = false) Integer idMapping) { @RequestParam(value = "mappingId", required = false) Integer idMapping) {
try { try {
List<Map<String, Object>> result = produkService.findExistingMapHargaKelas(idKelas, idProduk, idMapping); List<Map<String, Object>> result = produkService.findExistingMapHargaKelas(idKelas, idProduk, idMapping);
mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, return getJsonResponse(result, OK, mapHeaderMessage);
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when check existing harga produk kelas", e.getMessage()); LOGGER.error("Got ServiceVOException {} when findExistingMapHargaKelas", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when check existing harga produk kelas", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when findExistingMapHargaKelas", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/tagihan/daftar/{noRegistrasi}", method = RequestMethod.GET) @RequestMapping(value = "/tagihan/daftar/{noRegistrasi}", method = GET)
public ResponseEntity<List<TagihanPendaftaranDto>> daftarTagihan(HttpServletRequest request, public ResponseEntity<List<TagihanPendaftaranDto>> daftarTagihan(HttpServletRequest request,
@PathVariable String noRegistrasi) { @PathVariable String noRegistrasi) {
try { try {
List<TagihanPendaftaranDto> result = pelayananPasienService.tagihan(noRegistrasi); List<TagihanPendaftaranDto> result = pelayananPasienService.tagihan(noRegistrasi);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(result, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get daftar tagihan {}", e.getMessage(), noRegistrasi); LOGGER.error("Got ServiceVOException {} when pelayananPasienService.tagihan {}", e.getMessage(),
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); noRegistrasi);
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get daftar tagihan {}", jse.getMessage(), noRegistrasi); LOGGER.error("Got JpaSystemException {} when pelayananPasienService.tagihan {}", jse.getMessage(),
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); noRegistrasi);
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/tagihan/diskon/save", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/tagihan/diskon/save", method = RequestMethod.POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<Object> simpanDiskonTagihan(HttpServletRequest request, public ResponseEntity<Object> simpanDiskonTagihan(HttpServletRequest request,
@RequestParam(value = "kode-voucher", required = false) String kodeVoucher, @RequestParam(value = "kode-voucher", required = false) String kodeVoucher,
@RequestBody List<TagihanPendaftaranDto> dtoList) { @RequestBody List<TagihanPendaftaranDto> dtoList) {
try { try {
pelayananPasienService.diskonTagihan(kodeVoucher, dtoList); pelayananPasienService.diskonTagihan(kodeVoucher, dtoList);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(dtoList, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(dtoList, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when simpan diskon tagihan", e.getMessage()); LOGGER.error("Got ServiceVOException {} when diskonTagihan", e.getMessage());
Map<String, String> error = new HashMap<>(); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
error.put("bad_request", e.getMessage()); return getJsonHttpStatus(BAD_REQUEST, mapHeaderMessage);
return RestUtil.getJsonResponse(null, HttpStatus.BAD_REQUEST, error);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when simpan diskon tagihan", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when diskonTagihan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/tagihan/diskon/batal-paket", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/tagihan/diskon/batal-paket", method = RequestMethod.POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<Object> batalPaket(HttpServletRequest request, @RequestBody BatalPaketProdukDto dto) { public ResponseEntity<Object> batalPaket(HttpServletRequest request, @RequestBody BatalPaketProdukDto dto) {
try { try {
pelayananPasienService.batalPaketProduk(request, dto); pelayananPasienService.batalPaketProduk(request, dto);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(dto, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(dto, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when batal diskon paket", e.getMessage()); LOGGER.error("Got ServiceVOException {} when batalPaketProduk", e.getMessage());
Map<String, String> error = new HashMap<>(); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
error.put("bad_request", e.getMessage()); return getJsonHttpStatus(BAD_REQUEST, mapHeaderMessage);
return RestUtil.getJsonResponse(null, HttpStatus.BAD_REQUEST, error);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when batal diskon paket", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when batalPaketProduk", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/vouchers/validity", method = RequestMethod.GET) @RequestMapping(value = "/vouchers/validity", method = GET)
public ResponseEntity<Object> isValidVoucher(HttpServletRequest request, public ResponseEntity<Object> isValidVoucher(HttpServletRequest request,
@RequestParam("kode-voucher") String kodeVoucher, @RequestParam("no-registrasi") String noRegistrasi) { @RequestParam("kode-voucher") String kodeVoucher, @RequestParam("no-registrasi") String noRegistrasi) {
try { try {
boolean validVoucher = pelayananPasienService.isValidVoucher(kodeVoucher, noRegistrasi); boolean validVoucher = pelayananPasienService.isValidVoucher(kodeVoucher, noRegistrasi);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(validVoucher, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(validVoucher, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when check voucher validity", e.getMessage()); LOGGER.error("Got ServiceVOException {} when isValidVoucher", e.getMessage());
Map<String, String> error = new HashMap<>(); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
error.put("bad_request", e.getMessage()); return getJsonHttpStatus(BAD_REQUEST, mapHeaderMessage);
return RestUtil.getJsonResponse(false, HttpStatus.BAD_REQUEST, error);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when check voucher validity", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when isValidVoucher", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/produk-paket/paket", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/produk-paket/paket", method = RequestMethod.POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<Object> simpanMappingListProdukPaket(HttpServletRequest request, public ResponseEntity<Object> simpanMappingListProdukPaket(HttpServletRequest request,
@RequestBody List<MapProdukPaketVO> vos) { @RequestBody List<MapProdukPaketVO> vos) {
try { try {
mapProdukPaketService.saveAll(vos); mapProdukPaketService.saveAll(vos);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(vos, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(vos, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when simpan mapping list produk paket", e.getMessage()); LOGGER.error("Got ServiceVOException {} when mapProdukPaketService.saveAll", e.getMessage());
Map<String, String> error = new HashMap<>(); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
error.put("bad_request", e.getMessage()); return getJsonHttpStatus(BAD_REQUEST, mapHeaderMessage);
return RestUtil.getJsonResponse(null, HttpStatus.BAD_REQUEST, error);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when simpan mapping list produk paket", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when mapProdukPaketService.saveAll", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/produk-paket/produk", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/produk-paket/produk", method = RequestMethod.POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<Object> simpanMappingEntriProdukPaket(HttpServletRequest request, public ResponseEntity<Object> simpanMappingEntriProdukPaket(HttpServletRequest request,
@RequestBody List<MapProdukPaketToProdukVO> vos) { @RequestBody List<MapProdukPaketToProdukVO> vos) {
try { try {
mapProdukPaketToProdukService.saveAll(vos); mapProdukPaketToProdukService.saveAll(vos);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
getMessage(MessageResource.LABEL_SUCCESS, request)); return getJsonResponse(vos, OK, mapHeaderMessage);
return RestUtil.getJsonResponse(vos, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when simpan mapping entri produk paket", e.getMessage()); LOGGER.error("Got ServiceVOException {} when mapProdukPaketToProdukService.saveAll", e.getMessage());
Map<String, String> error = new HashMap<>(); addHeaderMessage(ERROR_MESSAGE, e.getMessage());
error.put("bad_request", e.getMessage()); return getJsonHttpStatus(BAD_REQUEST, mapHeaderMessage);
return RestUtil.getJsonResponse(null, HttpStatus.BAD_REQUEST, error);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when simpan mapping entri produk paket", jse.getMessage()); LOGGER.error("Got JpaSystemException {} when mapProdukPaketToProdukService.saveAll", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return getJsonHttpStatus(CONFLICT, mapHeaderMessage);
} }
} }
} }

View File

@ -10,7 +10,6 @@ import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.orm.jpa.JpaSystemException; import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
@ -22,8 +21,7 @@ import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static org.springframework.http.HttpStatus.CREATED; import static org.springframework.http.HttpStatus.*;
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.web.bind.annotation.RequestMethod.GET; import static org.springframework.web.bind.annotation.RequestMethod.GET;
import static org.springframework.web.bind.annotation.RequestMethod.POST; import static org.springframework.web.bind.annotation.RequestMethod.POST;
@ -48,10 +46,10 @@ public class RemunerasiController extends LocaleController<LogbookKinerjaVO> {
@RequestMapping(value = "/logbook-tarif/{idPegawai}/{bulan}", method = GET) @RequestMapping(value = "/logbook-tarif/{idPegawai}/{bulan}", method = GET)
public ResponseEntity<Object> recap(HttpServletRequest request, @PathVariable("idPegawai") Integer idPegawai, public ResponseEntity<Object> recap(HttpServletRequest request, @PathVariable("idPegawai") Integer idPegawai,
@PathVariable("bulan") String bulan) { @PathVariable("bulan") String bulan) {
LOGGER.info("Superapp requesting logbook tarif data id pegawai {} bulan {}", idPegawai, bulan); LOGGER.info("Superapp requesting rekapLogbook id pegawai {} bulan {}", idPegawai, bulan);
List<Map<String, Object>> result = pelayananPasienService.rekapLogbook(idPegawai, bulan); List<Map<String, Object>> result = pelayananPasienService.rekapLogbook(idPegawai, bulan);
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, OK);
} }
@RequestMapping(value = "/authorization", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE) @RequestMapping(value = "/authorization", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
@ -60,7 +58,7 @@ public class RemunerasiController extends LocaleController<LogbookKinerjaVO> {
AuthorizationDto result = mapPegawaiJabatanToUnitKerjaService.get(dto); AuthorizationDto result = mapPegawaiJabatanToUnitKerjaService.get(dto);
return new ResponseEntity<>(result, CREATED); return new ResponseEntity<>(result, CREATED);
} catch (ServiceVOException | JpaSystemException e) { } catch (ServiceVOException | JpaSystemException e) {
LOGGER.error("Got exception {} when get authorization for superapp", e.getMessage()); LOGGER.error("Got exception {} when mapPegawaiJabatanToUnitKerjaService.get", e.getMessage());
return new ResponseEntity<>(null, INTERNAL_SERVER_ERROR); return new ResponseEntity<>(null, INTERNAL_SERVER_ERROR);
} }

View File

@ -1,16 +1,12 @@
package com.jasamedika.medifirst2000.controller; package com.jasamedika.medifirst2000.controller;
import com.jasamedika.medifirst2000.constants.Constants;
import com.jasamedika.medifirst2000.dto.KomponenGajiDto; import com.jasamedika.medifirst2000.dto.KomponenGajiDto;
import com.jasamedika.medifirst2000.dto.SlipGajiDto; import com.jasamedika.medifirst2000.dto.SlipGajiDto;
import com.jasamedika.medifirst2000.service.SlipGajiService; import com.jasamedika.medifirst2000.service.SlipGajiService;
import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.ResourceUtils;
import com.jasamedika.medifirst2000.util.rest.RestUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -22,59 +18,68 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.jasamedika.medifirst2000.constants.Constants.MessageInfo.ERROR_MESSAGE;
import static com.jasamedika.medifirst2000.util.ResourceUtils.loadFile;
import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonHttpStatus;
import static org.springframework.http.HttpStatus.*;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
import static org.springframework.web.bind.annotation.RequestMethod.POST;
@RestController @RestController
@RequestMapping("/slip-gaji") @RequestMapping("/slip-gaji")
public class SlipGajiController { public class SlipGajiController {
@Autowired @Autowired
private SlipGajiService slipGajiService; private SlipGajiService slipGajiService;
@RequestMapping(value = "/init", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/init", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<Object> init() { public ResponseEntity<Object> init() {
try { try {
slipGajiService.init(); slipGajiService.init();
return new ResponseEntity<>(true, HttpStatus.CREATED); return new ResponseEntity<>(true, CREATED);
} catch (Exception e) { } catch (Exception e) {
return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); return new ResponseEntity<>(e.getMessage(), INTERNAL_SERVER_ERROR);
} }
} }
@RequestMapping(value = "/save", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/save", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<Object> save(@RequestBody @Valid SlipGajiDto dto) { public ResponseEntity<Object> save(@RequestBody @Valid SlipGajiDto dto) {
try { try {
slipGajiService.save(dto); slipGajiService.save(dto);
return new ResponseEntity<>(true, HttpStatus.CREATED); return new ResponseEntity<>(true, CREATED);
} catch (Exception e) { } catch (Exception e) {
return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); return new ResponseEntity<>(e.getMessage(), INTERNAL_SERVER_ERROR);
} }
} }
@RequestMapping(value = "/unggah", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/unggah", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<Object> save(@RequestBody List<SlipGajiDto> dtoList) { public ResponseEntity<Object> save(@RequestBody List<SlipGajiDto> dtoList) {
try { try {
slipGajiService.save(dtoList); slipGajiService.save(dtoList);
return new ResponseEntity<>(true, HttpStatus.CREATED); return new ResponseEntity<>(true, CREATED);
} catch (Exception e) { } catch (Exception e) {
return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); return new ResponseEntity<>(e.getMessage(), INTERNAL_SERVER_ERROR);
} }
} }
@RequestMapping(value = "/detail/update", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/detail/update", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<Object> updateDetail(@RequestBody @Valid SlipGajiDto dto) { public ResponseEntity<Object> updateDetail(@RequestBody @Valid SlipGajiDto dto) {
try { try {
slipGajiService.updateDetail(dto); slipGajiService.updateDetail(dto);
return new ResponseEntity<>(true, HttpStatus.CREATED); return new ResponseEntity<>(true, CREATED);
} catch (Exception e) { } catch (Exception e) {
return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); return new ResponseEntity<>(e.getMessage(), INTERNAL_SERVER_ERROR);
} }
} }
@RequestMapping(value = "/get/{pegawaiId}/{bulan}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/get/{pegawaiId}/{bulan}", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<Object> get(@PathVariable Integer pegawaiId, @PathVariable Long bulan) { public ResponseEntity<Object> get(@PathVariable Integer pegawaiId, @PathVariable Long bulan) {
SlipGajiDto entity = slipGajiService.get(pegawaiId, bulan); SlipGajiDto entity = slipGajiService.get(pegawaiId, bulan);
return new ResponseEntity<>(entity, HttpStatus.OK); return new ResponseEntity<>(entity, OK);
} }
@RequestMapping(value = "/template/generate/{bulan}", method = RequestMethod.GET) @RequestMapping(value = "/template/generate/{bulan}", method = GET)
public ResponseEntity<Object> generateTemplate(@PathVariable Long bulan, HttpServletRequest request, public ResponseEntity<Object> generateTemplate(@PathVariable Long bulan, HttpServletRequest request,
HttpServletResponse response) { HttpServletResponse response) {
try { try {
@ -83,30 +88,30 @@ public class SlipGajiController {
response.setHeader("Content-Disposition", "attachment; filename=" + fileNamePath); response.setHeader("Content-Disposition", "attachment; filename=" + fileNamePath);
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
result.put("filename", fileNamePath); result.put("filename", fileNamePath);
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, OK);
} catch (Exception e) { } catch (Exception e) {
return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); return new ResponseEntity<>(e.getMessage(), INTERNAL_SERVER_ERROR);
} }
} }
@RequestMapping(value = "/template/download", method = RequestMethod.GET) @RequestMapping(value = "/template/download", method = GET)
public ResponseEntity<Resource> downloadTemplate(@RequestParam(value = "filename") String fileName, public ResponseEntity<Resource> downloadTemplate(@RequestParam(value = "filename") String fileName,
HttpServletRequest request) { HttpServletRequest request) {
Resource resource; Resource resource;
Map<String, String> mapHeaderMessage = new HashMap<>(); Map<String, String> mapHeaderMessage = new HashMap<>();
if (CommonUtil.isNotNullOrEmpty(fileName)) { if (CommonUtil.isNotNullOrEmpty(fileName)) {
try { try {
resource = ResourceUtils.loadFile(fileName); resource = loadFile(fileName);
} catch (Exception e) { } catch (Exception e) {
mapHeaderMessage.put(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); mapHeaderMessage.put(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
String contentType; String contentType;
try { try {
contentType = request.getServletContext().getMimeType(resource.getFile().getAbsolutePath()); contentType = request.getServletContext().getMimeType(resource.getFile().getAbsolutePath());
} catch (Exception e) { } catch (Exception e) {
mapHeaderMessage.put(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); mapHeaderMessage.put(ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
if (CommonUtil.isNullOrEmpty(contentType)) if (CommonUtil.isNullOrEmpty(contentType))
contentType = "application/octet-stream"; contentType = "application/octet-stream";
@ -114,13 +119,13 @@ public class SlipGajiController {
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + resource.getFilename()) .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + resource.getFilename())
.body(resource); .body(resource);
} else { } else {
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return getJsonHttpStatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
} }
} }
@RequestMapping(value = "/komponen/list", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/komponen/list", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<Object> get() { public ResponseEntity<Object> get() {
List<KomponenGajiDto> entity = slipGajiService.listKomponen(); List<KomponenGajiDto> entity = slipGajiService.listKomponen();
return new ResponseEntity<>(entity, HttpStatus.OK); return new ResponseEntity<>(entity, OK);
} }
} }

View File

@ -1,42 +0,0 @@
package com.jasamedika.medifirst2000.controller.base;
import java.util.List;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.jasamedika.medifirst2000.base.vo.BaseModelVO;
/**
* Base Rest Operation for Controller Class
*
* @author Roberto
*/
public interface IBaseRestController<V extends BaseModelVO> extends
IRestPageController<V> {
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<V> getVO(@PathVariable("id") Integer id);
@RequestMapping(value = "/", method = RequestMethod.PUT, consumes = { "application/json" })
@ResponseBody
public ResponseEntity<String> addVO(@RequestBody V vo);
@RequestMapping(value = "/", method = RequestMethod.POST, consumes = { "application/json" })
@ResponseBody
public ResponseEntity<String> editVO(@RequestBody V vo);
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ResponseBody
public ResponseEntity<String> deleteVO(@PathVariable("id") Integer id);
@RequestMapping(value = "/", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<List<V>> getAllVO();
}

View File

@ -1,41 +0,0 @@
package com.jasamedika.medifirst2000.controller.base;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.jasamedika.medifirst2000.base.vo.BaseModelVO;
/**
* Base Rest Operation for 'pagination' Controller Class
*
* @author Roberto
*/
public interface IRestPageController<V extends BaseModelVO> {
/**
*
* @param page
* : page of
* @param limit
* : limit query
* @param sort
* : sort by
* @param dir
* : direction {asc:desc}
* @return Collection of VO, Total-Count & Total Pages on response header
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<Collection<V>> getAllVOWithQueryString(
HttpServletRequest request,
@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "limit", required = false) Integer limit,
@RequestParam(value = "sort", required = false, defaultValue = "id") String sort,
@RequestParam(value = "dir", required = false, defaultValue = "asc") String dir);
}

View File

@ -1,54 +1,47 @@
package com.jasamedika.medifirst2000.controller.base; package com.jasamedika.medifirst2000.controller.base;
import java.io.BufferedReader; import com.google.gson.Gson;
import java.io.IOException; import com.google.gson.GsonBuilder;
import java.io.InputStreamReader; import com.google.gson.JsonDeserializer;
import java.lang.reflect.Type; import com.jasamedika.medifirst2000.base.vo.BaseModelVO;
import java.net.URISyntaxException; import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import java.util.ArrayList; import com.jasamedika.medifirst2000.entities.Pegawai;
import java.util.Arrays; import com.jasamedika.medifirst2000.exception.ServiceVOException;
import java.util.Collection; import com.jasamedika.medifirst2000.service.ActivityPegawaiService;
import java.util.Date; import com.jasamedika.medifirst2000.service.LoginUserService;
import java.util.HashMap; import com.jasamedika.medifirst2000.service.ModelService;
import java.util.List; import com.jasamedika.medifirst2000.vo.ModelVO;
import java.util.Locale; import com.jasamedika.medifirst2000.vo.PegawaiVO;
import java.util.Map; import io.socket.client.IO;
import io.socket.client.Socket;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource; import org.springframework.context.MessageSource;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.google.gson.Gson; import javax.servlet.http.Cookie;
import com.google.gson.GsonBuilder; import javax.servlet.http.HttpServletRequest;
import com.google.gson.JsonDeserializationContext; import javax.servlet.http.HttpServletResponse;
import com.google.gson.JsonDeserializer; import java.io.BufferedReader;
import com.google.gson.JsonElement; import java.io.IOException;
import com.google.gson.JsonParseException; import java.io.InputStreamReader;
import com.jasamedika.medifirst2000.base.vo.BaseModelVO; import java.net.URISyntaxException;
import com.jasamedika.medifirst2000.constants.Constants; import java.util.*;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.core.web.WebConstants;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.service.ActivityPegawaiService;
import com.jasamedika.medifirst2000.service.LoginUserService;
import com.jasamedika.medifirst2000.service.ModelService;
import com.jasamedika.medifirst2000.util.rest.RestUtil;
import com.jasamedika.medifirst2000.vo.ModelVO;
import com.jasamedika.medifirst2000.vo.PasienVO;
import com.jasamedika.medifirst2000.vo.PegawaiVO;
import io.socket.client.IO; import static com.jasamedika.medifirst2000.constants.Constants.Locale.INA;
import static com.jasamedika.medifirst2000.constants.Constants.MessageInfo.ERROR_MESSAGE;
import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.TOTAL_COUNT_HEADER;
import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.TOTAL_PAGE_HEADER;
import static com.jasamedika.medifirst2000.core.web.WebConstants.PageParameter.*;
import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonResponse;
import static io.socket.client.Socket.EVENT_CONNECT;
import static org.springframework.http.HttpStatus.BAD_REQUEST;
import static org.springframework.http.HttpStatus.OK;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
/** /**
* Base Controller Class for handling messaga resource for internationalization * Base Controller Class for handling messaga resource for internationalization
@ -58,7 +51,7 @@ import io.socket.client.IO;
*/ */
public abstract class LocaleController<V extends BaseModelVO> { public abstract class LocaleController<V extends BaseModelVO> {
/* /**
* messageSource bean injected for each controller for accessing message * messageSource bean injected for each controller for accessing message
* source * source
*/ */
@ -74,82 +67,66 @@ public abstract class LocaleController<V extends BaseModelVO> {
@Autowired @Autowired
private MessageSource messageSource; private MessageSource messageSource;
@SuppressWarnings("rawtypes")
@Autowired @Autowired
private ModelService modelService; private ModelService<V> modelService;
protected Map<String, String> mapHeaderMessage = new HashMap<String, String>(); protected Map<String, String> mapHeaderMessage = new HashMap<>();
/* /**
* code locale * code locale
*/ */
protected String getMessage(String code, HttpServletRequest request) { protected String getMessage(String code, HttpServletRequest request) {
return messageSource.getMessage(code, null, new Locale(getCoociesLanguage(request))); return messageSource.getMessage(code, null, new Locale(getCoociesLanguage(request)));
} }
protected void SaveLog(String keterangan, String group, HttpServletRequest request) { protected void saveLog(String keterangan, String group) {
activityPegawaiServiceImpl.record( activityPegawaiServiceImpl.record(
pegawaiConverter.transferModelToVO(loginUserService.getLoginUser().getPegawai(), new PegawaiVO()), pegawaiConverter.transferModelToVO(loginUserService.getLoginUser().getPegawai(), new PegawaiVO()),
new Date(), keterangan, group); new Date(), keterangan, group);
} }
protected Object getItem(HttpServletRequest request, Object vo) { protected Object getItem(HttpServletRequest request, Object vo) {
BufferedReader reader;
String read = null;
String resultData = "";
Gson gson = new Gson();
try { try {
reader = new BufferedReader(new InputStreamReader(request.getInputStream())); StringBuilder resultData = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
String read;
while ((read = reader.readLine()) != null) { while ((read = reader.readLine()) != null) {
resultData += read; resultData.append(read);
System.out.println(read);
} }
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create(); return gson.fromJson(resultData.toString(), vo.getClass());
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); throw new ServiceVOException(e.getMessage());
} }
return vo = gson.fromJson(resultData, vo.getClass());
} }
protected Object getItem2(HttpServletRequest request, Object vo) { protected Object getItem2(HttpServletRequest request, Object vo) {
BufferedReader reader;
String read = null;
String resultData = "";
Gson gson = new Gson();
try {
reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
try {
StringBuilder resultData = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
String read;
while ((read = reader.readLine()) != null) { while ((read = reader.readLine()) != null) {
resultData += read; resultData.append(read);
System.out.println(read);
} }
GsonBuilder gsonBuilder = new GsonBuilder(); GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() { gsonBuilder.registerTypeAdapter(Date.class, (JsonDeserializer<Date>) (json, typeOfT, context) -> {
@Override if (json.getAsString() != null)
public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) return new Date();
throws JsonParseException { return new Date(json.getAsJsonPrimitive().getAsLong());
if (json.getAsString() instanceof String) {
return new Date();
} else {
return new Date(json.getAsJsonPrimitive().getAsLong());
}
}
}); });
gson = gsonBuilder.create(); Gson gson = gsonBuilder.create();
return gson.fromJson(resultData.toString(), vo.getClass());
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); throw new ServiceVOException(e.getMessage());
} }
return vo = gson.fromJson(resultData, vo.getClass());
} }
@RequestMapping(value = "/lang/{lang}", method = RequestMethod.GET) @RequestMapping(value = "/lang/{lang}", method = GET)
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
@PathVariable("lang") String lang) throws Exception { @PathVariable("lang") String lang) {
Cookie[] cookies = request.getCookies(); Cookie[] cookies = request.getCookies();
List<Cookie> cookieList = new ArrayList<Cookie>(); List<Cookie> cookieList;
if (cookies != null) { if (cookies != null) {
cookieList = Arrays.asList(cookies); cookieList = Arrays.asList(cookies);
for (Cookie cookie : cookieList) { for (Cookie cookie : cookieList) {
@ -161,7 +138,6 @@ public abstract class LocaleController<V extends BaseModelVO> {
} }
} }
} }
if (lang.equalsIgnoreCase("en")) { if (lang.equalsIgnoreCase("en")) {
Cookie c = new Cookie("lang", "en"); Cookie c = new Cookie("lang", "en");
c.setPath("/"); c.setPath("/");
@ -178,63 +154,53 @@ public abstract class LocaleController<V extends BaseModelVO> {
c.setDomain("localhost"); c.setDomain("localhost");
response.addCookie(c); response.addCookie(c);
} }
return true; return true;
} }
/* /**
* default locale ID * default locale ID
*/ */
protected String getMessage(String code) { protected String getMessage(String code) {
return messageSource.getMessage(code, null, new Locale(Constants.Locale.INA)); return messageSource.getMessage(code, null, new Locale(INA));
} }
protected void addHeaderMessage(String key, String message) { protected void addHeaderMessage(String key, String message) {
this.mapHeaderMessage.put(key, message); this.mapHeaderMessage.put(key, message);
} }
@RequestMapping(value = "/entity-serelize/{entity}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/entity-serelize/{entity}", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<ModelVO> serializeEntity(@PathVariable("entity") String entity, HttpServletRequest request) { public ResponseEntity<ModelVO> serializeEntity(@PathVariable("entity") String entity, HttpServletRequest request) {
ModelVO modelDTO = modelService.getModelSerializeEntity(entity, getCoociesLanguage(request)); ModelVO modelDTO = modelService.getModelSerializeEntity(entity, getCoociesLanguage(request));
return RestUtil.getJsonResponse(modelDTO, HttpStatus.OK); return getJsonResponse(modelDTO, OK);
} }
public String getCoociesLanguage(HttpServletRequest request) { public String getCoociesLanguage(HttpServletRequest request) {
Cookie cookie[] = request.getCookies(); Cookie[] cookie = request.getCookies();
Cookie cook; Cookie cook;
String lang = Constants.Locale.INA; String lang = INA;
if (cookie != null) { if (cookie != null) {
for (int i = 0; i < cookie.length; i++) { for (Cookie value : cookie) {
cook = cookie[i]; cook = value;
if (cook.getName().equalsIgnoreCase("lang")) if (cook.getName().equalsIgnoreCase("lang"))
lang = cook.getValue(); lang = cook.getValue();
} }
} }
return lang; return lang;
} }
@SuppressWarnings("rawtypes") protected ResponseEntity<Collection<V>> constructListPageResult(Map<String, Object> map) {
protected ResponseEntity constructListPageResult(Map<String, Object> map) {
if (map == null) { if (map == null) {
Map<String, String> mapHeaderMessage = new HashMap<String, String>(); Map<String, String> mapHeaderMessage = new HashMap<>();
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.TOTAL_PAGE_HEADER, "0"); mapHeaderMessage.put(TOTAL_PAGE_HEADER, "0");
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.TOTAL_COUNT_HEADER, "0"); mapHeaderMessage.put(TOTAL_COUNT_HEADER, "0");
mapHeaderMessage.put(Constants.MessageInfo.ERROR_MESSAGE, "Data not found."); mapHeaderMessage.put(ERROR_MESSAGE, "Data not found.");
return RestUtil.getJsonResponse(null, HttpStatus.BAD_REQUEST, mapHeaderMessage); return getJsonResponse(null, BAD_REQUEST, mapHeaderMessage);
} else { } else {
@SuppressWarnings("unchecked") Collection<V> vos = (Collection<V>) map.get(LIST_DATA);
Collection<PasienVO> vos = (Collection<PasienVO>) map.get(WebConstants.PageParameter.LIST_DATA); Map<String, String> mapHeaderMessage = new HashMap<>();
mapHeaderMessage.put(TOTAL_PAGE_HEADER, String.valueOf(map.get(TOTAL_PAGES)));
Map<String, String> mapHeaderMessage = new HashMap<String, String>(); mapHeaderMessage.put(TOTAL_COUNT_HEADER, String.valueOf(map.get(TOTAL_ELEMENTS)));
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.TOTAL_PAGE_HEADER, return getJsonResponse(vos, OK, mapHeaderMessage);
String.valueOf(map.get(WebConstants.PageParameter.TOTAL_PAGES)));
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.TOTAL_COUNT_HEADER,
String.valueOf(map.get(WebConstants.PageParameter.TOTAL_ELEMENTS)));
return RestUtil.getJsonResponse(vos, HttpStatus.OK, mapHeaderMessage);
} }
} }
@ -243,86 +209,65 @@ public abstract class LocaleController<V extends BaseModelVO> {
} }
protected void BroadcastMessage(final String to, final Object data) { protected void BroadcastMessage(final String to, final Object data) {
final io.socket.client.Socket socket; final Socket socket;
try { try {
String url = GetSettingDataFixed("UrlSocketMessaging"); String url = GetSettingDataFixed("UrlSocketMessaging");
socket = IO.socket(url); socket = IO.socket(url);
socket.on(EVENT_CONNECT, args -> {
socket.on(io.socket.client.Socket.EVENT_CONNECT, new io.socket.emitter.Emitter.Listener() { try {
Gson gson = new Gson();
@Override String json = gson.toJson(data);
public void call(Object... args) { JSONObject item = new JSONObject(
"{\"to\":\"" + to + "\",\"message\":\"" + json.replace("\"", "'") + "\"}");
try { socket.emit("subscribe", item);
Gson gson = new Gson(); } catch (JSONException e) {
String json = gson.toJson(data); throw new ServiceVOException(e.getMessage());
JSONObject item = new JSONObject(
"{\"to\":\"" + to + "\",\"message\":\"" + json.replace("\"", "'") + "\"}");
socket.emit("subscribe", item);
} catch (JSONException e) {
e.printStackTrace();
}
} }
}); });
socket.connect(); socket.connect();
} catch (URISyntaxException e) { } catch (URISyntaxException e) {
e.printStackTrace(); throw new ServiceVOException(e.getMessage());
} }
} }
protected void BroadcastMessage(final String to, final String data) { protected void BroadcastMessage(final String to, final String data) {
final io.socket.client.Socket socket; final Socket socket;
try { try {
socket = IO.socket(GetSettingDataFixed("UrlSocketMessaging")); socket = IO.socket(GetSettingDataFixed("UrlSocketMessaging"));
socket.on(EVENT_CONNECT, args -> {
socket.on(io.socket.client.Socket.EVENT_CONNECT, new io.socket.emitter.Emitter.Listener() { try {
JSONObject item = new JSONObject("{\"to\":\"" + to + "\",\"message\":\"" + data + "\"}");
@Override socket.emit("subscribe", item);
public void call(Object... args) { } catch (JSONException e) {
throw new ServiceVOException(e.getMessage());
try {
JSONObject item = new JSONObject("{\"to\":\"" + to + "\",\"message\":\"" + data + "\"}");
socket.emit("subscribe", item);
} catch (JSONException e) {
e.printStackTrace();
}
} }
}); });
socket.connect(); socket.connect();
} catch (URISyntaxException e) { } catch (URISyntaxException e) {
e.printStackTrace(); throw new ServiceVOException(e.getMessage());
} }
} }
protected void BroadcastMessageOther(final String to, final Object data) { protected void BroadcastMessageOther(final String to, final Object data) {
final io.socket.client.Socket socket; final Socket socket;
try { try {
String url = GetSettingDataFixed("UrlSocketMessaging"); String url = GetSettingDataFixed("UrlSocketMessaging");
socket = IO.socket(url); socket = IO.socket(url);
socket.on(EVENT_CONNECT, args -> {
socket.on(io.socket.client.Socket.EVENT_CONNECT, new io.socket.emitter.Emitter.Listener() { try {
Map<String, Object> result = new HashMap<>();
@Override result.put("message", data);
public void call(Object... args) { result.put("to", to);
try { Gson gson = new Gson();
Map<String, Object> result = new HashMap<>(); JSONObject item = new JSONObject(gson.toJson(result));
result.put("message", data); socket.emit("subscribe", item);
result.put("to", to); } catch (JSONException e) {
throw new ServiceVOException(e.getMessage());
Gson gson = new Gson();
JSONObject item = new JSONObject(gson.toJson(result));
socket.emit("subscribe", item);
} catch (JSONException e) {
e.printStackTrace();
}
} }
}); });
socket.connect(); socket.connect();
} catch (URISyntaxException e) { } catch (URISyntaxException e) {
e.printStackTrace(); throw new ServiceVOException(e.getMessage());
} }
} }
} }

View File

@ -1,78 +1,68 @@
package com.jasamedika.medifirst2000.controller.base; package com.jasamedika.medifirst2000.controller.base;
import java.util.List;
import org.springframework.core.GenericTypeResolver;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.jasamedika.medifirst2000.base.vo.BaseModelVO; import com.jasamedika.medifirst2000.base.vo.BaseModelVO;
import com.jasamedika.medifirst2000.constants.Constants;
import com.jasamedika.medifirst2000.util.rest.RestUtil;
import com.monitorjbl.json.JsonResult; import com.monitorjbl.json.JsonResult;
import com.monitorjbl.json.JsonView; import com.monitorjbl.json.JsonView;
import com.monitorjbl.json.Match; import com.monitorjbl.json.Match;
import org.springframework.core.GenericTypeResolver;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import static com.jasamedika.medifirst2000.constants.Constants.COMMA;
import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonResponse;
import static org.springframework.http.HttpStatus.OK;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
/** /**
* Base Controller Class for handling "include" parameter to controller * Base Controller Class for handling "include" parameter to controller
* @see https://github.com/monitorjbl/json-view
* *
* @see <a href="https://github.com/monitorjbl/json-view">json view</a>
*
* @author Roberto * @author Roberto
*/ */
public abstract class ParamRestController<T extends BaseModelVO> { public abstract class ParamRestController<T extends BaseModelVO> {
private JsonResult jsonResult = JsonResult.instance();
/* private final JsonResult jsonResult = JsonResult.instance();
* Belum selesai, baru di parameter includes. Untuk field object juga belom.
* example : @RequestMapping(value = "/list-using-param", method = GET)
* http://localhost:8080/jasamedika-web/{typeVOClass}/list-using-param public ResponseEntity<List<T>> listUsingParam(@RequestParam(value = "includes", required = false) String includes,
* ?includes =id,nama
*/
@RequestMapping(value = "/list-using-param", method = RequestMethod.GET)
public ResponseEntity<List<T>> listUsingParam(
@RequestParam(value = "includes", required = false) String includes,
@RequestParam(value = "excludes", required = false) String excludes) { @RequestParam(value = "excludes", required = false) String excludes) {
List<T> listVO = getAllVOFromService(); List<T> listVO = getAllVOFromService();
String[] arrExcludes = null; String[] arrExcludes = null;
String[] arrIncludes = null; String[] arrIncludes = null;
if (excludes != null) if (excludes != null)
arrExcludes = excludes.split(Constants.COMMA); arrExcludes = excludes.split(COMMA);
if (includes != null) if (includes != null)
arrIncludes = includes.split(Constants.COMMA); arrIncludes = includes.split(COMMA);
if (arrExcludes != null && arrIncludes != null) { if (arrExcludes != null && arrIncludes != null) {
listVO = jsonResult.use( listVO = jsonResult.use(
JsonView.with(listVO).onClass( JsonView.with(listVO).onClass(getClazz(), Match.match().exclude(arrExcludes).include(arrIncludes)))
getClazz(), .returnValue();
Match.match().exclude(arrExcludes)
.include(arrIncludes))).returnValue();
} }
if (arrExcludes != null && arrIncludes == null) { if (arrExcludes != null && arrIncludes == null) {
listVO = jsonResult.use( listVO = jsonResult
JsonView.with(listVO).onClass(getClazz(), .use(JsonView.with(listVO).onClass(getClazz(), Match.match().include("*").exclude(arrExcludes)))
Match.match().include("*").exclude(arrExcludes)))
.returnValue(); .returnValue();
} }
if (arrExcludes == null && arrIncludes != null) { if (arrExcludes == null && arrIncludes != null) {
listVO = jsonResult.use( listVO = jsonResult
JsonView.with(listVO).onClass(getClazz(), .use(JsonView.with(listVO).onClass(getClazz(), Match.match().exclude("*").include(arrIncludes)))
Match.match().exclude("*").include(arrIncludes)))
.returnValue(); .returnValue();
} }
return RestUtil.getJsonResponse(listVO, HttpStatus.OK); return getJsonResponse(listVO, OK);
} }
@SuppressWarnings("unchecked") protected Class<?> getClazz() {
protected Class<T> getClazz() { return GenericTypeResolver.resolveTypeArgument(getClass(), ParamRestController.class);
return (Class<T>) GenericTypeResolver.resolveTypeArgument(getClass(),
ParamRestController.class);
} }
/* /**
* method untuk mendapatkan all VO from service * method untuk mendapatkan all VO from service
* */ *
*/
protected abstract List<T> getAllVOFromService(); protected abstract List<T> getAllVOFromService();
} }

View File

@ -1,164 +1,42 @@
package com.jasamedika.medifirst2000.filter; package com.jasamedika.medifirst2000.filter;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Iterator;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.jasamedika.medifirst2000.constants.Constants; import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.Iterator;
import static com.jasamedika.medifirst2000.constants.Constants.HttpHeader.KD_RUANGAN_A;
import static com.jasamedika.medifirst2000.constants.Constants.HttpHeader.KD_RUANGAN_T;
/** /**
* CORSFilter class * CORSFilter class
* *
* @author Roberto * @author Roberto, Syamsu
*/ */
@Component @Component
public class CORSFilter implements Filter { public class CORSFilter implements Filter {
// Start Syamsu
private static class RequestWrapper extends HttpServletRequestWrapper {
final String body;
public RequestWrapper(ServletRequest req) throws IOException {
super((HttpServletRequest) req);
HttpServletRequest request = (HttpServletRequest) req;
StringBuilder stringBuilder = new StringBuilder();
BufferedReader reader = null;
try {
InputStream inputStream = request.getInputStream();
if (inputStream != null) {
reader = new BufferedReader(new InputStreamReader(inputStream));
String hasil;
while ( (hasil = reader.readLine()) != null) {
stringBuilder.append(hasil);
}
} else {
stringBuilder.append("");
}
} catch (IOException ex) {
throw ex;
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException ex) {
throw ex;
}
}
}
body = stringBuilder.toString();
String idRuanganTujuan = request.getHeader(Constants.HttpHeader.KD_RUANGAN_T) == null ? ""
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_T);
if ("".equals(idRuanganTujuan.trim())){
try{
JSONObject jObject = new JSONObject(body);
ExtractObjectJson(jObject, false);
}catch(Exception e){
}
}
}
public String getHeader(String key){
if (key.equals(Constants.HttpHeader.KD_RUANGAN_A)) {
if (autoIdTujuan.length() > 0){
return autoIdTujuan.toString();
}
}
return super.getHeader(key);
}
JSONArray autoIdTujuan = new JSONArray();
void ExtractObjectJson(JSONObject jObject, boolean ruangan) throws Exception{
Iterator iterator = jObject.keys();
while (iterator.hasNext()){
String key = String.valueOf(iterator.next());
Object o = jObject.get(key);
if (key.toLowerCase().contains("ruangan")){
if (o instanceof Integer){
autoIdTujuan.put(o);
} else if (o instanceof JSONObject){
ExtractObjectJson((JSONObject) o, true);
}
} else if (ruangan && "id".equals(key)){
if (o instanceof Integer){
autoIdTujuan.put(o);
return;
}
} else if (o instanceof JSONObject && !ruangan) {
ExtractObjectJson((JSONObject) o, false);
}
}
}
@Override
public ServletInputStream getInputStream() throws IOException {
final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(body.getBytes());
ServletInputStream servletInputStream = new ServletInputStream() {
public int read() throws IOException {
return byteArrayInputStream.read();
}
};
return servletInputStream;
}
@Override
public BufferedReader getReader() throws IOException {
return new BufferedReader(new InputStreamReader(getInputStream()));
}
public String getBody() {
return this.body;
}
}
// End Syamsu
private final Logger log = LoggerFactory.getLogger(CORSFilter.class);
public CORSFilter() { public CORSFilter() {
log.info("CORSFilter JasaMedika Web init"); LOGGER.info("CORSFilter JasaMedika Web init");
} }
private static final Logger LOGGER = LoggerFactory.getLogger(CORSFilter.class);
@Override @Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException { throws IOException, ServletException {
RequestWrapper myReq = new RequestWrapper(req);
// Start Syamsu
RequestWrapper myReq = new RequestWrapper((HttpServletRequest) req);
// End Syamsu
HttpServletRequest request = (HttpServletRequest) myReq;
HttpServletResponse response = (HttpServletResponse) res; HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", myReq.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Credentials", "true"); response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", response.setHeader("Access-Control-Allow-Headers",
@ -166,23 +44,101 @@ public class CORSFilter implements Filter {
+ "Supervising, RequestSupervisor, Module, Form, Action, AlamatUrlForm, KdRuangan, KdUser, " + "Supervising, RequestSupervisor, Module, Form, Action, AlamatUrlForm, KdRuangan, KdUser, "
+ "MandatoriData, idRuanganTujuan, ruanganTujuan"); + "MandatoriData, idRuanganTujuan, ruanganTujuan");
response.setHeader("Content-Type", "application/json;application/octet-stream"); response.setHeader("Content-Type", "application/json;application/octet-stream");
// String body = myReq.getBody();
// if (!"".equals(body.trim())){
// log.info("\n\n" + myReq.getBody() + "\n");
// }
chain.doFilter(myReq, res); chain.doFilter(myReq, res);
} }
@Override @Override
public void init(FilterConfig filterConfig) { public void init(FilterConfig filterConfig) {
} }
@Override @Override
public void destroy() { public void destroy() {
} }
private static class RequestWrapper extends HttpServletRequestWrapper {
final String body;
JSONArray autoIdTujuan = new JSONArray();
public RequestWrapper(ServletRequest req) throws IOException {
super((HttpServletRequest) req);
HttpServletRequest request = (HttpServletRequest) req;
StringBuilder stringBuilder = getStringBuilder(request);
body = stringBuilder.toString();
String idRuanganTujuan = request.getHeader(KD_RUANGAN_T) == null ? "" : request.getHeader(KD_RUANGAN_T);
if (idRuanganTujuan.trim().isEmpty()) {
try {
JSONObject jObject = new JSONObject(body);
ExtractObjectJson(jObject, false);
} catch (Exception e) {
LOGGER.error(e.getMessage());
}
}
}
public String getHeader(String key) {
if (key.equals(KD_RUANGAN_A) && autoIdTujuan.length() > 0)
return autoIdTujuan.toString();
return super.getHeader(key);
}
void ExtractObjectJson(JSONObject jObject, boolean ruangan) throws Exception {
Iterator<?> iterator = jObject.keys();
while (iterator.hasNext()) {
String key = String.valueOf(iterator.next());
Object o = jObject.get(key);
if (key.toLowerCase().contains("ruangan")) {
if (o instanceof Integer) {
autoIdTujuan.put(o);
} else if (o instanceof JSONObject) {
ExtractObjectJson((JSONObject) o, true);
}
} else if (ruangan && "id".equals(key)) {
if (o instanceof Integer) {
autoIdTujuan.put(o);
return;
}
} else if (o instanceof JSONObject && !ruangan) {
ExtractObjectJson((JSONObject) o, false);
}
}
}
@Override
public ServletInputStream getInputStream() {
final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(body.getBytes());
return new ServletInputStream() {
public int read() {
return byteArrayInputStream.read();
}
};
}
@Override
public BufferedReader getReader() {
return new BufferedReader(new InputStreamReader(getInputStream()));
}
}
private static StringBuilder getStringBuilder(HttpServletRequest request) throws IOException {
StringBuilder stringBuilder = new StringBuilder();
BufferedReader reader = null;
try {
InputStream inputStream = request.getInputStream();
if (inputStream != null) {
reader = new BufferedReader(new InputStreamReader(inputStream));
String hasil;
while ((hasil = reader.readLine()) != null) {
stringBuilder.append(hasil);
}
}
} finally {
if (reader != null) {
reader.close();
}
}
return stringBuilder;
}
} }

View File

@ -1,8 +1,12 @@
package com.jasamedika.medifirst2000.filter; package com.jasamedika.medifirst2000.filter;
import com.fasterxml.jackson.core.JsonParseException;
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
import io.jsonwebtoken.MalformedJwtException; import io.jsonwebtoken.MalformedJwtException;
import lombok.AllArgsConstructor;
import java.io.IOException; import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.filter.GenericFilterBean;
import javax.servlet.FilterChain; import javax.servlet.FilterChain;
import javax.servlet.ServletException; import javax.servlet.ServletException;
@ -10,54 +14,39 @@ import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse; import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import org.springframework.security.core.Authentication; import static com.jasamedika.medifirst2000.constants.Constants.MessageInfo.ERROR_MESSAGE;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.filter.GenericFilterBean;
import com.fasterxml.jackson.core.JsonParseException;
import com.jasamedika.medifirst2000.constants.Constants;
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
/** /**
* StatelessAuthenticationFilter class * StatelessAuthenticationFilter class
* *
* @author Roberto * @author Roberto
*/ */
@AllArgsConstructor
public class StatelessAuthenticationFilter extends GenericFilterBean { public class StatelessAuthenticationFilter extends GenericFilterBean {
private final TokenAuthenticationService authenticationService; private final TokenAuthenticationService authenticationService;
public StatelessAuthenticationFilter( public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
TokenAuthenticationService authenticationService) { throws IOException, ServletException {
this.authenticationService = authenticationService;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletRequest req = (HttpServletRequest) request; HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response; HttpServletResponse res = (HttpServletResponse) response;
res.setHeader("Access-Control-Allow-Origin", req.getHeader("Origin"));
res.setHeader("Access-Control-Allow-Origin",
req.getHeader("Origin"));
res.setHeader("Access-Control-Allow-Credentials", "true"); res.setHeader("Access-Control-Allow-Credentials", "true");
res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
res.setHeader("Access-Control-Allow-Methods",
"POST, GET, OPTIONS, DELETE");
res.setHeader("Access-Control-Max-Age", "3600"); res.setHeader("Access-Control-Max-Age", "3600");
res.setHeader("Access-Control-Allow-Headers", res.setHeader("Access-Control-Allow-Headers",
"Content-Type, Accept, X-Requested-With, remember-me, X-AUTH-TOKEN, Supervising, " "Content-Type, Accept, X-Requested-With, remember-me, X-AUTH-TOKEN, Supervising, "
+ "RequestSupervisor, Module, Form, Action, AlamatUrlForm, KdRuangan, KdUser, " + "RequestSupervisor, Module, Form, Action, AlamatUrlForm, KdRuangan, KdUser, "
+ "MandatoriData"); + "MandatoriData");
Authentication authentication = null; Authentication authentication = null;
try { try {
authentication = authenticationService.getAuthentication(httpRequest); authentication = authenticationService.getAuthentication(httpRequest);
} catch (JsonParseException | MalformedJwtException e) { } catch (JsonParseException | MalformedJwtException e) {
HttpServletResponse httpResponse = (HttpServletResponse) response; HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.addHeader(Constants.MessageInfo.ERROR_MESSAGE, httpResponse.addHeader(ERROR_MESSAGE, "Error Token (Not Valid Token)");
"Error Token (Not Valid Token)");
filterChain.doFilter(request, response); filterChain.doFilter(request, response);
} }
SecurityContextHolder.getContext().setAuthentication(authentication); SecurityContextHolder.getContext().setAuthentication(authentication);

View File

@ -1,15 +1,12 @@
package com.jasamedika.medifirst2000.handler; package com.jasamedika.medifirst2000.handler;
import java.util.List; import com.jasamedika.medifirst2000.base.vo.validation.ValidationErrorVO;
import java.util.Locale;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource; import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.http.HttpStatus;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError; import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.MethodArgumentNotValidException;
@ -18,22 +15,24 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.ResponseStatus;
import com.jasamedika.medifirst2000.base.vo.validation.ValidationErrorVO; import java.util.List;
import com.jasamedika.medifirst2000.constants.Constants;; import java.util.Locale;
import static com.jasamedika.medifirst2000.constants.Constants.Locale.INA;
import static org.springframework.http.HttpStatus.BAD_REQUEST;
/** /**
* Exception Handler Rest Controller class * Exception Handler Rest Controller class
* *
* @author Roberto * @author Roberto
*/ */
@ControllerAdvice @ControllerAdvice
@Order(1) // Pertama masuk @Order(1)
public class RestErrorHandler { public class RestErrorHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(RestErrorHandler.class); private static final Logger LOGGER = LoggerFactory.getLogger(RestErrorHandler.class);
private MessageSource messageSource; private final MessageSource messageSource;
@Autowired @Autowired
public RestErrorHandler(MessageSource validationNessageSource) { public RestErrorHandler(MessageSource validationNessageSource) {
@ -41,60 +40,45 @@ public class RestErrorHandler {
} }
@ExceptionHandler(MethodArgumentNotValidException.class) @ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST) @ResponseStatus(BAD_REQUEST)
@ResponseBody @ResponseBody
public ValidationErrorVO processValidationError(MethodArgumentNotValidException ex) { public ValidationErrorVO processValidationError(MethodArgumentNotValidException ex) {
LOGGER.warn("Handling data validation error"); LOGGER.warn("Handling data validation error");
BindingResult result = ex.getBindingResult(); BindingResult result = ex.getBindingResult();
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
return processFieldErrors(fieldErrors); return processFieldErrors(fieldErrors);
} }
private ValidationErrorVO processFieldErrors(List<FieldError> fieldErrors) { private ValidationErrorVO processFieldErrors(List<FieldError> fieldErrors) {
ValidationErrorVO dto = new ValidationErrorVO(); ValidationErrorVO dto = new ValidationErrorVO();
for (FieldError fieldError : fieldErrors) { for (FieldError fieldError : fieldErrors) {
dto.addFieldError(fieldError.getField(), fieldError.getDefaultMessage()); dto.addFieldError(fieldError.getField(), fieldError.getDefaultMessage());
} }
return dto; return dto;
} }
/* /**
* resolve error message with parameter locale * resolve error message with parameter locale
*/ */
private String resolveLocalizedErrorMessage(FieldError fieldError, String locale) { private String resolveLocalizedErrorMessage(FieldError fieldError, String locale) {
Locale currentLocale = LocaleContextHolder.getLocale(); Locale currentLocale = LocaleContextHolder.getLocale();
String localizedErrorMessage = messageSource.getMessage(fieldError, currentLocale); String localizedErrorMessage = messageSource.getMessage(fieldError, currentLocale);
// If the message was not found, return the most accurate field error
// code instead.
// You can remove this check if you prefer to get the default error
// message.
if (localizedErrorMessage.equals(fieldError.getDefaultMessage())) { if (localizedErrorMessage.equals(fieldError.getDefaultMessage())) {
String[] fieldErrorCodes = fieldError.getCodes(); String[] fieldErrorCodes = fieldError.getCodes();
localizedErrorMessage = fieldErrorCodes[0]; localizedErrorMessage = fieldErrorCodes[0];
} }
return localizedErrorMessage; return localizedErrorMessage;
} }
/* /**
* resolve error message with default locale * resolve error message with default locale
*/ */
private String resolveLocalizedErrorMessage(FieldError fieldError) { private String resolveLocalizedErrorMessage(FieldError fieldError) {
String localizedErrorMessage = messageSource.getMessage(fieldError, new Locale(Constants.Locale.INA)); String localizedErrorMessage = messageSource.getMessage(fieldError, new Locale(INA));
// If the message was not found, return the most accurate field error
// code instead.
// You can remove this check if you prefer to get the default error
// message.
if (localizedErrorMessage.equals(fieldError.getDefaultMessage())) { if (localizedErrorMessage.equals(fieldError.getDefaultMessage())) {
String[] fieldErrorCodes = fieldError.getCodes(); String[] fieldErrorCodes = fieldError.getCodes();
localizedErrorMessage = fieldErrorCodes[0]; localizedErrorMessage = fieldErrorCodes[0];
} }
return localizedErrorMessage; return localizedErrorMessage;
} }
} }

View File

@ -32,9 +32,8 @@ import java.util.List;
/** /**
* Interceptor class for All annotation method controller @AppPermission * Interceptor class for All annotation method controller @AppPermission
* *
* @author Roberto, direka ulang oleh Syamsu * @author Roberto, Syamsu
*/ */
public class AppInterceptor implements HandlerInterceptor { public class AppInterceptor implements HandlerInterceptor {
private static final String[] PRINT_PATTERN = { "/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_", private static final String[] PRINT_PATTERN = { "/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_",

View File

@ -1,43 +1,34 @@
package com.jasamedika.medifirst2000.security; package com.jasamedika.medifirst2000.security;
import java.io.IOException; import com.jasamedika.medifirst2000.constants.Constants;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint; import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.jasamedika.medifirst2000.constants.Constants; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/** /**
* RestAuthenticationEntryPoint class * RestAuthenticationEntryPoint class set Unauthorized response from
* set Unauthorized response from "Unauthorized client" * "Unauthorized client"
* *
* @author Roberto * @author Roberto, Syamsu
*/ */
@Component("RestAuthenticationEntryPoint") @Component("RestAuthenticationEntryPoint")
public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint {
private static final Logger LOGGER = LoggerFactory.getLogger(RestAuthenticationEntryPoint.class);
/// Alter Syamsu private static final Logger LOGGER = LoggerFactory.getLogger(RestAuthenticationEntryPoint.class);
@Override @Override
public void commence(HttpServletRequest request, public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException ae)
HttpServletResponse response, AuthenticationException ae) throws IOException {
throws IOException, ServletException {
LOGGER.error("Mencoba akses tanpa login"); LOGGER.error("Mencoba akses tanpa login");
response.getWriter().write("{" + Constants.MessageInfo.ERROR_MESSAGE + ":'Please login to get access'}"); response.getWriter().write("{" + Constants.MessageInfo.ERROR_MESSAGE + ":'Please login to get access'}");
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Please login to get access"); response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Please login to get access");
response.setStatus(HttpServletResponse.SC_FORBIDDEN); response.setStatus(HttpServletResponse.SC_FORBIDDEN);
//response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized");
} }
} }

View File

@ -1,10 +1,12 @@
package com.jasamedika.medifirst2000.security; package com.jasamedika.medifirst2000.security;
import com.jasamedika.medifirst2000.filter.StatelessAuthenticationFilter;
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
import com.jasamedika.medifirst2000.security.service.UserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity;
@ -13,14 +15,11 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import com.jasamedika.medifirst2000.constants.Constants; import static com.jasamedika.medifirst2000.constants.Constants.JASAMEDIKA;
import com.jasamedika.medifirst2000.filter.StatelessAuthenticationFilter;
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
import com.jasamedika.medifirst2000.security.service.UserService;
/** /**
* SpringSecurityConfig class * SpringSecurityConfig class Di sini Kita tidak menggunakan XML Config untuk
* Di sini Kita tidak menggunakan XML Config untuk Spring Security * Spring Security
* *
* @author Roberto * @author Roberto
*/ */
@ -29,94 +28,35 @@ import com.jasamedika.medifirst2000.security.service.UserService;
@Order(2) @Order(2)
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter { public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
private final UserService userService;
private final TokenAuthenticationService tokenAuthenticationService;
@Autowired @Autowired
private RestAuthenticationEntryPoint restAuthenticationEntryPoint; private RestAuthenticationEntryPoint restAuthenticationEntryPoint;
private final UserService userService;
private final TokenAuthenticationService tokenAuthenticationService;
public SpringSecurityConfig() { public SpringSecurityConfig() {
super(true); super(true);
this.userService = new UserService(); this.userService = new UserService();
tokenAuthenticationService = new TokenAuthenticationService( tokenAuthenticationService = new TokenAuthenticationService(JASAMEDIKA, userService);
Constants.JASAMEDIKA, userService);
} }
@Override @Override
protected void configure(HttpSecurity http) throws Exception { protected void configure(HttpSecurity http) throws Exception {
http.exceptionHandling() http.exceptionHandling().authenticationEntryPoint(restAuthenticationEntryPoint).and().anonymous().and()
//restAuthenticationEntryPoint .servletApi().and().headers().cacheControl().and().authorizeRequests().antMatchers("/favicon.ico")
.authenticationEntryPoint(restAuthenticationEntryPoint) .permitAll().antMatchers("**/*.html").permitAll().antMatchers("**/*.css").permitAll()
.antMatchers("**/*.js").permitAll().antMatchers("/auth/**").permitAll()
.and() .antMatchers("/registrasi-pasien-sms/**").permitAll().antMatchers("/report/**").permitAll()
.anonymous() .antMatchers("/test-tanpa-auth/**").permitAll().antMatchers("/test/**").permitAll()
.and() .antMatchers("/api-docs.json").permitAll().antMatchers("/api-docs/**").permitAll().anyRequest()
.servletApi() .authenticated().and().addFilterBefore(new StatelessAuthenticationFilter(tokenAuthenticationService),
.and()
.headers()
.cacheControl()
.and()
.authorizeRequests()
// Allow anonymous resource requests
.antMatchers("/favicon.ico")
.permitAll()
.antMatchers("**/*.html")
.permitAll()
.antMatchers("**/*.css")
.permitAll()
.antMatchers("**/*.js")
.permitAll()
// Allow anonymous logins
.antMatchers("/auth/**")
.permitAll()
// Allow SMS gateway
.antMatchers("/registrasi-pasien-sms/**")
.permitAll()
// Allow SMS gateway
.antMatchers("/report/**")
.permitAll()
// URL tanpa auth deklarasikan di sini
.antMatchers("/test-tanpa-auth/**")
.permitAll()
.antMatchers("/test/**")
.permitAll()
.antMatchers("/api-docs.json")
.permitAll()
.antMatchers("/api-docs/**")
.permitAll()
/*//Allow Download File Surat Masuk
.antMatchers("/surat-masuk/download-dokumen-template/**")
.permitAll()
.antMatchers("/surat-masuk/get-draft-surat/**")
.permitAll()*/
// All other request need to be authenticated
.anyRequest()
.authenticated()
.and()
// Custom Token based authentication based on the header
// previously given to the client
.addFilterBefore(
new StatelessAuthenticationFilter(
tokenAuthenticationService),
UsernamePasswordAuthenticationFilter.class); UsernamePasswordAuthenticationFilter.class);
} }
@Override @Override
protected void configure(AuthenticationManagerBuilder auth) protected void configure(AuthenticationManagerBuilder auth) throws Exception {
throws Exception { auth.userDetailsService(userDetailsService()).passwordEncoder(new BCryptPasswordEncoder());
auth.userDetailsService(userDetailsService()).passwordEncoder(
new BCryptPasswordEncoder());
} }
@Bean @Bean
@ -135,11 +75,4 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
public TokenAuthenticationService tokenAuthenticationService() { public TokenAuthenticationService tokenAuthenticationService() {
return tokenAuthenticationService; return tokenAuthenticationService;
} }
// @Bean(name = "springSecurityFilterChain", autowire = Autowire.BY_NAME)
// public DelegatingFilterProxy springSecurityFilterChain(){
// return new DelegatingFilterProxy();
// }
} }

View File

@ -8,33 +8,28 @@ import org.springframework.security.core.userdetails.User;
import com.jasamedika.medifirst2000.security.service.UserService; import com.jasamedika.medifirst2000.security.service.UserService;
/** /**
* TokenHandler class * TokenHandler class using jjwt <a href="https://github.com/jwtk/jjwt">jjwt</a>
* using jjwt https://github.com/jwtk/jjwt *
*
* @author Roberto * @author Roberto
*/ */
public class TokenHandler { public class TokenHandler {
private final String secret;
private final UserService userService;
public TokenHandler(String secret, UserService userService) { private final String secret;
this.secret = secret;
this.userService = userService;
}
public User parseUserFromToken(String token) { private final UserService userService;
String username = Jwts.parser()
.setSigningKey(secret)
.parseClaimsJws(token)
.getBody()
.getSubject();
return userService.loadUserByUsername(username);
}
public String createTokenForUser(User user) { public TokenHandler(String secret, UserService userService) {
return Jwts.builder().setHeaderParam("typ", "JWT") this.secret = secret;
.setSubject(user.getUsername()) this.userService = userService;
.signWith(SignatureAlgorithm.HS512, secret) }
.compact();
} public User parseUserFromToken(String token) {
String username = Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody().getSubject();
return userService.loadUserByUsername(username);
}
public String createTokenForUser(User user) {
return Jwts.builder().setHeaderParam("typ", "JWT").setSubject(user.getUsername())
.signWith(SignatureAlgorithm.HS512, secret).compact();
}
} }

View File

@ -6,20 +6,20 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
/** /**
* AppPermission annotation, digunakan untuk method yang butuh authorized dari database * AppPermission annotation, digunakan untuk method yang butuh authorized dari
* can use in method only. * database can use in method only.
*
* @author Roberto * @author Roberto
*/ */
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD) @Target(ElementType.METHOD)
public @interface AppPermission { public @interface AppPermission {
public static final int ADD = 100; int ADD = 100;
public static final int UPDATE = 200; int UPDATE = 200;
public static final int DELETE = 300; int DELETE = 300;
public static final int PRINT = 400; int PRINT = 400;
public static final int VIEW = 500; int VIEW = 500;
int SPECIALS = 600;
public static final int SPECIALS = 600;
int value(); int value();
} }

View File

@ -1,11 +1,11 @@
package com.jasamedika.medifirst2000.security.model; package com.jasamedika.medifirst2000.security.model;
import java.util.Collection;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.User;
import java.util.Collection;
/** /**
* UserAuthentication class * UserAuthentication class
* *
@ -16,7 +16,9 @@ public class UserAuthentication implements Authentication {
* serialVersionUID * serialVersionUID
*/ */
private static final long serialVersionUID = -7410905698525654537L; private static final long serialVersionUID = -7410905698525654537L;
private final User user; private final User user;
private boolean authenticated = true; private boolean authenticated = true;
public UserAuthentication(User user) { public UserAuthentication(User user) {

View File

@ -1,71 +1,63 @@
package com.jasamedika.medifirst2000.security.service; package com.jasamedika.medifirst2000.security.service;
import javax.servlet.http.HttpServletRequest; import com.fasterxml.jackson.core.JsonParseException;
import javax.servlet.http.HttpServletResponse; import com.jasamedika.medifirst2000.security.handler.TokenHandler;
import com.jasamedika.medifirst2000.security.model.UserAuthentication;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.User;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.fasterxml.jackson.core.JsonParseException; import javax.servlet.http.HttpServletRequest;
import com.jasamedika.medifirst2000.core.web.WebConstants; import java.util.Objects;
import com.jasamedika.medifirst2000.security.handler.TokenHandler;
import com.jasamedika.medifirst2000.security.model.UserAuthentication; import static com.jasamedika.medifirst2000.core.web.WebConstants.AUTH_HEADER_NAME;
/** /**
* TokenAuthenticationService class * TokenAuthenticationService class
* *
* @author Roberto * @author Roberto
*/ */
@NoArgsConstructor
@Slf4j
@Component @Component
public class TokenAuthenticationService { public class TokenAuthenticationService {
public static TokenHandler tokenHandler; public static TokenHandler tokenHandler;
public TokenAuthenticationService() {
}
public TokenAuthenticationService(String secret, UserService userService) { public TokenAuthenticationService(String secret, UserService userService) {
tokenHandler = new TokenHandler(secret, userService); tokenHandler = new TokenHandler(secret, userService);
} }
public String addAuthentication(HttpServletResponse response, public String addAuthentication(UserAuthentication authentication) {
UserAuthentication authentication) {
final User user = authentication.getDetails(); final User user = authentication.getDetails();
return tokenHandler.createTokenForUser(user); return tokenHandler.createTokenForUser(user);
} }
public Authentication getAuthentication(HttpServletRequest request) public Authentication getAuthentication(HttpServletRequest request) throws JsonParseException {
throws JsonParseException { String token = request.getHeader(AUTH_HEADER_NAME);
String token = request.getHeader(WebConstants.AUTH_HEADER_NAME);
if (token != null) { if (token != null) {
final User user = tokenHandler.parseUserFromToken(token); final User user = tokenHandler.parseUserFromToken(token);
if (user != null) { if (user != null)
return new UserAuthentication(user); return new UserAuthentication(user);
} } else {
} try {
else{ if (Objects.equals(request.getQueryString(), ""))
try return null;
{ final String[] tokens = request.getQueryString().split("&");
if(request.getQueryString()=="")return null;
final String[] tokens= request.getQueryString().split("&");
for (String tokenTemp : tokens) { for (String tokenTemp : tokens) {
if(tokenTemp.toLowerCase().indexOf(WebConstants.AUTH_HEADER_NAME.toLowerCase())>=0) if (tokenTemp.toLowerCase().contains(AUTH_HEADER_NAME.toLowerCase())) {
{ token = tokenTemp.split("=")[1];
token =tokenTemp.split("=")[1];
final User user = tokenHandler.parseUserFromToken(token); final User user = tokenHandler.parseUserFromToken(token);
if (user != null) { if (user != null) {
return new UserAuthentication(user); return new UserAuthentication(user);
} }
} }
} }
} catch (Exception e) {
log.error(e.getMessage());
} }
catch(Exception e)
{
}
} }
return null; return null;
} }

View File

@ -1,61 +1,48 @@
package com.jasamedika.medifirst2000.security.service; package com.jasamedika.medifirst2000.security.service;
import java.util.Arrays; import com.jasamedika.medifirst2000.dao.LoginUserDao;
import java.util.List; import com.jasamedika.medifirst2000.entities.LoginUser;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AccountStatusUserDetailsChecker; import org.springframework.security.authentication.AccountStatusUserDetailsChecker;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.jasamedika.medifirst2000.dao.LoginUserDao; import java.util.Collections;
import com.jasamedika.medifirst2000.entities.LoginUser; import java.util.List;
/** /**
* UserService implements * UserService implements
org.springframework.security.core.userdetails.UserDetailsService * org.springframework.security.core.userdetails.UserDetailsService
* *
* @author Roberto * @author Roberto
*/ */
@NoArgsConstructor
@Component @Component
public class UserService implements public class UserService implements UserDetailsService {
org.springframework.security.core.userdetails.UserDetailsService {
@Autowired @Autowired
private LoginUserDao loginUserDao; private LoginUserDao loginUserDao;
private final AccountStatusUserDetailsChecker detailsChecker = new AccountStatusUserDetailsChecker(); private final AccountStatusUserDetailsChecker detailsChecker = new AccountStatusUserDetailsChecker();
public UserService() {
super();
}
/** /**
* this method is called for rest authentication from client * this method is called for rest authentication from client
*
* @author Roberto
*/ */
@Override @Override
public final User loadUserByUsername(String username) public final User loadUserByUsername(String username) throws UsernameNotFoundException {
throws UsernameNotFoundException {
List<LoginUser> loginUsers = loginUserDao.findByNamaUser(username); List<LoginUser> loginUsers = loginUserDao.findByNamaUser(username);
if (loginUsers.isEmpty()) { if (loginUsers.isEmpty())
throw new UsernameNotFoundException("user not found"); throw new UsernameNotFoundException("user not found");
}
LoginUser loginUser = loginUsers.get(0); LoginUser loginUser = loginUsers.get(0);
//validasi tambahan lakukan di sini
// GrantedAuthority authority = new SimpleGrantedAuthority(loginUser
// .getKelompokUser().getKelompokUser());
GrantedAuthority authority = new SimpleGrantedAuthority("USER"); GrantedAuthority authority = new SimpleGrantedAuthority("USER");
UserDetails userDetails = (UserDetails) new User( User userDetails = new User(loginUser.getNamaUser(), loginUser.getKataSandi(),
loginUser.getNamaUser(), loginUser.getKataSandi(), Collections.singletonList(authority));
Arrays.asList(authority));
detailsChecker.check(userDetails); detailsChecker.check(userDetails);
return (User) userDetails; return userDetails;
} }
} }

View File

@ -1,5 +1,6 @@
package com.jasamedika.medifirst2000.util.rest; package com.jasamedika.medifirst2000.util.rest;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonInclude.Include;
@ -7,23 +8,17 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.SerializationFeature;
@NoArgsConstructor
@Component @Component
public class JacksonConfiguration { public class JacksonConfiguration {
private ObjectMapper mapper;
public JacksonConfiguration() {
}
public JacksonConfiguration(ObjectMapper mapper) { public JacksonConfiguration(ObjectMapper mapper) {
this.mapper = mapper;
configureJackson(mapper); configureJackson(mapper);
} }
public static ObjectMapper configureJackson(ObjectMapper mapper) { public static void configureJackson(ObjectMapper mapper) {
mapper.enable(SerializationFeature.INDENT_OUTPUT); mapper.enable(SerializationFeature.INDENT_OUTPUT);
mapper.setSerializationInclusion(Include.NON_NULL); mapper.setSerializationInclusion(Include.NON_NULL);
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
false);
return mapper;
} }
} }

View File

@ -1,16 +1,17 @@
package com.jasamedika.medifirst2000.util.rest; package com.jasamedika.medifirst2000.util.rest;
import com.google.gson.Gson;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.springframework.http.HttpHeaders; import static org.springframework.http.HttpStatus.OK;
import org.springframework.http.HttpStatus; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import com.google.gson.Gson;
/** /**
* Rest Util Class * Rest Util Class
@ -24,78 +25,49 @@ public class RestUtil {
/** /**
* get JSON response from Object * get JSON response from Object
* *
* @param src
* @param <T> * @param <T>
* source class * source class
* @return @ResponseEntity * @return @ResponseEntity
*/ */
public static <T> ResponseEntity<T> getJsonResponse(T src) { public static <T> ResponseEntity<T> getJsonResponse(T src) {
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.set(CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE); headers.set(CONTENT_TYPE, APPLICATION_JSON_VALUE);
return new ResponseEntity<T>(src, headers, HttpStatus.OK); return new ResponseEntity<>(src, headers, OK);
} }
/** /**
* get JSON response from Object with HTTP status * get JSON response from Object with HTTP status
* *
* @param src
* @param status
* @param <T> * @param <T>
* source class * source class
* @return @ResponseEntity * @return @ResponseEntity
*/ */
@SuppressWarnings({ "unchecked", "rawtypes" })
public static <T> ResponseEntity<T> getJsonResponse(T src, HttpStatus status) { public static <T> ResponseEntity<T> getJsonResponse(T src, HttpStatus status) {
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.set(CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE); headers.set(CONTENT_TYPE, APPLICATION_JSON_VALUE);
Map<String, Object> map = new HashMap<String, Object>(); Map<String, Object> map = new HashMap<>();
map.put("data", src); map.put("data", src);
return new ResponseEntity(map, headers, status); return new ResponseEntity(map, headers, status);
} }
/**
*
* @param src
* @param status
* @param mapHeaderMessage
* @param <T>
* @return
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public static <T> ResponseEntity<T> getJsonResponse(T src, HttpStatus status, public static <T> ResponseEntity<T> getJsonResponse(T src, HttpStatus status,
Map<String, String> mapHeaderMessage) { Map<String, String> mapHeaderMessage) {
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
if (null != mapHeaderMessage)
if (null != mapHeaderMessage) { for (String key : mapHeaderMessage.keySet())
for (String key : mapHeaderMessage.keySet()) {
headers.add(key, mapHeaderMessage.get(key)); headers.add(key, mapHeaderMessage.get(key));
} Map<String, Object> map = new HashMap<>();
}
Map<String, Object> map = new HashMap<String, Object>();
map.put("messages", mapHeaderMessage); map.put("messages", mapHeaderMessage);
map.put("data", src); map.put("data", src);
headers.set(CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE); headers.set(CONTENT_TYPE, APPLICATION_JSON_VALUE);
return new ResponseEntity(map, headers, status); return new ResponseEntity(map, headers, status);
} }
/**
*
* @param status
* @param mapHeaderMessage
* @return
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public static <T> ResponseEntity<T> getJsonResponse(HttpStatus status, Map<String, String> mapHeaderMessage) { public static <T> ResponseEntity<T> getJsonResponse(HttpStatus status, Map<String, String> mapHeaderMessage) {
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.set(CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE); headers.set(CONTENT_TYPE, APPLICATION_JSON_VALUE);
Map<String, Object> map = new HashMap<>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("messages", mapHeaderMessage); map.put("messages", mapHeaderMessage);
return new ResponseEntity(map, headers, status); return new ResponseEntity(map, headers, status);
} }
@ -106,114 +78,88 @@ public class RestUtil {
* source class * source class
* @return @ResponseEntity * @return @ResponseEntity
*/ */
public static <T> ResponseEntity<T> getJsonHttptatus(HttpStatus status) { public static <T> ResponseEntity<T> getJsonHttpStatus(HttpStatus status) {
return new ResponseEntity<>(status);
return new ResponseEntity<T>(status);
} }
public static <T> ResponseEntity<T> getJsonHttptatus(HttpStatus status, Map<String, String> mapHeaderMessage) { public static <T> ResponseEntity<T> getJsonHttpStatus(HttpStatus status, Map<String, String> mapHeaderMessage) {
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
if (null != mapHeaderMessage)
if (null != mapHeaderMessage) { for (String key : mapHeaderMessage.keySet())
for (String key : mapHeaderMessage.keySet()) {
headers.add(key, mapHeaderMessage.get(key)); headers.add(key, mapHeaderMessage.get(key));
} headers.set(CONTENT_TYPE, APPLICATION_JSON_VALUE);
} return new ResponseEntity<>(headers, status);
headers.set(CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
return new ResponseEntity<T>(headers, status);
} }
/** /**
* get JSON response from Set Object * get JSON response from Set Object
* *
* @param src
* @param <T> * @param <T>
* source class * source class
* @return @ResponseEntity * @return @ResponseEntity
*/ */
public static <T> ResponseEntity<Set<T>> defaultJsonResponse(Set<T> src) { public static <T> ResponseEntity<Set<T>> defaultJsonResponse(Set<T> src) {
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.set(CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE); headers.set(CONTENT_TYPE, APPLICATION_JSON_VALUE);
return new ResponseEntity<Set<T>>(src, headers, HttpStatus.OK); return new ResponseEntity<>(src, headers, OK);
} }
/** /**
* get JSON response from Set Object with custom header * get JSON response from Set Object with custom header
* *
* @param src
* @param mapHeaderMessage
* @param <T> * @param <T>
* source class * source class
* @return @ResponseEntity * @return @ResponseEntity
*/ */
public static <T> ResponseEntity<Set<T>> defaultJsonResponse(Set<T> src, Map<String, String> mapHeaderMessage) { public static <T> ResponseEntity<Set<T>> defaultJsonResponse(Set<T> src, Map<String, String> mapHeaderMessage) {
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
if (null != mapHeaderMessage)
if (null != mapHeaderMessage) { for (String key : mapHeaderMessage.keySet())
for (String key : mapHeaderMessage.keySet()) {
headers.add(key, mapHeaderMessage.get(key)); headers.add(key, mapHeaderMessage.get(key));
} headers.set(CONTENT_TYPE, APPLICATION_JSON_VALUE);
} return new ResponseEntity<>(src, headers, OK);
headers.set(CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
return new ResponseEntity<Set<T>>(src, headers, HttpStatus.OK);
} }
/** /**
* get JSON response from List Object with custom header * get JSON response from List Object with custom header
* *
* @param src
* @param mapHeaderMessage
* @param <T> * @param <T>
* source class * source class
* @return @ResponseEntity * @return @ResponseEntity
*/ */
public static <T> ResponseEntity<List<T>> defaultJsonResponse(List<T> src, Map<String, String> mapHeaderMessage) { public static <T> ResponseEntity<List<T>> defaultJsonResponse(List<T> src, Map<String, String> mapHeaderMessage) {
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
if (null != mapHeaderMessage)
if (null != mapHeaderMessage) { for (String key : mapHeaderMessage.keySet())
for (String key : mapHeaderMessage.keySet()) {
headers.add(key, mapHeaderMessage.get(key)); headers.add(key, mapHeaderMessage.get(key));
} headers.set(CONTENT_TYPE, APPLICATION_JSON_VALUE);
} return new ResponseEntity<>(src, headers, OK);
headers.set(CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
return new ResponseEntity<List<T>>(src, headers, HttpStatus.OK);
} }
/** /**
* get JSON response from List Object * get JSON response from List Object
* *
* @param src
* @param <T> * @param <T>
* source class * source class
* @return @ResponseEntity * @return @ResponseEntity
*/ */
public static <T> ResponseEntity<List<T>> defaultJsonResponse(List<T> src) { public static <T> ResponseEntity<List<T>> defaultJsonResponse(List<T> src) {
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.set(CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE); headers.set(CONTENT_TYPE, APPLICATION_JSON_VALUE);
return new ResponseEntity<List<T>>(src, headers, HttpStatus.OK); return new ResponseEntity<>(src, headers, OK);
} }
/** /**
* get default JSON response from Object * get default JSON response from Object
* *
* @param src
* @return @ResponseEntity * @return @ResponseEntity
*/ */
public static ResponseEntity<String> defaultJsonResponse(Object src) { public static ResponseEntity<String> defaultJsonResponse(Object src) {
Gson gson = new Gson(); Gson gson = new Gson();
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.set(CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE); headers.set(CONTENT_TYPE, APPLICATION_JSON_VALUE);
return new ResponseEntity<String>(gson.toJson(src), headers, HttpStatus.OK); return new ResponseEntity<>(gson.toJson(src), headers, OK);
} }
/** /**
@ -223,8 +169,6 @@ public class RestUtil {
* string source JSON * string source JSON
* @param type * @param type
* class type result * class type result
* @param <T>
* @return
*/ */
public static <T> T jsonToObject(String strJson, Class<T> type) { public static <T> T jsonToObject(String strJson, Class<T> type) {
Gson gson = new Gson(); Gson gson = new Gson();
@ -234,12 +178,9 @@ public class RestUtil {
/** /**
* convert object to json * convert object to json
* *
* @param object
* @return
*/ */
public static String toJson(Object object) { public static String toJson(Object object) {
Gson gson = new Gson(); Gson gson = new Gson();
return gson.toJson(object); return gson.toJson(object);
} }
} }

View File

@ -1,11 +1,13 @@
package com.monitorjbl.json; package com.monitorjbl.json;
public class JsonResult { import lombok.NoArgsConstructor;
private static final JsonResult instance = new JsonResult();
private static final ThreadLocal<JsonView> current = new ThreadLocal<>();
private JsonResult() { @NoArgsConstructor
} public class JsonResult {
private static final JsonResult instance = new JsonResult();
private static final ThreadLocal<JsonView<?>> current = new ThreadLocal<>();
/** /**
* Use the provided {@code JsonView} object to serialize the return value. * Use the provided {@code JsonView} object to serialize the return value.
@ -16,7 +18,6 @@ public class JsonResult {
* Type of object being rendered * Type of object being rendered
* @return ResultWrapper to provide return value * @return ResultWrapper to provide return value
*/ */
@SuppressWarnings("unchecked")
public <E> ResultWrapper<E> use(JsonView<E> view) { public <E> ResultWrapper<E> use(JsonView<E> view) {
current.set(view); current.set(view);
return new ResultWrapper<>(view); return new ResultWrapper<>(view);
@ -26,7 +27,7 @@ public class JsonResult {
return instance; return instance;
} }
static JsonView get() { static JsonView<?> get() {
return current.get(); return current.get();
} }
@ -35,7 +36,7 @@ public class JsonResult {
} }
public static class ResultWrapper<T> { public static class ResultWrapper<T> {
private JsonView<T> obj; private final JsonView<T> obj;
private ResultWrapper(JsonView<T> obj) { private ResultWrapper(JsonView<T> obj) {
this.obj = obj; this.obj = obj;

View File

@ -1,18 +1,14 @@
package com.monitorjbl.json; package com.monitorjbl.json;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class JsonResultRetriever { public class JsonResultRetriever {
private static final Logger log = LoggerFactory.getLogger(JsonResultRetriever.class);
static boolean hasValue() { static boolean hasValue() {
return JsonResult.get() != null; return JsonResult.get() != null;
} }
static JsonView retrieve() { static JsonView<?> retrieve() {
JsonView val = JsonResult.get(); JsonView<?> val = JsonResult.get();
JsonResult.unset(); JsonResult.unset();
return val; return val;
} }
} }

View File

@ -11,23 +11,18 @@ import java.util.List;
public class JsonViewHttpEntityMethodProcessor extends HttpEntityMethodProcessor { public class JsonViewHttpEntityMethodProcessor extends HttpEntityMethodProcessor {
public JsonViewHttpEntityMethodProcessor(List<HttpMessageConverter<?>> converters) { public JsonViewHttpEntityMethodProcessor(List<HttpMessageConverter<?>> converters) {
super(converters); super(converters);
} }
@Override
public void handleReturnValue(Object returnValue, MethodParameter returnType,
ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {
if(returnValue instanceof ResponseEntity && JsonResultRetriever.hasValue()) {
JsonView json = JsonResultRetriever.retrieve();
ResponseEntity re = (ResponseEntity) returnValue;
returnValue = ResponseEntity.status(re.getStatusCode())
.headers(re.getHeaders())
.body(json);
}
super.handleReturnValue(returnValue, returnType, mavContainer, webRequest);
}
@Override
public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest) throws Exception {
if (returnValue instanceof ResponseEntity && JsonResultRetriever.hasValue()) {
JsonView<?> json = JsonResultRetriever.retrieve();
ResponseEntity<?> re = (ResponseEntity<?>) returnValue;
returnValue = ResponseEntity.status(re.getStatusCode()).headers(re.getHeaders()).body(json);
}
super.handleReturnValue(returnValue, returnType, mavContainer, webRequest);
}
} }

View File

@ -11,30 +11,32 @@ import org.springframework.web.method.support.ModelAndViewContainer;
import java.util.List; import java.util.List;
public class JsonViewReturnValueHandler implements HandlerMethodReturnValueHandler { public class JsonViewReturnValueHandler implements HandlerMethodReturnValueHandler {
private static final Logger log = LoggerFactory.getLogger(JsonViewReturnValueHandler.class);
private final HandlerMethodReturnValueHandler delegate; private static final Logger log = LoggerFactory.getLogger(JsonViewReturnValueHandler.class);
public JsonViewReturnValueHandler(List<HttpMessageConverter<?>> converters) { private final HandlerMethodReturnValueHandler delegate;
this.delegate = new JsonViewResponseProcessor(converters);
}
@Override public JsonViewReturnValueHandler(List<HttpMessageConverter<?>> converters) {
public boolean supportsReturnType(MethodParameter returnType) { this.delegate = new JsonViewResponseProcessor(converters);
return delegate.supportsReturnType(returnType); }
}
@Override @Override
public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { public boolean supportsReturnType(MethodParameter returnType) {
Object val = returnValue; return delegate.supportsReturnType(returnType);
if(JsonResultRetriever.hasValue()) { }
val = JsonResultRetriever.retrieve();
log.debug("Found [" + ((JsonView) val).getValue().getClass() + "] to serialize");
} else {
log.debug("No JsonView found for thread, using returned value");
}
delegate.handleReturnValue(val, returnType, mavContainer, webRequest); @Override
} public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest) throws Exception {
Object val = returnValue;
if (JsonResultRetriever.hasValue()) {
val = JsonResultRetriever.retrieve();
log.debug("Found [{}] to serialize", ((JsonView<?>) val).getValue().getClass());
} else {
log.debug("No JsonView found for thread, using returned value");
}
delegate.handleReturnValue(val, returnType, mavContainer, webRequest);
}
} }

View File

@ -15,38 +15,38 @@ import java.util.List;
public class JsonViewSupportFactoryBean implements InitializingBean { public class JsonViewSupportFactoryBean implements InitializingBean {
@Autowired private final JsonViewMessageConverter converter;
private RequestMappingHandlerAdapter adapter;
private final JsonViewMessageConverter converter;
public JsonViewSupportFactoryBean() { @Autowired
this(new ObjectMapper()); private RequestMappingHandlerAdapter adapter;
}
public JsonViewSupportFactoryBean(ObjectMapper mapper) { public JsonViewSupportFactoryBean() {
this.converter = new JsonViewMessageConverter(mapper.copy()); this(new ObjectMapper());
} }
@Override public JsonViewSupportFactoryBean(ObjectMapper mapper) {
public void afterPropertiesSet() throws Exception { this.converter = new JsonViewMessageConverter(mapper.copy());
List<HandlerMethodReturnValueHandler> handlers = new ArrayList<>(adapter.getReturnValueHandlers()); }
adapter.setMessageConverters(Collections.<HttpMessageConverter<?>>singletonList(converter));
decorateHandlers(handlers);
adapter.setReturnValueHandlers(handlers);
}
private void decorateHandlers(List<HandlerMethodReturnValueHandler> handlers) { @Override
List<HttpMessageConverter<?>> converters = new ArrayList<>(adapter.getMessageConverters()); public void afterPropertiesSet() {
converters.add(converter); List<HandlerMethodReturnValueHandler> handlers = new ArrayList<>(adapter.getReturnValueHandlers());
for(HandlerMethodReturnValueHandler handler : handlers) { adapter.setMessageConverters(Collections.singletonList(converter));
int index = handlers.indexOf(handler); decorateHandlers(handlers);
if(handler instanceof HttpEntityMethodProcessor) { adapter.setReturnValueHandlers(handlers);
handlers.set(index, new JsonViewHttpEntityMethodProcessor(converters)); }
} else if(handler instanceof RequestResponseBodyMethodProcessor) {
handlers.set(index, new JsonViewReturnValueHandler(converters));
break;
}
}
}
private void decorateHandlers(List<HandlerMethodReturnValueHandler> handlers) {
List<HttpMessageConverter<?>> converters = new ArrayList<>(adapter.getMessageConverters());
converters.add(converter);
for (HandlerMethodReturnValueHandler handler : handlers) {
int index = handlers.indexOf(handler);
if (handler instanceof HttpEntityMethodProcessor) {
handlers.set(index, new JsonViewHttpEntityMethodProcessor(converters));
} else if (handler instanceof RequestResponseBodyMethodProcessor) {
handlers.set(index, new JsonViewReturnValueHandler(converters));
break;
}
}
}
} }

View File

@ -6,5 +6,5 @@
http://www.springframework.org/schema/security http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd"> http://www.springframework.org/schema/security/spring-security.xsd">
<!-- implmentasi nya by anotasi di com.jasamedika.medifirst2000.security.SpringSecurityCOnfig --> <!-- implmentasi nya by anotasi di com.jasamedika.medifirst2000.security.SpringSecurityConfig -->
</beans:beans> </beans:beans>

View File

@ -7,24 +7,25 @@
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<context:component-scan base-package="com.jasamedika.medifirst2000.controller" /> <context:component-scan base-package="com.jasamedika.medifirst2000.controller" />
<!-- Configures interceptor to all controller with annotation @AppPermission --> <!-- Configures interceptor to all controller with annotation @AppPermission -->
<mvc:interceptors> <mvc:interceptors>
<bean class="com.jasamedika.medifirst2000.interceptor.AppInterceptor" /> <bean class="com.jasamedika.medifirst2000.interceptor.AppInterceptor" />
</mvc:interceptors> </mvc:interceptors>
<!-- Configures the @Controller programming model --> <!-- Configures the @Controller programming model -->
<mvc:annotation-driven> <mvc:annotation-driven>
<mvc:argument-resolvers> <mvc:argument-resolvers>
<bean class="org.springframework.data.web.PageableArgumentResolver" /> <bean class="org.springframework.data.web.PageableArgumentResolver" />
<bean class="net.kaczmarzyk.spring.data.jpa.web.SpecificationArgumentResolver"/> <bean
<ref bean="customArgumentResolver" /> class="net.kaczmarzyk.spring.data.jpa.web.SpecificationArgumentResolver" />
<ref bean="customArgumentResolver" />
</mvc:argument-resolvers> </mvc:argument-resolvers>
</mvc:annotation-driven> </mvc:annotation-driven>
<bean id="customArgumentResolver" class="net.kaczmarzyk.spring.data.jpa.web.SpecificationArgumentResolver"/> <bean id="customArgumentResolver"
class="net.kaczmarzyk.spring.data.jpa.web.SpecificationArgumentResolver" />
<mvc:default-servlet-handler /> <mvc:default-servlet-handler />
@ -38,23 +39,21 @@
class="com.jasamedika.medifirst2000.util.rest.JacksonConfiguration"> class="com.jasamedika.medifirst2000.util.rest.JacksonConfiguration">
<constructor-arg ref="mapper" /> <constructor-arg ref="mapper" />
</bean> </bean>
<!-- <bean id="jsonViewSupport" class="com.monitorjbl.json.JsonViewSupportFactoryBean">
<constructor-arg ref="mapper" />
</bean> -->
<bean id="mapper" class="com.fasterxml.jackson.databind.ObjectMapper" /> <bean id="mapper" class="com.fasterxml.jackson.databind.ObjectMapper" />
<bean id="jsonMessageConverter" <bean id="jsonMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" /> class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
<bean id="xmlMessageConverter" <bean id="xmlMessageConverter"
class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter" /> class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter" />
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters"> <property name="messageConverters">
<list> <list>
<ref bean="jsonMessageConverter"/> <ref bean="jsonMessageConverter" />
<ref bean="xmlMessageConverter"/> <ref bean="xmlMessageConverter" />
</list> </list>
</property> </property>
</bean> </bean>
@ -64,12 +63,12 @@
class="com.mangofactory.swagger.configuration.DocumentationConfig" /> class="com.mangofactory.swagger.configuration.DocumentationConfig" />
<context:property-placeholder location="classpath:swagger.properties" /> <context:property-placeholder location="classpath:swagger.properties" />
<bean id="jasperViewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property name="basename" value="views"/>
<property name="order" value="0"/>
</bean>
<aop:aspectj-autoproxy /> <bean id="jasperViewResolver"
class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property name="basename" value="views" />
<property name="order" value="0" />
</bean>
<aop:aspectj-autoproxy />
</beans> </beans>