Merge branch 'master' into dev-deploy
This commit is contained in:
commit
0a02ff5dfa
@ -19,10 +19,10 @@
|
||||
<module>../jasamedika-it</module>
|
||||
<module>../jasamedika-k3kl</module>
|
||||
<module>../jasamedika-laundry</module>
|
||||
<module>../jasamedika-pelayanan</module>
|
||||
<module>../jasamedika-reporting</module>
|
||||
<module>../jasamedika-sdm</module>
|
||||
<module>../jasamedika-web</module>
|
||||
<module>../jasamedika-pelayanan</module>
|
||||
</modules>
|
||||
<!-- Default Properties -->
|
||||
<properties>
|
||||
@ -65,7 +65,7 @@
|
||||
|
||||
<servlet.version>3.0.1</servlet.version>
|
||||
<commons-fileupload.version>1.3</commons-fileupload.version>
|
||||
<commons-io.version>2.4</commons-io.version>
|
||||
<commons-io.version>2.15.1</commons-io.version>
|
||||
<guava.version>10.0.1</guava.version>
|
||||
|
||||
<liquibase-maven-plugin.version>2.0.5</liquibase-maven-plugin.version>
|
||||
|
||||
@ -115,7 +115,6 @@
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>${commons-io.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- For testing REST -->
|
||||
|
||||
@ -1,12 +1,7 @@
|
||||
package com.jasamedika.medifirst2000.controller;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.jasamedika.medifirst2000.vo.custom.BridgeEKlaimVO;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import org.springframework.http.MediaType;
|
||||
@ -15,7 +10,12 @@ 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.vo.custom.BridgeEKlaimVO;
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.util.ArrayList;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/e-klaim")
|
||||
@ -37,7 +37,7 @@ public class BridgingEKlaimController {
|
||||
os.close();
|
||||
|
||||
InputStream in = new BufferedInputStream(con.getInputStream());
|
||||
String result = org.apache.commons.io.IOUtils.toString(in, "UTF-8");
|
||||
String result = IOUtils.toString(in, "UTF-8");
|
||||
ArrayList<BridgeEKlaimVO> ret = new ArrayList<BridgeEKlaimVO>();
|
||||
try {
|
||||
|
||||
@ -137,7 +137,7 @@ public class BridgingEKlaimController {
|
||||
os.close();
|
||||
|
||||
InputStream in = new BufferedInputStream(con.getInputStream());
|
||||
String result = org.apache.commons.io.IOUtils.toString(in, "UTF-8");
|
||||
String result = IOUtils.toString(in, "UTF-8");
|
||||
ArrayList<BridgeEKlaimVO> ret = new ArrayList<BridgeEKlaimVO>();
|
||||
try {
|
||||
|
||||
|
||||
@ -1,176 +1,32 @@
|
||||
package com.jasamedika.medifirst2000.interceptor;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.web.method.HandlerMethod;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.MapLoginUserToRuanganDao;
|
||||
import com.jasamedika.medifirst2000.dao.MapObjekModulToKelompokUserDao;
|
||||
import com.jasamedika.medifirst2000.entities.KelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.LoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToKelompokUser;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
/**
|
||||
* Interceptor class for All annotation method controller @AppPermission
|
||||
*
|
||||
*
|
||||
* @author Roberto
|
||||
*/
|
||||
public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
private final Logger LOG = LoggerFactory.getLogger(AppInterceptor.class);
|
||||
|
||||
@Autowired
|
||||
private TokenAuthenticationService tokenAuthenticationService;
|
||||
|
||||
@Autowired
|
||||
private LoginUserDao loginUserDao;
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToKelompokUserDao mapObjekModulToKelompokUserDao;
|
||||
|
||||
// @Autowired
|
||||
// private MapLoginUserToRuanganDao mapLoginUserToRuanganDao;
|
||||
|
||||
public AppInterceptor() {}
|
||||
|
||||
/*
|
||||
* return true untuk valid permission request ke controller method
|
||||
* */
|
||||
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request,
|
||||
HttpServletResponse response, Object handler) throws Exception {
|
||||
try {
|
||||
HandlerMethod hm = (HandlerMethod) handler;
|
||||
Method method = hm.getMethod();
|
||||
|
||||
if (method.isAnnotationPresent(AppPermission.class)) {/*
|
||||
String moduleName = request.getHeader(Constants.HttpHeader.MODULE) == null ? "" : request.getHeader(Constants.HttpHeader.MODULE);
|
||||
String formName = request.getHeader(Constants.HttpHeader.FORM) == null ? "" : request.getHeader(Constants.HttpHeader.FORM);
|
||||
String action = request.getHeader(Constants.HttpHeader.ACTION) == null ? "" : request.getHeader(Constants.HttpHeader.ACTION);
|
||||
|
||||
String methodName = method.getAnnotation(AppPermission.class)
|
||||
.value();
|
||||
Authentication authentication = tokenAuthenticationService
|
||||
.getAuthentication(request);
|
||||
String namaUser = authentication.getName();
|
||||
List<LoginUser> loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
if (loginUser.isEmpty()) {
|
||||
// untuk testing false
|
||||
// response.addHeader("Access-Control-Expose-Headers", "content-type");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "User "
|
||||
+ namaUser + " can not access Controller " + methodName);
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
return false;
|
||||
}
|
||||
|
||||
// get user login
|
||||
if (!loginUser.isEmpty()) {
|
||||
LoginUser user = loginUser.get(0);
|
||||
|
||||
// get application modules
|
||||
KelompokUser role = user.getKelompokUser();
|
||||
boolean result = false;
|
||||
if (role != null) {
|
||||
List<MapObjekModulToKelompokUser> objekModules = mapObjekModulToKelompokUserDao.findByKelompokUser(role.getId());
|
||||
if (!objekModules.isEmpty()) {
|
||||
// matching current module to user's module
|
||||
for (MapObjekModulToKelompokUser module : objekModules) {
|
||||
if (moduleName.equals(module.getReportDisplay())) {
|
||||
LOG.info("Module match");
|
||||
|
||||
// matching user's action
|
||||
switch (action.toLowerCase()) {
|
||||
case "save":
|
||||
case "simpan":
|
||||
if (module.getSimpan())
|
||||
result = true;
|
||||
break;
|
||||
case "edit":
|
||||
case "ubah":
|
||||
if (module.getEdit())
|
||||
result = true;
|
||||
break;
|
||||
case "print":
|
||||
case "cetak":
|
||||
if (module.getCetak())
|
||||
result = true;
|
||||
break;
|
||||
case "delete":
|
||||
case "hapus":
|
||||
if (module.getHapus())
|
||||
result = true;
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (result) {
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
return true;
|
||||
} else {
|
||||
response.addHeader("RequireSupervisor", "true");
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
return false;
|
||||
}
|
||||
|
||||
} else {
|
||||
LOG.info("User {} has no access to module application");
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "User has no access to module application");
|
||||
return false;
|
||||
}
|
||||
|
||||
} else {
|
||||
LOG.info("User {} has no role to gain access restricted area", namaUser);
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "User has no role to gain access restricted area");
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
LOG.info("User {} is unauthorized", namaUser);
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "User is unauthorized");
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("Not Found "+request.getRequestURL());
|
||||
}
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||
HandlerMethod hm = (HandlerMethod) handler;
|
||||
Method method = hm.getMethod();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request,
|
||||
HttpServletResponse response, Object obj, Exception ex)
|
||||
throws Exception {
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response,
|
||||
Object obj, ModelAndView mav) throws Exception {
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) {
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
|
||||
|
||||
<bean id="tokenAuthenticationService" class="com.jasamedika.medifirst2000.security.service.TokenAuthenticationService" />
|
||||
|
||||
<!-- Configures interceptor -->
|
||||
<mvc:interceptors>
|
||||
<bean class="com.jasamedika.medifirst2000.interceptor.AppInterceptor" />
|
||||
</mvc:interceptors>
|
||||
|
||||
</beans>
|
||||
@ -1,81 +1,124 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.IndikatorKinerja;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.IndikatorKinerja;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Repository("indikatorKinerjaDao")
|
||||
public interface IndikatorKinerjaDao extends PagingAndSortingRepository<IndikatorKinerja, Integer> {
|
||||
|
||||
String strAllIndikatorKinerja = "select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId,"
|
||||
@Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId,"
|
||||
+ "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' "
|
||||
+ "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator,"
|
||||
+ "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId,"
|
||||
+ "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) "
|
||||
+ "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true";
|
||||
|
||||
String jenisIndikator = " and ik.jenisIndikator = :jenisIndikatorId";
|
||||
|
||||
String namaIndikator = " and lower(ik.namaIndikator) like %:namaIndikator%";
|
||||
|
||||
String statusVerifikasi = " and ik.statusVerifikasi = :statusVerifikasi";
|
||||
|
||||
String sort = " order by ik.jenisIndikator,ik.namaIndikator";
|
||||
|
||||
@Query(strAllIndikatorKinerja + sort)
|
||||
+ "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true"
|
||||
+ " order by ik.jenisIndikator,ik.namaIndikator")
|
||||
List<Map<String, Object>> findAllIndikatorKinerja();
|
||||
|
||||
@Query(strAllIndikatorKinerja + jenisIndikator + sort)
|
||||
@Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId,"
|
||||
+ "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' "
|
||||
+ "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator,"
|
||||
+ "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId,"
|
||||
+ "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) "
|
||||
+ "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true"
|
||||
+ " and ik.jenisIndikator = :jenisIndikatorId" + " order by ik.jenisIndikator,ik.namaIndikator")
|
||||
List<Map<String, Object>> findAllIndikatorKinerja(@Param("jenisIndikatorId") Integer idJenisIndikator);
|
||||
|
||||
@Query(strAllIndikatorKinerja + namaIndikator + sort)
|
||||
@Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId,"
|
||||
+ "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' "
|
||||
+ "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator,"
|
||||
+ "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId,"
|
||||
+ "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) "
|
||||
+ "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true"
|
||||
+ " and lower(ik.namaIndikator) like %:namaIndikator%" + " order by ik.jenisIndikator,ik.namaIndikator")
|
||||
List<Map<String, Object>> findAllIndikatorKinerja(@Param("namaIndikator") String namaIndikator);
|
||||
|
||||
@Query(strAllIndikatorKinerja + statusVerifikasi + sort)
|
||||
@Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId,"
|
||||
+ "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' "
|
||||
+ "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator,"
|
||||
+ "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId,"
|
||||
+ "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) "
|
||||
+ "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true"
|
||||
+ " and ik.statusVerifikasi = :statusVerifikasi" + " order by ik.jenisIndikator,ik.namaIndikator")
|
||||
List<Map<String, Object>> findAllIndikatorKinerja(@Param("statusVerifikasi") Boolean statusVerifikasi);
|
||||
|
||||
@Query(strAllIndikatorKinerja + jenisIndikator + namaIndikator + sort)
|
||||
@Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId,"
|
||||
+ "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' "
|
||||
+ "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator,"
|
||||
+ "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId,"
|
||||
+ "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) "
|
||||
+ "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true"
|
||||
+ " and ik.jenisIndikator = :jenisIndikatorId" + " and lower(ik.namaIndikator) like %:namaIndikator%"
|
||||
+ " order by ik.jenisIndikator,ik.namaIndikator")
|
||||
List<Map<String, Object>> findAllIndikatorKinerja(@Param("jenisIndikatorId") Integer idJenisIndikator,
|
||||
@Param("namaIndikator") String namaIndikator);
|
||||
|
||||
@Query(strAllIndikatorKinerja + jenisIndikator + statusVerifikasi + sort)
|
||||
@Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId,"
|
||||
+ "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' "
|
||||
+ "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator,"
|
||||
+ "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId,"
|
||||
+ "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) "
|
||||
+ "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true"
|
||||
+ " and ik.jenisIndikator = :jenisIndikatorId" + " and ik.statusVerifikasi = :statusVerifikasi"
|
||||
+ " order by ik.jenisIndikator,ik.namaIndikator")
|
||||
List<Map<String, Object>> findAllIndikatorKinerja(@Param("jenisIndikatorId") Integer idJenisIndikator,
|
||||
@Param("statusVerifikasi") Boolean statusVerifikasi);
|
||||
|
||||
@Query(strAllIndikatorKinerja + namaIndikator + statusVerifikasi + sort)
|
||||
@Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId,"
|
||||
+ "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' "
|
||||
+ "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator,"
|
||||
+ "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId,"
|
||||
+ "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) "
|
||||
+ "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true"
|
||||
+ " and lower(ik.namaIndikator) like %:namaIndikator%" + " and ik.statusVerifikasi = :statusVerifikasi"
|
||||
+ " order by ik.jenisIndikator,ik.namaIndikator")
|
||||
List<Map<String, Object>> findAllIndikatorKinerja(@Param("namaIndikator") String namaIndikator,
|
||||
@Param("statusVerifikasi") Boolean statusVerifikasi);
|
||||
|
||||
@Query(strAllIndikatorKinerja + jenisIndikator + namaIndikator + statusVerifikasi + sort)
|
||||
@Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId,"
|
||||
+ "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' "
|
||||
+ "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator,"
|
||||
+ "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId,"
|
||||
+ "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) "
|
||||
+ "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true"
|
||||
+ " and ik.jenisIndikator = :jenisIndikatorId" + " and lower(ik.namaIndikator) like %:namaIndikator%"
|
||||
+ " and ik.statusVerifikasi = :statusVerifikasi" + " order by ik.jenisIndikator,ik.namaIndikator")
|
||||
List<Map<String, Object>> findAllIndikatorKinerja(@Param("jenisIndikatorId") Integer idJenisIndikator,
|
||||
@Param("namaIndikator") String namaIndikator, @Param("statusVerifikasi") Boolean statusVerifikasi);
|
||||
|
||||
String strCekDupIndikator = "select ik.id " + "from IndikatorKinerja ik " + "where ik.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(ik.namaIndikator,:patternText,'','g')) = :namaIndikator";
|
||||
|
||||
String idIndikatorLama = " and ik.id <> :indikatorId";
|
||||
|
||||
@Query(strCekDupIndikator)
|
||||
@Query("select ik.id " + "from IndikatorKinerja ik " + "where ik.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(ik.namaIndikator,:patternText,'','g')) = :namaIndikator")
|
||||
List<Integer> findDupByName(@Param("patternText") String patternText, @Param("namaIndikator") String namaIndikator);
|
||||
|
||||
@Query(strCekDupIndikator + idIndikatorLama)
|
||||
@Query("select ik.id " + "from IndikatorKinerja ik " + "where ik.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(ik.namaIndikator,:patternText,'','g')) = :namaIndikator"
|
||||
+ " and ik.id <> :indikatorId")
|
||||
List<Integer> findDupByName(@Param("patternText") String patternText, @Param("indikatorId") Integer idIndikator,
|
||||
@Param("namaIndikator") String namaIndikator);
|
||||
|
||||
@Query("select new Map(ik.id as id,ik.namaIndikator as namaIndikator) " + "from IndikatorKinerja ik "
|
||||
+ "where ik.statusEnabled is true " + "and ik.id in (:listIdIndikator)")
|
||||
List<Map<String, Object>> findIndikator(@Param("listIdIndikator") List<Integer> listIdIndikator);
|
||||
|
||||
@Query("select ik from IndikatorKinerja ik " + "where ik.statusEnabled is true "
|
||||
+ "and ik.id in (:listIdIndikator)")
|
||||
List<IndikatorKinerja> findIndikatorById(@Param("listIdIndikator") List<Integer> listIdIndikator);
|
||||
|
||||
}
|
||||
|
||||
@ -1,14 +1,13 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.Jabatan;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.Jabatan;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Repository class for Jabatan
|
||||
@ -35,17 +34,14 @@ public interface JabatanDao extends PagingAndSortingRepository<Jabatan, Integer>
|
||||
@Query("SELECT model from Jabatan model where model.jenisJabatanId = :jenisJabatanId ")
|
||||
List<Jabatan> getJabatanStruktural(@Param("jenisJabatanId") Integer jenisJabatanId);
|
||||
|
||||
String strJabatanByJenis = "SELECT new Map(jb.id as idJabatan, jb.namaJabatan as namaJabatan) from Jabatan jb "
|
||||
+ "where jb.statusEnabled is true " + "and jb.jenisJabatanId = :jenisJabatanId";
|
||||
|
||||
String byUnitKerja = " and jb.unitKerjaId = :unitKerjaId";
|
||||
|
||||
String sortNamaJabatan = " order by jb.namaJabatan";
|
||||
|
||||
@Query(strJabatanByJenis + sortNamaJabatan)
|
||||
@Query("SELECT new Map(jb.id as idJabatan, jb.namaJabatan as namaJabatan) from Jabatan jb "
|
||||
+ "where jb.statusEnabled is true " + "and jb.jenisJabatanId = :jenisJabatanId"
|
||||
+ " order by jb.namaJabatan")
|
||||
List<Map<String, Object>> getJabatanByJenisJabatan(@Param("jenisJabatanId") Integer jenisJabatanId);
|
||||
|
||||
@Query(strJabatanByJenis + byUnitKerja + sortNamaJabatan)
|
||||
@Query("SELECT new Map(jb.id as idJabatan, jb.namaJabatan as namaJabatan) from Jabatan jb "
|
||||
+ "where jb.statusEnabled is true " + "and jb.jenisJabatanId = :jenisJabatanId"
|
||||
+ " and jb.unitKerjaId = :unitKerjaId" + " order by jb.namaJabatan")
|
||||
List<Map<String, Object>> findModelJabatanByJenisUnit(@Param("jenisJabatanId") Integer jenisJabatanId,
|
||||
@Param("unitKerjaId") Integer idUnitKerja);
|
||||
|
||||
@ -54,33 +50,37 @@ public interface JabatanDao extends PagingAndSortingRepository<Jabatan, Integer>
|
||||
+ "and lower(jab.namaJabatan) not like ('plh%')")
|
||||
List<Map<String, Object>> getListJabatanFungsionalStruktural();
|
||||
|
||||
String strDuplikatJabatan = "select new Map(jb.id as id, jb.namaJabatan as namaJabatan) "
|
||||
@Query("select new Map(jb.id as id, jb.namaJabatan as namaJabatan) "
|
||||
+ "from Jabatan jb where jb.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(jb.namaJabatan,'[^0-9a-zA-Z]+', '', 'g')) = :namaJabatan "
|
||||
+ "and jb.jenisJabatanId = :jenisJabatanId";
|
||||
|
||||
String unitKerjaId = " and jb.unitKerjaId = :unitKerjaId";
|
||||
|
||||
String notJabatanId = " and jb.id <> :jabatanId";
|
||||
|
||||
@Query(strDuplikatJabatan)
|
||||
+ "and jb.jenisJabatanId = :jenisJabatanId")
|
||||
List<Map<String, Object>> checkNamaJabatan(@Param("namaJabatan") String namaJabatan,
|
||||
@Param("jenisJabatanId") Integer jenisJabatanId);
|
||||
|
||||
@Query(strDuplikatJabatan + notJabatanId)
|
||||
@Query("select new Map(jb.id as id, jb.namaJabatan as namaJabatan) "
|
||||
+ "from Jabatan jb where jb.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(jb.namaJabatan,'[^0-9a-zA-Z]+', '', 'g')) = :namaJabatan "
|
||||
+ "and jb.jenisJabatanId = :jenisJabatanId" + " and jb.id <> :jabatanId")
|
||||
List<Map<String, Object>> checkNamaJabatan(@Param("jabatanId") Integer idJabatan,
|
||||
@Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer idJenisJabatan);
|
||||
|
||||
@Query(strDuplikatJabatan + unitKerjaId)
|
||||
@Query("select new Map(jb.id as id, jb.namaJabatan as namaJabatan) "
|
||||
+ "from Jabatan jb where jb.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(jb.namaJabatan,'[^0-9a-zA-Z]+', '', 'g')) = :namaJabatan "
|
||||
+ "and jb.jenisJabatanId = :jenisJabatanId" + " and jb.unitKerjaId = :unitKerjaId")
|
||||
List<Map<String, Object>> checkNamaJabatan(@Param("namaJabatan") String namaJabatan,
|
||||
@Param("jenisJabatanId") Integer idJenisJabatan, @Param("unitKerjaId") Integer idUnitKerja);
|
||||
|
||||
@Query(strDuplikatJabatan + notJabatanId + unitKerjaId)
|
||||
@Query("select new Map(jb.id as id, jb.namaJabatan as namaJabatan) "
|
||||
+ "from Jabatan jb where jb.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(jb.namaJabatan,'[^0-9a-zA-Z]+', '', 'g')) = :namaJabatan "
|
||||
+ "and jb.jenisJabatanId = :jenisJabatanId" + " and jb.id <> :jabatanId"
|
||||
+ " and jb.unitKerjaId = :unitKerjaId")
|
||||
List<Map<String, Object>> checkNamaJabatan(@Param("jabatanId") Integer idJabatan,
|
||||
@Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer idJenisJabatan,
|
||||
@Param("unitKerjaId") Integer idUnitKerja);
|
||||
|
||||
String strJabatan = "select new Map(jb.id as id,jb.namaJabatan as namaJabatan,"
|
||||
@Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan,"
|
||||
+ "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi,"
|
||||
+ "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja,"
|
||||
+ "el.id as eselonId,el.eselon as eselon,"
|
||||
@ -89,41 +89,105 @@ public interface JabatanDao extends PagingAndSortingRepository<Jabatan, Integer>
|
||||
+ "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) "
|
||||
+ "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) "
|
||||
+ "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) "
|
||||
+ "where jb.statusEnabled is true " + "and jj.statusEnabled is true ";
|
||||
|
||||
String namaJabatan = " and lower(jb.namaJabatan) like %:namaJabatan%";
|
||||
|
||||
String jenisJabatan = " and jj.id = :jenisJabatanId";
|
||||
|
||||
String unitKerja = " and uk.id = :unitKerjaId";
|
||||
|
||||
String sortMasterJabatan = " order by jb.namaJabatan, uk.name, jj.jenisJabatan";
|
||||
|
||||
@Query(strJabatan + sortMasterJabatan)
|
||||
+ "where jb.statusEnabled is true " + "and jj.statusEnabled is true "
|
||||
+ " order by jb.namaJabatan, uk.name, jj.jenisJabatan")
|
||||
List<Map<String, Object>> findJabatan();
|
||||
|
||||
@Query(strJabatan + namaJabatan + sortMasterJabatan)
|
||||
@Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan,"
|
||||
+ "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi,"
|
||||
+ "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja,"
|
||||
+ "el.id as eselonId,el.eselon as eselon,"
|
||||
+ "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb "
|
||||
+ "inner join jb.jenisJabatan jj "
|
||||
+ "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) "
|
||||
+ "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) "
|
||||
+ "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) "
|
||||
+ "where jb.statusEnabled is true " + "and jj.statusEnabled is true "
|
||||
+ " and lower(jb.namaJabatan) like %:namaJabatan%" + " order by jb.namaJabatan, uk.name, jj.jenisJabatan")
|
||||
List<Map<String, Object>> findJabatanByNama(@Param("namaJabatan") String namaJabatan);
|
||||
|
||||
@Query(strJabatan + jenisJabatan + sortMasterJabatan)
|
||||
@Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan,"
|
||||
+ "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi,"
|
||||
+ "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja,"
|
||||
+ "el.id as eselonId,el.eselon as eselon,"
|
||||
+ "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb "
|
||||
+ "inner join jb.jenisJabatan jj "
|
||||
+ "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) "
|
||||
+ "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) "
|
||||
+ "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) "
|
||||
+ "where jb.statusEnabled is true " + "and jj.statusEnabled is true " + " and jj.id = :jenisJabatanId"
|
||||
+ " order by jb.namaJabatan, uk.name, jj.jenisJabatan")
|
||||
List<Map<String, Object>> findJabatanByJenis(@Param("jenisJabatanId") Integer idJenisJabatan);
|
||||
|
||||
@Query(strJabatan + unitKerja + sortMasterJabatan)
|
||||
@Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan,"
|
||||
+ "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi,"
|
||||
+ "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja,"
|
||||
+ "el.id as eselonId,el.eselon as eselon,"
|
||||
+ "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb "
|
||||
+ "inner join jb.jenisJabatan jj "
|
||||
+ "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) "
|
||||
+ "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) "
|
||||
+ "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) "
|
||||
+ "where jb.statusEnabled is true " + "and jj.statusEnabled is true " + " and uk.id = :unitKerjaId"
|
||||
+ " order by jb.namaJabatan, uk.name, jj.jenisJabatan")
|
||||
List<Map<String, Object>> findJabatanByUnit(@Param("unitKerjaId") Integer idUnitKerja);
|
||||
|
||||
@Query(strJabatan + namaJabatan + jenisJabatan + sortMasterJabatan)
|
||||
@Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan,"
|
||||
+ "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi,"
|
||||
+ "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja,"
|
||||
+ "el.id as eselonId,el.eselon as eselon,"
|
||||
+ "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb "
|
||||
+ "inner join jb.jenisJabatan jj "
|
||||
+ "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) "
|
||||
+ "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) "
|
||||
+ "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) "
|
||||
+ "where jb.statusEnabled is true " + "and jj.statusEnabled is true "
|
||||
+ " and lower(jb.namaJabatan) like %:namaJabatan%" + " and jj.id = :jenisJabatanId"
|
||||
+ " order by jb.namaJabatan, uk.name, jj.jenisJabatan")
|
||||
List<Map<String, Object>> findJabatanByNamaJenis(@Param("namaJabatan") String namaJabatan,
|
||||
@Param("jenisJabatanId") Integer idJenisJabatan);
|
||||
|
||||
@Query(strJabatan + namaJabatan + unitKerja + sortMasterJabatan)
|
||||
@Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan,"
|
||||
+ "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi,"
|
||||
+ "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja,"
|
||||
+ "el.id as eselonId,el.eselon as eselon,"
|
||||
+ "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb "
|
||||
+ "inner join jb.jenisJabatan jj "
|
||||
+ "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) "
|
||||
+ "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) "
|
||||
+ "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) "
|
||||
+ "where jb.statusEnabled is true " + "and jj.statusEnabled is true "
|
||||
+ " and lower(jb.namaJabatan) like %:namaJabatan%" + " and uk.id = :unitKerjaId"
|
||||
+ " order by jb.namaJabatan, uk.name, jj.jenisJabatan")
|
||||
List<Map<String, Object>> findJabatanByNamaUnit(@Param("namaJabatan") String namaJabatan,
|
||||
@Param("unitKerjaId") Integer idUnitKerja);
|
||||
|
||||
@Query(strJabatan + jenisJabatan + unitKerja + sortMasterJabatan)
|
||||
@Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan,"
|
||||
+ "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi,"
|
||||
+ "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja,"
|
||||
+ "el.id as eselonId,el.eselon as eselon,"
|
||||
+ "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb "
|
||||
+ "inner join jb.jenisJabatan jj "
|
||||
+ "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) "
|
||||
+ "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) "
|
||||
+ "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) "
|
||||
+ "where jb.statusEnabled is true " + "and jj.statusEnabled is true " + " and jj.id = :jenisJabatanId"
|
||||
+ " and uk.id = :unitKerjaId" + " order by jb.namaJabatan, uk.name, jj.jenisJabatan")
|
||||
List<Map<String, Object>> findJabatanByJenisUnit(@Param("jenisJabatanId") Integer idJenisJabatan,
|
||||
@Param("unitKerjaId") Integer idUnitKerja);
|
||||
|
||||
@Query(strJabatan + namaJabatan + jenisJabatan + unitKerja + sortMasterJabatan)
|
||||
@Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan,"
|
||||
+ "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi,"
|
||||
+ "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja,"
|
||||
+ "el.id as eselonId,el.eselon as eselon,"
|
||||
+ "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb "
|
||||
+ "inner join jb.jenisJabatan jj "
|
||||
+ "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) "
|
||||
+ "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) "
|
||||
+ "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) "
|
||||
+ "where jb.statusEnabled is true " + "and jj.statusEnabled is true "
|
||||
+ " and lower(jb.namaJabatan) like %:namaJabatan%" + " and jj.id = :jenisJabatanId"
|
||||
+ " and uk.id = :unitKerjaId" + " order by jb.namaJabatan, uk.name, jj.jenisJabatan")
|
||||
List<Map<String, Object>> findJabatanByNamaJenisUnit(@Param("namaJabatan") String namaJabatan,
|
||||
@Param("jenisJabatanId") Integer idJenisJabatan, @Param("unitKerjaId") Integer idUnitKerja);
|
||||
|
||||
|
||||
@ -1,59 +1,65 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.ProdukFarmakologi;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.ProdukFarmakologi;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Repository("produkFarmakologiDao")
|
||||
public interface ProdukFarmakologiDao extends PagingAndSortingRepository<ProdukFarmakologi, Integer> {
|
||||
|
||||
String allProduk = "select new Map(prf.id as produkId,prf.namaProduk as namaProduk,"
|
||||
@Query("select new Map(prf.id as produkId,prf.namaProduk as namaProduk,"
|
||||
+ "prf.kdProduk as kdProduk,(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' "
|
||||
+ "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' "
|
||||
+ "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as kodeProduk) " + "from ProdukFarmakologi prf "
|
||||
+ "where prf.statusEnabled is true";
|
||||
+ "where prf.statusEnabled is true" + " order by prf.namaProduk, prf.kdProduk asc")
|
||||
List<Map<String, Object>> findProdukFarmakologi();
|
||||
|
||||
String namaProduk = " and lower(prf.namaProduk) like %:namaProduk%";
|
||||
@Query("select new Map(prf.id as produkId,prf.namaProduk as namaProduk,"
|
||||
+ "prf.kdProduk as kdProduk,(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' "
|
||||
+ "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' "
|
||||
+ "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as kodeProduk) " + "from ProdukFarmakologi prf "
|
||||
+ "where prf.statusEnabled is true" + " and lower(prf.namaProduk) like %:namaProduk%"
|
||||
+ " order by prf.namaProduk, prf.kdProduk asc")
|
||||
List<Map<String, Object>> findProdukFarmakologiByProduk(@Param("namaProduk") String namaProduk);
|
||||
|
||||
String kdProduk = " and prf.kdProduk = :kdProduk";
|
||||
@Query("select new Map(prf.id as produkId,prf.namaProduk as namaProduk,"
|
||||
+ "prf.kdProduk as kdProduk,(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' "
|
||||
+ "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' "
|
||||
+ "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as kodeProduk) " + "from ProdukFarmakologi prf "
|
||||
+ "where prf.statusEnabled is true" + " and prf.kdProduk = :kdProduk"
|
||||
+ " order by prf.namaProduk, prf.kdProduk asc")
|
||||
List<Map<String, Object>> findProdukFarmakologiByKdProduk(@Param("kdProduk") Short kdProduk);
|
||||
|
||||
String sortAllProduk = " order by prf.namaProduk, prf.kdProduk asc";
|
||||
|
||||
String listIdProduk = " and prf.id in (:listProdukId)";
|
||||
|
||||
@Query(allProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukFarmakologi();
|
||||
|
||||
@Query(allProduk + namaProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukFarmakologiByProduk(@Param("namaProduk") String namaProduk);
|
||||
|
||||
@Query(allProduk + kdProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukFarmakologiByKdProduk(@Param("kdProduk") Short kdProduk);
|
||||
|
||||
@Query(allProduk + namaProduk + kdProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukFarmakologiByProduk(@Param("namaProduk") String namaProduk,
|
||||
@Query("select new Map(prf.id as produkId,prf.namaProduk as namaProduk,"
|
||||
+ "prf.kdProduk as kdProduk,(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' "
|
||||
+ "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' "
|
||||
+ "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as kodeProduk) " + "from ProdukFarmakologi prf "
|
||||
+ "where prf.statusEnabled is true" + " and lower(prf.namaProduk) like %:namaProduk%"
|
||||
+ " and prf.kdProduk = :kdProduk" + " order by prf.namaProduk, prf.kdProduk asc")
|
||||
List<Map<String, Object>> findProdukFarmakologiByProduk(@Param("namaProduk") String namaProduk,
|
||||
@Param("kdProduk") Short kdProduk);
|
||||
|
||||
@Query(allProduk + listIdProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukFarmakologi(@Param("listProdukId") List<Integer> listIdProduk);
|
||||
@Query("select new Map(prf.id as produkId,prf.namaProduk as namaProduk,"
|
||||
+ "prf.kdProduk as kdProduk,(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' "
|
||||
+ "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' "
|
||||
+ "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as kodeProduk) " + "from ProdukFarmakologi prf "
|
||||
+ "where prf.statusEnabled is true" + " and prf.id in (:listProdukId)"
|
||||
+ " order by prf.namaProduk, prf.kdProduk asc")
|
||||
List<Map<String, Object>> findProdukFarmakologi(@Param("listProdukId") List<Integer> listIdProduk);
|
||||
|
||||
String dupCheck = "select prf.id from ProdukFarmakologi prf " + "where prf.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk";
|
||||
@Query("select prf.id from ProdukFarmakologi prf " + "where prf.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk")
|
||||
List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk);
|
||||
|
||||
String notIdProduk = " and prf.id <> :produkId";
|
||||
|
||||
@Query(dupCheck)
|
||||
public List<Integer> findDupProduk(@Param("patternText") String patternText,
|
||||
@Param("namaProduk") String namaProduk);
|
||||
|
||||
@Query(dupCheck + notIdProduk)
|
||||
public List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
|
||||
@Query("select prf.id from ProdukFarmakologi prf " + "where prf.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk"
|
||||
+ " and prf.id <> :produkId")
|
||||
List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
|
||||
@Param("produkId") Integer idProduk);
|
||||
|
||||
}
|
||||
|
||||
@ -1,14 +1,13 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.ProdukNakes;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.ProdukNakes;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
@ -17,65 +16,97 @@ import com.jasamedika.medifirst2000.entities.ProdukNakes;
|
||||
@Repository("produkNakesDao")
|
||||
public interface ProdukNakesDao extends PagingAndSortingRepository<ProdukNakes, Integer> {
|
||||
|
||||
String allProduk = "select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk,"
|
||||
@Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk,"
|
||||
+ "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn "
|
||||
+ "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true";
|
||||
+ "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true"
|
||||
+ " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc")
|
||||
List<Map<String, Object>> findProdukNakes();
|
||||
|
||||
String namaProduk = " and lower(prn.namaProduk) like %:namaProduk%";
|
||||
@Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk,"
|
||||
+ "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn "
|
||||
+ "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true"
|
||||
+ " and lower(prn.namaProduk) like %:namaProduk%"
|
||||
+ " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc")
|
||||
List<Map<String, Object>> findProdukNakesByProduk(@Param("namaProduk") String namaProduk);
|
||||
|
||||
String kdProduk = " and prn.kdProduk = :kdProduk";
|
||||
@Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk,"
|
||||
+ "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn "
|
||||
+ "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true"
|
||||
+ " and prn.kdProduk = :kdProduk" + " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc")
|
||||
List<Map<String, Object>> findProdukNakesByKdProduk(@Param("kdProduk") Short kdProduk);
|
||||
|
||||
String idProfesi = " and prn.profesiId = :profesiId";
|
||||
@Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk,"
|
||||
+ "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn "
|
||||
+ "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true"
|
||||
+ " and prn.profesiId = :profesiId" + " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc")
|
||||
List<Map<String, Object>> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi);
|
||||
|
||||
String sortAllProduk = " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc";
|
||||
|
||||
String listIdProduk = " and prn.id in (:listProdukId)";
|
||||
|
||||
@Query(allProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukNakes();
|
||||
|
||||
@Query(allProduk + namaProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukNakesByProduk(@Param("namaProduk") String namaProduk);
|
||||
|
||||
@Query(allProduk + kdProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukNakesByKdProduk(@Param("kdProduk") Short kdProduk);
|
||||
|
||||
@Query(allProduk + idProfesi + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi);
|
||||
|
||||
@Query(allProduk + idProfesi + namaProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi,
|
||||
@Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk,"
|
||||
+ "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn "
|
||||
+ "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true"
|
||||
+ " and prn.profesiId = :profesiId" + " and lower(prn.namaProduk) like %:namaProduk%"
|
||||
+ " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc")
|
||||
List<Map<String, Object>> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi,
|
||||
@Param("namaProduk") String namaProduk);
|
||||
|
||||
@Query(allProduk + idProfesi + kdProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi,
|
||||
@Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk,"
|
||||
+ "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn "
|
||||
+ "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true"
|
||||
+ " and prn.profesiId = :profesiId" + " and prn.kdProduk = :kdProduk"
|
||||
+ " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc")
|
||||
List<Map<String, Object>> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi,
|
||||
@Param("kdProduk") Short kdProduk);
|
||||
|
||||
@Query(allProduk + namaProduk + kdProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukNakesByProduk(@Param("namaProduk") String namaProduk,
|
||||
@Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk,"
|
||||
+ "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn "
|
||||
+ "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true"
|
||||
+ " and lower(prn.namaProduk) like %:namaProduk%" + " and prn.kdProduk = :kdProduk"
|
||||
+ " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc")
|
||||
List<Map<String, Object>> findProdukNakesByProduk(@Param("namaProduk") String namaProduk,
|
||||
@Param("kdProduk") Short kdProduk);
|
||||
|
||||
@Query(allProduk + namaProduk + idProfesi + kdProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukNakesByProfesi(@Param("namaProduk") String namaProduk,
|
||||
@Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk,"
|
||||
+ "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn "
|
||||
+ "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true"
|
||||
+ " and lower(prn.namaProduk) like %:namaProduk%" + " and prn.profesiId = :profesiId"
|
||||
+ " and prn.kdProduk = :kdProduk" + " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc")
|
||||
List<Map<String, Object>> findProdukNakesByProfesi(@Param("namaProduk") String namaProduk,
|
||||
@Param("profesiId") Integer idProfesi, @Param("kdProduk") Short kdProduk);
|
||||
|
||||
@Query(allProduk + listIdProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukNakes(@Param("listProdukId") List<Integer> listIdProduk);
|
||||
@Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk,"
|
||||
+ "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn "
|
||||
+ "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true"
|
||||
+ " and prn.id in (:listProdukId)" + " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc")
|
||||
List<Map<String, Object>> findProdukNakes(@Param("listProdukId") List<Integer> listIdProduk);
|
||||
|
||||
String dupCheck = "select prn.id from ProdukNakes prn " + "where prn.statusEnabled is true "
|
||||
@Query("select prn.id from ProdukNakes prn " + "where prn.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prn.namaProduk,:patternText,'','g')) = :namaProduk "
|
||||
+ "and prn.profesiId = :profesiId";
|
||||
|
||||
String notIdProduk = " and prn.id <> :produkId";
|
||||
|
||||
@Query(dupCheck)
|
||||
public List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
|
||||
+ "and prn.profesiId = :profesiId")
|
||||
List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
|
||||
@Param("profesiId") Integer idProfesi);
|
||||
|
||||
@Query(dupCheck + notIdProduk)
|
||||
public List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
|
||||
@Query("select prn.id from ProdukNakes prn " + "where prn.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prn.namaProduk,:patternText,'','g')) = :namaProduk "
|
||||
+ "and prn.profesiId = :profesiId" + " and prn.id <> :produkId")
|
||||
List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
|
||||
@Param("profesiId") Integer idProfesi, @Param("produkId") Integer idProduk);
|
||||
|
||||
}
|
||||
|
||||
@ -1,14 +1,13 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.ProdukPerawat;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.ProdukPerawat;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
@ -17,47 +16,50 @@ import com.jasamedika.medifirst2000.entities.ProdukPerawat;
|
||||
@Repository("produkPerawat")
|
||||
public interface ProdukPerawatDao extends PagingAndSortingRepository<ProdukPerawat, Integer> {
|
||||
|
||||
String allProduk = "select new Map(prp.id as id,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
|
||||
@Query("select new Map(prp.id as id,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
|
||||
+ "(case when prp.klasifikasi = 1 then 'Asuhan' " + "when prp.klasifikasi = 2 then 'Tindakan' "
|
||||
+ "when prp.klasifikasi = 3 then 'Laporan' end) as klasifikasi) " + "from ProdukPerawat prp "
|
||||
+ "where prp.statusEnabled is true";
|
||||
+ "where prp.statusEnabled is true" + " order by prp.klasifikasi, prp.namaProduk asc")
|
||||
List<Map<String, Object>> findAllActive();
|
||||
|
||||
String namaProduk = " and lower(prp.namaProduk) like %:namaProduk%";
|
||||
@Query("select new Map(prp.id as id,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
|
||||
+ "(case when prp.klasifikasi = 1 then 'Asuhan' " + "when prp.klasifikasi = 2 then 'Tindakan' "
|
||||
+ "when prp.klasifikasi = 3 then 'Laporan' end) as klasifikasi) " + "from ProdukPerawat prp "
|
||||
+ "where prp.statusEnabled is true" + " and lower(prp.namaProduk) like %:namaProduk%"
|
||||
+ " order by prp.klasifikasi, prp.namaProduk asc")
|
||||
List<Map<String, Object>> findAllActive(@Param("namaProduk") String namaProduk);
|
||||
|
||||
String kdKlasif = " and prp.klasifikasi = :kdKlasif";
|
||||
@Query("select new Map(prp.id as id,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
|
||||
+ "(case when prp.klasifikasi = 1 then 'Asuhan' " + "when prp.klasifikasi = 2 then 'Tindakan' "
|
||||
+ "when prp.klasifikasi = 3 then 'Laporan' end) as klasifikasi) " + "from ProdukPerawat prp "
|
||||
+ "where prp.statusEnabled is true" + " and prp.klasifikasi = :kdKlasif"
|
||||
+ " order by prp.klasifikasi, prp.namaProduk asc")
|
||||
List<Map<String, Object>> findAllActive(@Param("kdKlasif") Short kdKlasif);
|
||||
|
||||
String listIdProduk = " and prp.id in (:listProdukId)";
|
||||
@Query("select new Map(prp.id as id,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
|
||||
+ "(case when prp.klasifikasi = 1 then 'Asuhan' " + "when prp.klasifikasi = 2 then 'Tindakan' "
|
||||
+ "when prp.klasifikasi = 3 then 'Laporan' end) as klasifikasi) " + "from ProdukPerawat prp "
|
||||
+ "where prp.statusEnabled is true" + " and lower(prp.namaProduk) like %:namaProduk%"
|
||||
+ " and prp.klasifikasi = :kdKlasif" + " order by prp.klasifikasi, prp.namaProduk asc")
|
||||
List<Map<String, Object>> findAllActive(@Param("namaProduk") String namaProduk, @Param("kdKlasif") Short kdKlasif);
|
||||
|
||||
String sortAllProduk = " order by prp.klasifikasi, prp.namaProduk asc";
|
||||
@Query("select new Map(prp.id as id,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
|
||||
+ "(case when prp.klasifikasi = 1 then 'Asuhan' " + "when prp.klasifikasi = 2 then 'Tindakan' "
|
||||
+ "when prp.klasifikasi = 3 then 'Laporan' end) as klasifikasi) " + "from ProdukPerawat prp "
|
||||
+ "where prp.statusEnabled is true" + " and prp.id in (:listProdukId)"
|
||||
+ " order by prp.klasifikasi, prp.namaProduk asc")
|
||||
List<Map<String, Object>> findProdukPerawat(@Param("listProdukId") List<Integer> listIdProduk);
|
||||
|
||||
@Query(allProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findAllActive();
|
||||
|
||||
@Query(allProduk + namaProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findAllActive(@Param("namaProduk") String namaProduk);
|
||||
|
||||
@Query(allProduk + kdKlasif + sortAllProduk)
|
||||
public List<Map<String, Object>> findAllActive(@Param("kdKlasif") Short kdKlasif);
|
||||
|
||||
@Query(allProduk + namaProduk + kdKlasif + sortAllProduk)
|
||||
public List<Map<String, Object>> findAllActive(@Param("namaProduk") String namaProduk,
|
||||
@Param("kdKlasif") Short kdKlasif);
|
||||
|
||||
@Query(allProduk + listIdProduk + sortAllProduk)
|
||||
public List<Map<String, Object>> findProdukPerawat(@Param("listProdukId") List<Integer> listIdProduk);
|
||||
|
||||
String dupCheck = "select prp.id from ProdukPerawat prp " + "where prp.statusEnabled is true "
|
||||
@Query("select prp.id from ProdukPerawat prp " + "where prp.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk "
|
||||
+ "and prp.klasifikasi = :kdKlasif";
|
||||
|
||||
String notIdProduk = " and prp.id <> :produkId";
|
||||
|
||||
@Query(dupCheck)
|
||||
public List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
|
||||
+ "and prp.klasifikasi = :kdKlasif")
|
||||
List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
|
||||
@Param("kdKlasif") Short kdKlasif);
|
||||
|
||||
@Query(dupCheck + notIdProduk)
|
||||
public List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
|
||||
@Query("select prp.id from ProdukPerawat prp " + "where prp.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk "
|
||||
+ "and prp.klasifikasi = :kdKlasif" + " and prp.id <> :produkId")
|
||||
List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
|
||||
@Param("kdKlasif") Short kdKlasif, @Param("produkId") Integer idProduk);
|
||||
|
||||
}
|
||||
|
||||
@ -1,14 +1,13 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.SkoringTindakanFarmakologi;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.SkoringTindakanFarmakologi;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
@ -18,7 +17,7 @@ import com.jasamedika.medifirst2000.entities.SkoringTindakanFarmakologi;
|
||||
@Repository("skoringTindakanFarmakologiDao")
|
||||
public interface SkoringTindakanFarmakologiDao extends PagingAndSortingRepository<SkoringTindakanFarmakologi, String> {
|
||||
|
||||
String strAllEnabled = "select new Map(stf.noRec as noRec,stf.statusEnabled as statusEnabled,"
|
||||
@Query("select new Map(stf.noRec as noRec,stf.statusEnabled as statusEnabled,"
|
||||
+ "stf.skor as skor,stf.statusVerifikasi as kdVerif,"
|
||||
+ "(case when stf.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stf.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
@ -28,52 +27,81 @@ public interface SkoringTindakanFarmakologiDao extends PagingAndSortingRepositor
|
||||
+ "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' "
|
||||
+ "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as jenisProduk) "
|
||||
+ "from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + "where stf.statusEnabled is true "
|
||||
+ "and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') ";
|
||||
|
||||
String produk = "and lower(prf.namaProduk) like %:namaProduk% ";
|
||||
|
||||
String statusVerifikasi = "and stf.statusVerifikasi = :isVerif ";
|
||||
|
||||
String sortSearch = "order by prf.namaProduk asc, stf.tanggalMulaiBerlaku desc, stf.tanggalPembaharuanData desc";
|
||||
|
||||
@Query(strAllEnabled + sortSearch)
|
||||
+ "and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') "
|
||||
+ "order by prf.namaProduk asc, stf.tanggalMulaiBerlaku desc, stf.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabled();
|
||||
|
||||
@Query(strAllEnabled + produk + sortSearch)
|
||||
@Query("select new Map(stf.noRec as noRec,stf.statusEnabled as statusEnabled,"
|
||||
+ "stf.skor as skor,stf.statusVerifikasi as kdVerif,"
|
||||
+ "(case when stf.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stf.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stf.tanggalMulaiBerlaku as tglMulaiBerlaku,stf.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prf.id as produkId,prf.namaProduk as namaProduk,"
|
||||
+ "(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' "
|
||||
+ "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' "
|
||||
+ "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as jenisProduk) "
|
||||
+ "from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + "where stf.statusEnabled is true "
|
||||
+ "and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') "
|
||||
+ "and lower(prf.namaProduk) like %:namaProduk% "
|
||||
+ "order by prf.namaProduk asc, stf.tanggalMulaiBerlaku desc, stf.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProduk(@Param("namaProduk") String namaProduk);
|
||||
|
||||
@Query(strAllEnabled + statusVerifikasi + sortSearch)
|
||||
@Query("select new Map(stf.noRec as noRec,stf.statusEnabled as statusEnabled,"
|
||||
+ "stf.skor as skor,stf.statusVerifikasi as kdVerif,"
|
||||
+ "(case when stf.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stf.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stf.tanggalMulaiBerlaku as tglMulaiBerlaku,stf.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prf.id as produkId,prf.namaProduk as namaProduk,"
|
||||
+ "(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' "
|
||||
+ "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' "
|
||||
+ "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as jenisProduk) "
|
||||
+ "from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + "where stf.statusEnabled is true "
|
||||
+ "and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') "
|
||||
+ "and stf.statusVerifikasi = :isVerif "
|
||||
+ "order by prf.namaProduk asc, stf.tanggalMulaiBerlaku desc, stf.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByVerif(@Param("isVerif") Boolean isVerif);
|
||||
|
||||
@Query(strAllEnabled + produk + statusVerifikasi + sortSearch)
|
||||
@Query("select new Map(stf.noRec as noRec,stf.statusEnabled as statusEnabled,"
|
||||
+ "stf.skor as skor,stf.statusVerifikasi as kdVerif,"
|
||||
+ "(case when stf.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stf.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stf.tanggalMulaiBerlaku as tglMulaiBerlaku,stf.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prf.id as produkId,prf.namaProduk as namaProduk,"
|
||||
+ "(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' "
|
||||
+ "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' "
|
||||
+ "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as jenisProduk) "
|
||||
+ "from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + "where stf.statusEnabled is true "
|
||||
+ "and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') "
|
||||
+ "and lower(prf.namaProduk) like %:namaProduk% " + "and stf.statusVerifikasi = :isVerif "
|
||||
+ "order by prf.namaProduk asc, stf.tanggalMulaiBerlaku desc, stf.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProdukVerif(@Param("namaProduk") String namaProduk,
|
||||
@Param("isVerif") Boolean isVerif);
|
||||
|
||||
String strCekDupSkoring = "select stf.noRec from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf "
|
||||
@Query("select stf.noRec from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf "
|
||||
+ "where stf.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk ";
|
||||
|
||||
String skor = " and stf.skor = :skor";
|
||||
|
||||
String tglBerlaku = " and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku";
|
||||
|
||||
String idSkoring = " and stf.noRec <> :noRec";
|
||||
|
||||
String sortTglBerlaku = " order by stf.tanggalMulaiBerlaku desc";
|
||||
|
||||
@Query(strCekDupSkoring + skor + sortTglBerlaku)
|
||||
+ "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk " + " and stf.skor = :skor"
|
||||
+ " order by stf.tanggalMulaiBerlaku desc")
|
||||
List<String> findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("skor") Double skor,
|
||||
@Param("patternText") String patternText);
|
||||
|
||||
@Query(strCekDupSkoring + tglBerlaku)
|
||||
@Query("select stf.noRec from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf "
|
||||
+ "where stf.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk "
|
||||
+ " and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku")
|
||||
List<String> findDupSkoring(@Param("namaProduk") String namaProduk,
|
||||
@Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText);
|
||||
|
||||
@Query(strCekDupSkoring + skor + idSkoring + sortTglBerlaku)
|
||||
@Query("select stf.noRec from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf "
|
||||
+ "where stf.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk " + " and stf.skor = :skor"
|
||||
+ " and stf.noRec <> :noRec" + " order by stf.tanggalMulaiBerlaku desc")
|
||||
List<String> findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("skor") Double skor,
|
||||
@Param("patternText") String patternText, @Param("noRec") String noRec);
|
||||
|
||||
@Query(strCekDupSkoring + tglBerlaku + idSkoring)
|
||||
@Query("select stf.noRec from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf "
|
||||
+ "where stf.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk "
|
||||
+ " and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku" + " and stf.noRec <> :noRec")
|
||||
List<String> findDupSkoring(@Param("namaProduk") String namaProduk,
|
||||
@Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText,
|
||||
@Param("noRec") String noRec);
|
||||
|
||||
@ -1,19 +1,18 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.SkoringTindakanMedis;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.SkoringTindakanMedis;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Repository("skoringTindakanMedisDao")
|
||||
public interface SkoringTindakanMedisDao extends PagingAndSortingRepository<SkoringTindakanMedis, String> {
|
||||
|
||||
String strAllEnabled = "select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
@ -22,113 +21,285 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository<Skor
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')";
|
||||
|
||||
String kelompokKerja = " and sk.id in (:listSubunitKerjaId)";
|
||||
|
||||
String produk = " and lower(pr.namaProduk) like %:namaProduk%";
|
||||
|
||||
String detailProduk = " and lower(stm.detailProduk) like %:detailProduk%";
|
||||
|
||||
String statusVerifikasi = " and stm.statusVerifikasi = :isStatusVerifikasi";
|
||||
|
||||
String sortSearch = " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, "
|
||||
+ "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc";
|
||||
|
||||
@Query(strAllEnabled + sortSearch)
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, "
|
||||
+ "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabled();
|
||||
|
||||
@Query(strAllEnabled + kelompokKerja + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and sk.id in (:listSubunitKerjaId)" + " order by sk.name asc," + "pr.namaProduk asc,"
|
||||
+ "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByUnit(@Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja);
|
||||
|
||||
@Query(strAllEnabled + produk + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and lower(pr.namaProduk) like %:namaProduk%" + " order by sk.name asc," + "pr.namaProduk asc,"
|
||||
+ "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProduk(@Param("namaProduk") String namaProduk);
|
||||
|
||||
@Query(strAllEnabled + detailProduk + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and lower(stm.detailProduk) like %:detailProduk%" + " order by sk.name asc," + "pr.namaProduk asc,"
|
||||
+ "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByDetail(@Param("detailProduk") String detailProduk);
|
||||
|
||||
@Query(strAllEnabled + statusVerifikasi + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and stm.statusVerifikasi = :isStatusVerifikasi" + " order by sk.name asc," + "pr.namaProduk asc,"
|
||||
+ "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByVerif(@Param("isStatusVerifikasi") Boolean statusVerifikasi);
|
||||
|
||||
@Query(strAllEnabled + kelompokKerja + produk + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and sk.id in (:listSubunitKerjaId)" + " and lower(pr.namaProduk) like %:namaProduk%"
|
||||
+ " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, "
|
||||
+ "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByUnitProduk(@Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja,
|
||||
@Param("namaProduk") String namaProduk);
|
||||
|
||||
@Query(strAllEnabled + kelompokKerja + detailProduk + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and sk.id in (:listSubunitKerjaId)" + " and lower(stm.detailProduk) like %:detailProduk%"
|
||||
+ " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, "
|
||||
+ "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByUnitDetail(@Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja,
|
||||
@Param("detailProduk") String detailProduk);
|
||||
|
||||
@Query(strAllEnabled + kelompokKerja + statusVerifikasi + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and sk.id in (:listSubunitKerjaId)" + " and stm.statusVerifikasi = :isStatusVerifikasi"
|
||||
+ " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, "
|
||||
+ "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByUnitVerif(@Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja,
|
||||
@Param("isStatusVerifikasi") Boolean statusVerifikasi);
|
||||
|
||||
@Query(strAllEnabled + produk + detailProduk + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and lower(pr.namaProduk) like %:namaProduk%" + " and lower(stm.detailProduk) like %:detailProduk%"
|
||||
+ " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, "
|
||||
+ "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProdukDetail(@Param("namaProduk") String namaProduk,
|
||||
@Param("detailProduk") String detailProduk);
|
||||
|
||||
@Query(strAllEnabled + produk + statusVerifikasi + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and lower(pr.namaProduk) like %:namaProduk%" + " and stm.statusVerifikasi = :isStatusVerifikasi"
|
||||
+ " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, "
|
||||
+ "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProdukVerif(@Param("namaProduk") String namaProduk,
|
||||
@Param("isStatusVerifikasi") Boolean statusVerifikasi);
|
||||
|
||||
@Query(strAllEnabled + detailProduk + statusVerifikasi + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and lower(stm.detailProduk) like %:detailProduk%" + " and stm.statusVerifikasi = :isStatusVerifikasi"
|
||||
+ " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, "
|
||||
+ "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByDetailVerif(@Param("detailProduk") String detailProduk,
|
||||
@Param("isStatusVerifikasi") Boolean statusVerifikasi);
|
||||
|
||||
@Query(strAllEnabled + kelompokKerja + produk + detailProduk + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and sk.id in (:listSubunitKerjaId)" + " and lower(pr.namaProduk) like %:namaProduk%"
|
||||
+ " and lower(stm.detailProduk) like %:detailProduk%" + " order by sk.name asc," + "pr.namaProduk asc,"
|
||||
+ "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByUnitProdukDetail(
|
||||
@Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja, @Param("namaProduk") String namaProduk,
|
||||
@Param("detailProduk") String detailProduk);
|
||||
|
||||
@Query(strAllEnabled + kelompokKerja + produk + statusVerifikasi + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and sk.id in (:listSubunitKerjaId)" + " and lower(pr.namaProduk) like %:namaProduk%"
|
||||
+ " and stm.statusVerifikasi = :isStatusVerifikasi" + " order by sk.name asc," + "pr.namaProduk asc,"
|
||||
+ "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByUnitProdukVerif(
|
||||
@Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja, @Param("namaProduk") String namaProduk,
|
||||
@Param("isStatusVerifikasi") Boolean statusVerifikasi);
|
||||
|
||||
@Query(strAllEnabled + kelompokKerja + detailProduk + statusVerifikasi + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and sk.id in (:listSubunitKerjaId)" + " and lower(stm.detailProduk) like %:detailProduk%"
|
||||
+ " and stm.statusVerifikasi = :isStatusVerifikasi" + " order by sk.name asc," + "pr.namaProduk asc,"
|
||||
+ "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByUnitDetailVerif(
|
||||
@Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja, @Param("detailProduk") String detailProduk,
|
||||
@Param("isStatusVerifikasi") Boolean statusVerifikasi);
|
||||
|
||||
@Query(strAllEnabled + produk + detailProduk + statusVerifikasi + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and lower(pr.namaProduk) like %:namaProduk%" + " and lower(stm.detailProduk) like %:detailProduk%"
|
||||
+ " and stm.statusVerifikasi = :isStatusVerifikasi" + " order by sk.name asc," + "pr.namaProduk asc,"
|
||||
+ "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProdukDetailVerif(@Param("namaProduk") String namaProduk,
|
||||
@Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi);
|
||||
|
||||
@Query(strAllEnabled + kelompokKerja + produk + detailProduk + statusVerifikasi + sortSearch)
|
||||
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
|
||||
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
|
||||
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
|
||||
+ "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
|
||||
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) "
|
||||
+ "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk "
|
||||
+ "inner join sk.unitKerja uk " + "where stm.statusEnabled is true "
|
||||
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and sk.id in (:listSubunitKerjaId)" + " and lower(pr.namaProduk) like %:namaProduk%"
|
||||
+ " and lower(stm.detailProduk) like %:detailProduk%" + " and stm.statusVerifikasi = :isStatusVerifikasi"
|
||||
+ " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, "
|
||||
+ "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByUnitProdukDetailVerif(
|
||||
@Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja, @Param("namaProduk") String namaProduk,
|
||||
@Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi);
|
||||
|
||||
String strCekDupSkoring = "select stm.noRec " + "from SkoringTindakanMedis stm " + "inner join stm.produk pd "
|
||||
@Query("select stm.noRec " + "from SkoringTindakanMedis stm " + "inner join stm.produk pd "
|
||||
+ "where stm.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(pd.namaProduk,:patternText,'','g')) = :namaProduk "
|
||||
+ "and stm.kelompokKerjaId = :kelompokKerjaId "
|
||||
+ "and lower(regexp_replace(stm.detailProduk,:patternText,'','g')) = :detailProduk";
|
||||
|
||||
String skor = " and stm.skor = :skor";
|
||||
|
||||
String tglBerlaku = " and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku";
|
||||
|
||||
String idSkoring = " and stm.noRec <> :noRec";
|
||||
|
||||
String sortTglBerlaku = " order by stm.tanggalMulaiBerlaku desc";
|
||||
|
||||
@Query(strCekDupSkoring + skor + sortTglBerlaku)
|
||||
+ "and lower(regexp_replace(stm.detailProduk,:patternText,'','g')) = :detailProduk"
|
||||
+ " and stm.skor = :skor" + " order by stm.tanggalMulaiBerlaku desc")
|
||||
List<String> findLastDupSkoring(@Param("namaProduk") String namaProduk,
|
||||
@Param("kelompokKerjaId") Integer idKelompokKerja, @Param("skor") Double skor,
|
||||
@Param("patternText") String patternText, @Param("detailProduk") String detailProduk);
|
||||
|
||||
@Query(strCekDupSkoring + tglBerlaku)
|
||||
@Query("select stm.noRec " + "from SkoringTindakanMedis stm " + "inner join stm.produk pd "
|
||||
+ "where stm.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(pd.namaProduk,:patternText,'','g')) = :namaProduk "
|
||||
+ "and stm.kelompokKerjaId = :kelompokKerjaId "
|
||||
+ "and lower(regexp_replace(stm.detailProduk,:patternText,'','g')) = :detailProduk"
|
||||
+ " and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku")
|
||||
List<String> findDupSkoring(@Param("namaProduk") String namaProduk,
|
||||
@Param("kelompokKerjaId") Integer idKelompokKerja, @Param("tglMulaiBerlaku") String tglMulaiBerlaku,
|
||||
@Param("patternText") String patternText, @Param("detailProduk") String detailProduk);
|
||||
|
||||
@Query(strCekDupSkoring + skor + idSkoring + sortTglBerlaku)
|
||||
@Query("select stm.noRec " + "from SkoringTindakanMedis stm " + "inner join stm.produk pd "
|
||||
+ "where stm.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(pd.namaProduk,:patternText,'','g')) = :namaProduk "
|
||||
+ "and stm.kelompokKerjaId = :kelompokKerjaId "
|
||||
+ "and lower(regexp_replace(stm.detailProduk,:patternText,'','g')) = :detailProduk"
|
||||
+ " and stm.skor = :skor" + " and stm.noRec <> :noRec" + " order by stm.tanggalMulaiBerlaku desc")
|
||||
List<String> findLastDupSkoring(@Param("namaProduk") String namaProduk,
|
||||
@Param("kelompokKerjaId") Integer idKelompokKerja, @Param("skor") Double skor,
|
||||
@Param("patternText") String patternText, @Param("detailProduk") String detailProduk,
|
||||
@Param("noRec") String noRec);
|
||||
|
||||
@Query(strCekDupSkoring + tglBerlaku + idSkoring)
|
||||
@Query("select stm.noRec " + "from SkoringTindakanMedis stm " + "inner join stm.produk pd "
|
||||
+ "where stm.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(pd.namaProduk,:patternText,'','g')) = :namaProduk "
|
||||
+ "and stm.kelompokKerjaId = :kelompokKerjaId "
|
||||
+ "and lower(regexp_replace(stm.detailProduk,:patternText,'','g')) = :detailProduk"
|
||||
+ " and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku" + " and stm.noRec <> :noRec")
|
||||
List<String> findDupSkoring(@Param("namaProduk") String namaProduk,
|
||||
@Param("kelompokKerjaId") Integer idKelompokKerja, @Param("tglMulaiBerlaku") String tglMulaiBerlaku,
|
||||
@Param("patternText") String patternText, @Param("detailProduk") String detailProduk,
|
||||
@ -170,17 +341,12 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository<Skor
|
||||
List<Map<String, Object>> findSkoringLogbookDokter(@Param("bulan") String bulan,
|
||||
@Param("listPegawaiId") List<Integer> listIdPegawai, @Param("listKsmId") List<Integer> listIdKsm);
|
||||
|
||||
String strProdukScored = "select distinct new Map(stm.kelompokKerjaId as kelompokKerjaId, stm.produkId as produkId) "
|
||||
+ "from SkoringTindakanMedis stm " + "where stm.statusEnabled is true ";
|
||||
|
||||
String whrKelompokKerja = "and stm.kelompokKerjaId in (:listKelompokKerjaId) ";
|
||||
|
||||
String srtKkProduk = "order by stm.kelompokKerjaId, stm.produkId";
|
||||
|
||||
/**
|
||||
* @return Daftar id produk sudah dilakukan skor remunerasi
|
||||
*/
|
||||
@Query(strProdukScored + srtKkProduk)
|
||||
@Query("select distinct new Map(stm.kelompokKerjaId as kelompokKerjaId, stm.produkId as produkId) "
|
||||
+ "from SkoringTindakanMedis stm " + "where stm.statusEnabled is true "
|
||||
+ "order by stm.kelompokKerjaId, stm.produkId")
|
||||
List<Map<String, Object>> findProdukScored();
|
||||
|
||||
/**
|
||||
@ -188,7 +354,9 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository<Skor
|
||||
* Daftar ID Kelompok Kerja
|
||||
* @return Daftar id produk sudah dilakukan skor remunerasi
|
||||
*/
|
||||
@Query(strProdukScored + whrKelompokKerja + srtKkProduk)
|
||||
@Query("select distinct new Map(stm.kelompokKerjaId as kelompokKerjaId, stm.produkId as produkId) "
|
||||
+ "from SkoringTindakanMedis stm " + "where stm.statusEnabled is true "
|
||||
+ "and stm.kelompokKerjaId in (:listKelompokKerjaId) " + "order by stm.kelompokKerjaId, stm.produkId")
|
||||
List<Map<String, Object>> findProdukScored(@Param("listKelompokKerjaId") List<Integer> listIdKelompokKerja);
|
||||
|
||||
}
|
||||
|
||||
@ -1,21 +1,19 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.SkoringTindakanNakes;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.SkoringTindakanNakes;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Repository("skoringTindakanNakesDao")
|
||||
public interface SkoringTindakanNakesDao extends PagingAndSortingRepository<SkoringTindakanNakes, String> {
|
||||
|
||||
String strAllEnabled = "select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled,"
|
||||
+ "stn.skor as skor," + "stn.statusVerifikasi as kdVerif,"
|
||||
+ "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
@Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor,"
|
||||
+ "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prn.id as produkId," + "prn.namaProduk as namaProduk,"
|
||||
@ -25,71 +23,157 @@ public interface SkoringTindakanNakesDao extends PagingAndSortingRepository<Skor
|
||||
+ "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) "
|
||||
+ "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs "
|
||||
+ "where stn.statusEnabled is true "
|
||||
+ "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') ";
|
||||
|
||||
String produk = "and lower(prn.namaProduk) like %:namaProduk% ";
|
||||
|
||||
String statusVerifikasi = "and stn.statusVerifikasi = :isVerif ";
|
||||
|
||||
String profesi = "and pfs.id = :profesiId ";
|
||||
|
||||
String sortSearch = "order by pfs.namaProfesi asc, " + "prn.namaProduk asc, "
|
||||
+ "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc";
|
||||
|
||||
@Query(strAllEnabled + sortSearch)
|
||||
+ "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') "
|
||||
+ "order by pfs.namaProfesi asc, " + "prn.namaProduk asc, "
|
||||
+ "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabled();
|
||||
|
||||
@Query(strAllEnabled + produk + sortSearch)
|
||||
@Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor,"
|
||||
+ "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prn.id as produkId," + "prn.namaProduk as namaProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Nonpelayanan Pasien' end) as jenisProduk," + "pfs.id as profesiId,"
|
||||
+ "(case when pfs.jenisProfesi = 1 then concat(pfs.namaProfesi, ' (PPA)') "
|
||||
+ "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) "
|
||||
+ "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs "
|
||||
+ "where stn.statusEnabled is true "
|
||||
+ "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') "
|
||||
+ "and lower(prn.namaProduk) like %:namaProduk% " + "order by pfs.namaProfesi asc, "
|
||||
+ "prn.namaProduk asc, " + "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProduk(@Param("namaProduk") String namaProduk);
|
||||
|
||||
@Query(strAllEnabled + statusVerifikasi + sortSearch)
|
||||
@Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor,"
|
||||
+ "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prn.id as produkId," + "prn.namaProduk as namaProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Nonpelayanan Pasien' end) as jenisProduk," + "pfs.id as profesiId,"
|
||||
+ "(case when pfs.jenisProfesi = 1 then concat(pfs.namaProfesi, ' (PPA)') "
|
||||
+ "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) "
|
||||
+ "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs "
|
||||
+ "where stn.statusEnabled is true "
|
||||
+ "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') "
|
||||
+ "and stn.statusVerifikasi = :isVerif " + "order by pfs.namaProfesi asc, " + "prn.namaProduk asc, "
|
||||
+ "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByVerif(@Param("isVerif") Boolean isVerif);
|
||||
|
||||
@Query(strAllEnabled + profesi + sortSearch)
|
||||
@Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor,"
|
||||
+ "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prn.id as produkId," + "prn.namaProduk as namaProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Nonpelayanan Pasien' end) as jenisProduk," + "pfs.id as profesiId,"
|
||||
+ "(case when pfs.jenisProfesi = 1 then concat(pfs.namaProfesi, ' (PPA)') "
|
||||
+ "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) "
|
||||
+ "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs "
|
||||
+ "where stn.statusEnabled is true "
|
||||
+ "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') "
|
||||
+ "and pfs.id = :profesiId " + "order by pfs.namaProfesi asc, " + "prn.namaProduk asc, "
|
||||
+ "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProfesi(@Param("profesiId") Integer idProfesi);
|
||||
|
||||
@Query(strAllEnabled + produk + statusVerifikasi + sortSearch)
|
||||
@Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor,"
|
||||
+ "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prn.id as produkId," + "prn.namaProduk as namaProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Nonpelayanan Pasien' end) as jenisProduk," + "pfs.id as profesiId,"
|
||||
+ "(case when pfs.jenisProfesi = 1 then concat(pfs.namaProfesi, ' (PPA)') "
|
||||
+ "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) "
|
||||
+ "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs "
|
||||
+ "where stn.statusEnabled is true "
|
||||
+ "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') "
|
||||
+ "and lower(prn.namaProduk) like %:namaProduk% " + "and stn.statusVerifikasi = :isVerif "
|
||||
+ "order by pfs.namaProfesi asc, " + "prn.namaProduk asc, "
|
||||
+ "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProdukVerif(@Param("namaProduk") String namaProduk,
|
||||
@Param("isVerif") Boolean isVerif);
|
||||
|
||||
@Query(strAllEnabled + produk + profesi + sortSearch)
|
||||
@Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor,"
|
||||
+ "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prn.id as produkId," + "prn.namaProduk as namaProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Nonpelayanan Pasien' end) as jenisProduk," + "pfs.id as profesiId,"
|
||||
+ "(case when pfs.jenisProfesi = 1 then concat(pfs.namaProfesi, ' (PPA)') "
|
||||
+ "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) "
|
||||
+ "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs "
|
||||
+ "where stn.statusEnabled is true "
|
||||
+ "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') "
|
||||
+ "and lower(prn.namaProduk) like %:namaProduk% " + "and pfs.id = :profesiId "
|
||||
+ "order by pfs.namaProfesi asc, " + "prn.namaProduk asc, "
|
||||
+ "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProdukProfesi(@Param("namaProduk") String namaProduk,
|
||||
@Param("profesiId") Integer idProfesi);
|
||||
|
||||
@Query(strAllEnabled + statusVerifikasi + profesi + sortSearch)
|
||||
@Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor,"
|
||||
+ "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prn.id as produkId," + "prn.namaProduk as namaProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Nonpelayanan Pasien' end) as jenisProduk," + "pfs.id as profesiId,"
|
||||
+ "(case when pfs.jenisProfesi = 1 then concat(pfs.namaProfesi, ' (PPA)') "
|
||||
+ "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) "
|
||||
+ "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs "
|
||||
+ "where stn.statusEnabled is true "
|
||||
+ "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') "
|
||||
+ "and stn.statusVerifikasi = :isVerif " + "and pfs.id = :profesiId " + "order by pfs.namaProfesi asc, "
|
||||
+ "prn.namaProduk asc, " + "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByVerifProfesi(@Param("isVerif") Boolean isVerif,
|
||||
@Param("profesiId") Integer idProfesi);
|
||||
|
||||
@Query(strAllEnabled + produk + statusVerifikasi + profesi + sortSearch)
|
||||
@Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor,"
|
||||
+ "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prn.id as produkId," + "prn.namaProduk as namaProduk,"
|
||||
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
|
||||
+ "when prn.kdProduk = 2 then 'Nonpelayanan Pasien' end) as jenisProduk," + "pfs.id as profesiId,"
|
||||
+ "(case when pfs.jenisProfesi = 1 then concat(pfs.namaProfesi, ' (PPA)') "
|
||||
+ "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) "
|
||||
+ "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs "
|
||||
+ "where stn.statusEnabled is true "
|
||||
+ "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') "
|
||||
+ "and lower(prn.namaProduk) like %:namaProduk% " + "and stn.statusVerifikasi = :isVerif "
|
||||
+ "and pfs.id = :profesiId " + "order by pfs.namaProfesi asc, " + "prn.namaProduk asc, "
|
||||
+ "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProdukVerifProfesi(@Param("namaProduk") String namaProduk,
|
||||
@Param("isVerif") Boolean isVerif, @Param("profesiId") Integer idProfesi);
|
||||
|
||||
String strCekDupSkoring = "select stn.noRec " + "from SkoringTindakanNakes stn " + "inner join stn.produk prn "
|
||||
@Query("select stn.noRec " + "from SkoringTindakanNakes stn " + "inner join stn.produk prn "
|
||||
+ "inner join prn.profesi pfs " + "where stn.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prn.namaProduk,:patternText,'','g')) = :namaProduk "
|
||||
+ "and pfs.id = :profesiId ";
|
||||
|
||||
String skor = " and stn.skor = :skor";
|
||||
|
||||
String tglBerlaku = " and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku";
|
||||
|
||||
String idSkoring = " and stn.noRec <> :noRec";
|
||||
|
||||
String sortTglBerlaku = " order by stn.tanggalMulaiBerlaku desc";
|
||||
|
||||
@Query(strCekDupSkoring + skor + sortTglBerlaku)
|
||||
+ "and pfs.id = :profesiId " + " and stn.skor = :skor" + " order by stn.tanggalMulaiBerlaku desc")
|
||||
List<String> findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("profesiId") Integer idProfesi,
|
||||
@Param("skor") Double skor, @Param("patternText") String patternText);
|
||||
|
||||
@Query(strCekDupSkoring + tglBerlaku)
|
||||
@Query("select stn.noRec " + "from SkoringTindakanNakes stn " + "inner join stn.produk prn "
|
||||
+ "inner join prn.profesi pfs " + "where stn.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prn.namaProduk,:patternText,'','g')) = :namaProduk "
|
||||
+ "and pfs.id = :profesiId " + " and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku")
|
||||
List<String> findDupSkoring(@Param("namaProduk") String namaProduk, @Param("profesiId") Integer idProfesi,
|
||||
@Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText);
|
||||
|
||||
@Query(strCekDupSkoring + skor + idSkoring + sortTglBerlaku)
|
||||
@Query("select stn.noRec " + "from SkoringTindakanNakes stn " + "inner join stn.produk prn "
|
||||
+ "inner join prn.profesi pfs " + "where stn.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prn.namaProduk,:patternText,'','g')) = :namaProduk "
|
||||
+ "and pfs.id = :profesiId " + " and stn.skor = :skor" + " and stn.noRec <> :noRec"
|
||||
+ " order by stn.tanggalMulaiBerlaku desc")
|
||||
List<String> findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("profesiId") Integer idProfesi,
|
||||
@Param("skor") Double skor, @Param("patternText") String patternText, @Param("noRec") String noRec);
|
||||
|
||||
@Query(strCekDupSkoring + tglBerlaku + idSkoring)
|
||||
@Query("select stn.noRec " + "from SkoringTindakanNakes stn " + "inner join stn.produk prn "
|
||||
+ "inner join prn.profesi pfs " + "where stn.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prn.namaProduk,:patternText,'','g')) = :namaProduk "
|
||||
+ "and pfs.id = :profesiId " + " and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku"
|
||||
+ " and stn.noRec <> :noRec")
|
||||
List<String> findDupSkoring(@Param("namaProduk") String namaProduk, @Param("profesiId") Integer idProfesi,
|
||||
@Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText,
|
||||
@Param("noRec") String noRec);
|
||||
|
||||
@ -1,91 +1,150 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.SkoringTindakanPerawat;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.SkoringTindakanPerawat;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Repository("skoringTindakanPerawatDao")
|
||||
public interface SkoringTindakanPerawatDao extends PagingAndSortingRepository<SkoringTindakanPerawat, String> {
|
||||
|
||||
String strAllEnabled = "select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled,"
|
||||
+ "stp.skor as skor," + "stp.statusVerifikasi as kdVerif,"
|
||||
+ "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
@Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor,"
|
||||
+ "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
|
||||
+ "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' "
|
||||
+ "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) "
|
||||
+ "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true "
|
||||
+ "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')";
|
||||
|
||||
String produk = " and lower(prp.namaProduk) like %:namaProduk%";
|
||||
|
||||
String statusVerifikasi = " and stp.statusVerifikasi = :isVerif";
|
||||
|
||||
String statusKlasifikasi = " and prp.klasifikasi = :kdKlasif";
|
||||
|
||||
String sortSearch = " order by prp.namaProduk asc, "
|
||||
+ "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc";
|
||||
|
||||
@Query(strAllEnabled + sortSearch)
|
||||
+ "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " order by prp.namaProduk asc, " + "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabled();
|
||||
|
||||
@Query(strAllEnabled + produk + sortSearch)
|
||||
@Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor,"
|
||||
+ "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
|
||||
+ "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' "
|
||||
+ "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) "
|
||||
+ "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true "
|
||||
+ "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and lower(prp.namaProduk) like %:namaProduk%" + " order by prp.namaProduk asc, "
|
||||
+ "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProduk(@Param("namaProduk") String namaProduk);
|
||||
|
||||
@Query(strAllEnabled + statusVerifikasi + sortSearch)
|
||||
@Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor,"
|
||||
+ "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
|
||||
+ "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' "
|
||||
+ "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) "
|
||||
+ "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true "
|
||||
+ "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and stp.statusVerifikasi = :isVerif" + " order by prp.namaProduk asc, "
|
||||
+ "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByVerif(@Param("isVerif") Boolean isVerif);
|
||||
|
||||
@Query(strAllEnabled + statusKlasifikasi + sortSearch)
|
||||
@Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor,"
|
||||
+ "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
|
||||
+ "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' "
|
||||
+ "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) "
|
||||
+ "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true "
|
||||
+ "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and prp.klasifikasi = :kdKlasif" + " order by prp.namaProduk asc, "
|
||||
+ "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByKlasif(@Param("kdKlasif") Short kdKlasif);
|
||||
|
||||
@Query(strAllEnabled + produk + statusVerifikasi + sortSearch)
|
||||
@Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor,"
|
||||
+ "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
|
||||
+ "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' "
|
||||
+ "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) "
|
||||
+ "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true "
|
||||
+ "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and lower(prp.namaProduk) like %:namaProduk%" + " and stp.statusVerifikasi = :isVerif"
|
||||
+ " order by prp.namaProduk asc, " + "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProdukVerif(@Param("namaProduk") String namaProduk,
|
||||
@Param("isVerif") Boolean isVerif);
|
||||
|
||||
@Query(strAllEnabled + produk + statusKlasifikasi + sortSearch)
|
||||
@Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor,"
|
||||
+ "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
|
||||
+ "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' "
|
||||
+ "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) "
|
||||
+ "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true "
|
||||
+ "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and lower(prp.namaProduk) like %:namaProduk%" + " and prp.klasifikasi = :kdKlasif"
|
||||
+ " order by prp.namaProduk asc, " + "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProdukKlasif(@Param("namaProduk") String namaProduk,
|
||||
@Param("kdKlasif") Short kdKlasif);
|
||||
|
||||
@Query(strAllEnabled + statusVerifikasi + statusKlasifikasi + sortSearch)
|
||||
@Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor,"
|
||||
+ "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
|
||||
+ "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' "
|
||||
+ "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) "
|
||||
+ "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true "
|
||||
+ "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and stp.statusVerifikasi = :isVerif" + " and prp.klasifikasi = :kdKlasif"
|
||||
+ " order by prp.namaProduk asc, " + "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByVerifKlasif(@Param("isVerif") Boolean isVerif,
|
||||
@Param("kdKlasif") Short kdKlasif);
|
||||
|
||||
@Query(strAllEnabled + produk + statusVerifikasi + statusKlasifikasi + sortSearch)
|
||||
@Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor,"
|
||||
+ "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
|
||||
+ "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' "
|
||||
+ "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) "
|
||||
+ "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true "
|
||||
+ "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
|
||||
+ " and lower(prp.namaProduk) like %:namaProduk%" + " and stp.statusVerifikasi = :isVerif"
|
||||
+ " and prp.klasifikasi = :kdKlasif" + " order by prp.namaProduk asc, "
|
||||
+ "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> findAllEnabledByProdukVerifKlasif(@Param("namaProduk") String namaProduk,
|
||||
@Param("isVerif") Boolean isVerif, @Param("kdKlasif") Short kdKlasif);
|
||||
|
||||
String strCekDupSkoring = "select stp.noRec " + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp "
|
||||
@Query("select stp.noRec " + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp "
|
||||
+ "where stp.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk";
|
||||
|
||||
String skor = " and stp.skor = :skor";
|
||||
|
||||
String tglBerlaku = " and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku";
|
||||
|
||||
String idSkoring = " and stp.noRec <> :noRec";
|
||||
|
||||
String sortTglBerlaku = " order by stp.tanggalMulaiBerlaku desc";
|
||||
|
||||
@Query(strCekDupSkoring + skor + sortTglBerlaku)
|
||||
+ "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk" + " and stp.skor = :skor"
|
||||
+ " order by stp.tanggalMulaiBerlaku desc")
|
||||
List<String> findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("skor") Double skor,
|
||||
@Param("patternText") String patternText);
|
||||
|
||||
@Query(strCekDupSkoring + tglBerlaku)
|
||||
@Query("select stp.noRec " + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp "
|
||||
+ "where stp.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk"
|
||||
+ " and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku")
|
||||
List<String> findDupSkoring(@Param("namaProduk") String namaProduk,
|
||||
@Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText);
|
||||
|
||||
@Query(strCekDupSkoring + skor + idSkoring + sortTglBerlaku)
|
||||
@Query("select stp.noRec " + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp "
|
||||
+ "where stp.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk" + " and stp.skor = :skor"
|
||||
+ " and stp.noRec <> :noRec" + " order by stp.tanggalMulaiBerlaku desc")
|
||||
List<String> findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("skor") Double skor,
|
||||
@Param("patternText") String patternText, @Param("noRec") String noRec);
|
||||
|
||||
@Query(strCekDupSkoring + tglBerlaku + idSkoring)
|
||||
@Query("select stp.noRec " + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp "
|
||||
+ "where stp.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk"
|
||||
+ " and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku" + " and stp.noRec <> :noRec")
|
||||
List<String> findDupSkoring(@Param("namaProduk") String namaProduk,
|
||||
@Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText,
|
||||
@Param("noRec") String noRec);
|
||||
|
||||
@ -0,0 +1,14 @@
|
||||
package com.jasamedika.medifirst2000.logging.dao;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.JenisLog;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
/**
|
||||
* @author Salman
|
||||
* @version 1.0.0
|
||||
* @since 31/01/2024
|
||||
*/
|
||||
public interface JenisLogDao extends JpaRepository<JenisLog, Long> {
|
||||
|
||||
boolean existsByJenisLog(String jenisLog);
|
||||
}
|
||||
@ -7,19 +7,10 @@
|
||||
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
|
||||
|
||||
<context:annotation-config />
|
||||
|
||||
<context:component-scan base-package="com.jasamedika.medifirst2000"/>
|
||||
|
||||
<jpa:repositories base-package="com.jasamedika.medifirst2000.dao"
|
||||
entity-manager-factory-ref="entityManagerFactory" transaction-manager-ref="transactionManager" />
|
||||
|
||||
|
||||
|
||||
<!-- <bean id="facadeMonitoringAdvisor" class="net.bull.javamelody.MonitoringSpringAdvisor">
|
||||
<property name="pointcut">
|
||||
<bean class="net.bull.javamelody.MonitoredWithInterfacePointcut">
|
||||
<property name="interfaceName" value="com.jasamedika.medifirst2000.service.MonitoredService" />
|
||||
</bean>
|
||||
</property>
|
||||
</bean> -->
|
||||
<context:component-scan base-package="com.jasamedika.medifirst2000" />
|
||||
|
||||
<jpa:repositories base-package="com.jasamedika.medifirst2000.dao"
|
||||
entity-manager-factory-ref="entityManagerFactory"
|
||||
transaction-manager-ref="transactionManager" />
|
||||
</beans>
|
||||
|
||||
@ -1,55 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
/**Agama Class Test
|
||||
*/
|
||||
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.AsalAnggaranDao;
|
||||
import com.jasamedika.medifirst2000.entities.AsalAnggaran;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class AsalAnggaranDaoTest {
|
||||
|
||||
/*@Autowired
|
||||
private AsalAnggaranDao dao;
|
||||
|
||||
@Test
|
||||
public void testFindById() {
|
||||
AsalAnggaran result = dao.findOne(1);
|
||||
assertNull(result);
|
||||
}
|
||||
*/
|
||||
|
||||
public static void main(String[]args) throws ParseException{
|
||||
|
||||
/*String[] dayNameArray = {"Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"};
|
||||
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
String dayName = dayNameArray[DateUtil.now().getDay()-1];
|
||||
String dateNumber = String.valueOf(DateUtil.now().getDate());
|
||||
String dateFullFormat = format.format(DateUtil.now().getTime());
|
||||
|
||||
String time = new SimpleDateFormat("HH:mm").format(Calendar.getInstance().getTime());
|
||||
|
||||
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
|
||||
Date date1 = format.parse(time);
|
||||
Date date2 = format.parse("12:00");
|
||||
Long timeNow = date1.getTime();
|
||||
Long timeEnd = date2.getTime();*/
|
||||
}
|
||||
}
|
||||
@ -1,31 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
/**Agama Class Test
|
||||
*/
|
||||
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.DepartemenDao;
|
||||
import com.jasamedika.medifirst2000.entities.Departemen;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class DepartemenDaoTest {
|
||||
|
||||
@Autowired
|
||||
private DepartemenDao dao;
|
||||
|
||||
@Test
|
||||
public void testFindById() {
|
||||
Departemen result = dao.findOne(1);
|
||||
// System.out.println(result.getAlamats().size());
|
||||
// assertNotNull(result.getAlamats());
|
||||
//assertNull(result);
|
||||
}
|
||||
}
|
||||
@ -1,41 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
/**Agama Class Test
|
||||
*/
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.AntrianPasienDiPeriksaDao;
|
||||
import com.jasamedika.medifirst2000.dao.FungsiProdukDao;
|
||||
import com.jasamedika.medifirst2000.entities.FungsiProduk;
|
||||
import com.jasamedika.medifirst2000.service.AntrianPasienDiPeriksaService;
|
||||
import com.jasamedika.medifirst2000.service.MonitoringAbsenService;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class FungsiProdukDaoTest {
|
||||
|
||||
@Autowired
|
||||
private FungsiProdukDao dao;
|
||||
|
||||
@Autowired
|
||||
private MonitoringAbsenService monitoringAbsenService;
|
||||
|
||||
@Test
|
||||
public void testFindById() {
|
||||
FungsiProduk result = dao.findOne(1);
|
||||
assertNull(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLemburSDM(){
|
||||
Integer lembur = monitoringAbsenService.getLemburVerifiedbySDM(141, "1-November-2017");
|
||||
assertSame(360, lembur);
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,35 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapPernapasanDao;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class GenerateNoCmDaoTest {
|
||||
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindNoCmDaoSelect() {
|
||||
List<String> list=pasienDao.findAllNoCm();
|
||||
assertNotNull(list);
|
||||
System.out.println("LISSSSSSSSSST : "+list.size());
|
||||
assertEquals("8", list.size());
|
||||
}
|
||||
}
|
||||
@ -1,31 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
/**Agama Class Test
|
||||
*/
|
||||
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.JenisRekananDao;
|
||||
import com.jasamedika.medifirst2000.entities.JenisRekanan;
|
||||
|
||||
//@RunWith(SpringJUnit4ClassRunner.class)
|
||||
//@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class JenisRekananDaoTest {
|
||||
|
||||
// @Autowired
|
||||
private JenisRekananDao dao;
|
||||
|
||||
// @Test
|
||||
public void testFindById() {
|
||||
JenisRekanan result = dao.findOne(1);
|
||||
// System.out.println(result.getAlamats().size());
|
||||
// assertNotNull(result.getAlamats());
|
||||
assertNull(result);
|
||||
}
|
||||
}
|
||||
@ -1,29 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
/**Agama Class Test
|
||||
*/
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.custom.impl.KalkulatorDaoCustomImpl;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class KalkulatorDaoTest {
|
||||
|
||||
@Autowired
|
||||
private KalkulatorDaoCustomImpl dao;
|
||||
|
||||
@Test
|
||||
public void testKalkluator() {
|
||||
String operationInput = "14 + 6/3 - 3*5 + 9-8 * (4-2)";
|
||||
int result = dao.calculateFromString(operationInput);
|
||||
assertEquals(-6, result);
|
||||
}
|
||||
}
|
||||
@ -1,31 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
/**Agama Class Test
|
||||
*/
|
||||
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.KelompokProdukDao;
|
||||
import com.jasamedika.medifirst2000.entities.KelompokProduk;
|
||||
|
||||
//@RunWith(SpringJUnit4ClassRunner.class)
|
||||
//@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class KelompokProdukDaoTest {
|
||||
|
||||
// @Autowired
|
||||
private KelompokProdukDao dao;
|
||||
|
||||
// @Test
|
||||
public void testFindById() {
|
||||
KelompokProduk result = dao.findOne(1);
|
||||
// System.out.println(result.getAlamats().size());
|
||||
// assertNotNull(result.getAlamats());
|
||||
assertNull(result);
|
||||
}
|
||||
}
|
||||
@ -1,42 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
/**Agama Class Test
|
||||
*/
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.entities.LoginUser;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class LoginUserDaoTest {
|
||||
|
||||
@Autowired
|
||||
private LoginUserDao dao;
|
||||
|
||||
@Test
|
||||
public void testFindById() {
|
||||
try {
|
||||
LoginUser result = dao.findOne(new Integer(1));
|
||||
assertNotNull(result);
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
// System.out.println(result.getAlamats().size());
|
||||
// assertNotNull(result.getAlamats());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNorec(){
|
||||
LoginUser loginUser = new LoginUser();
|
||||
assertNotNull(loginUser.getNoRec());
|
||||
}
|
||||
}
|
||||
@ -1,93 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
/**Agama Class Test
|
||||
*/
|
||||
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
import com.jasamedika.medifirst2000.entities.PapAlergi;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.entities.RegistrasiPelayananPasien;
|
||||
import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapAlergiDao;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapAlergiDaoTest {/*
|
||||
|
||||
@Autowired
|
||||
private PapAlergiDao papAlergiDao;
|
||||
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPapAlergiDaoSave(){
|
||||
PapAlergi model = populateModel();
|
||||
PapAlergi resultModel1 = papAlergiDao.save(model);
|
||||
Cek Hasil save
|
||||
assertNotNull(resultModel1);
|
||||
assertEquals(resultModel1.getKeteranganData(),"Keterangan Data Alergi");
|
||||
assertEquals(resultModel1.getPasien().getNamaPasien(),"adik");
|
||||
assertEquals(resultModel1.getRegistrasiPelayananPasien().getKeteranganLainnyaRencana(),"Rencana");
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPapAlergiDaoUpdate(){
|
||||
PapAlergi model = populateModel();
|
||||
PapAlergi result = papAlergiDao.save(model);
|
||||
assertNotNull(result);
|
||||
result.getPasien().setNamaPasien("Nama Update");
|
||||
result.getRegistrasiPelayananPasien().setKeteranganLainnyaRencana("Keterangan Update");
|
||||
result.setKeteranganData("Keterangan Data Update");
|
||||
|
||||
PapAlergi resultUpdate = papAlergiDao.save(result);
|
||||
assertEquals("Keterangan Data Update",resultUpdate.getKeteranganData());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPapAlergiDaoDelete(){
|
||||
PapAlergi model = populateModel();
|
||||
papAlergiDao.save(model);
|
||||
|
||||
PapAlergi resultModel1 = papAlergiDao.findOne(model.getNoRec());
|
||||
Cek Model di Database
|
||||
assertNotNull(resultModel1);
|
||||
assertNotNull(resultModel1.getKeteranganData());
|
||||
|
||||
papAlergiDao.delete(model);
|
||||
PapAlergi resultModel2 = papAlergiDao.findOne(model.getNoRec());
|
||||
Cek Hasil Delete Model
|
||||
assertNull(resultModel2);
|
||||
}
|
||||
|
||||
public PapAlergi populateModel(){
|
||||
PapAlergi model = new PapAlergi();
|
||||
RegistrasiPelayananPasien registrasiPelayananPasien = new RegistrasiPelayananPasien();
|
||||
registrasiPelayananPasien.setKeteranganLainnyaRencana("Rencana");
|
||||
Pasien pasien = pasienDao.findOne(393);
|
||||
|
||||
model.setRegistrasiPelayananPasien(registrasiPelayananPasien);
|
||||
model.setPasien(pasien);
|
||||
model.setKeteranganData("Keterangan Data Alergi");
|
||||
return model;
|
||||
}
|
||||
*/}
|
||||
@ -1,103 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
/**Agama Class Test
|
||||
*/
|
||||
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
import com.jasamedika.medifirst2000.entities.PapAlergi;
|
||||
import com.jasamedika.medifirst2000.entities.PapAnamesis;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.entities.RegistrasiPelayananPasien;
|
||||
import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapAnamesisDao;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapAnamesisDaoTest {
|
||||
|
||||
@Autowired
|
||||
private PapAnamesisDao papAnamesisDao;
|
||||
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPapAnamesisDaoSave(){
|
||||
PapAnamesis model = populateModel();
|
||||
PapAnamesis result = papAnamesisDao.save(model);
|
||||
assertNotNull(result);
|
||||
assertEquals(result.getKeluhan(),"Keterangan Keluhan");
|
||||
assertEquals(result.getPasien().getNamaPasien(),"adik");
|
||||
assertNotNull(result.getRegistrasiPelayananPasien());
|
||||
assertNotNull(result.getTglInput());
|
||||
|
||||
PapAnamesis resultFind = papAnamesisDao.findOne(model.getNoRec());
|
||||
assertNotNull(resultFind);
|
||||
assertEquals(resultFind.getKeluhan(),"Keterangan Keluhan");
|
||||
assertEquals(resultFind.getPasien().getNamaPasien(),"adik");
|
||||
assertNotNull(resultFind.getRegistrasiPelayananPasien());
|
||||
assertNotNull(resultFind.getTglInput());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPapAnamesisDaoUpdate(){
|
||||
PapAnamesis model = populateModel();
|
||||
PapAnamesis result = papAnamesisDao.save(model);
|
||||
assertNotNull(result);
|
||||
|
||||
result.setKeluhan("Update Keluhan");
|
||||
result.getPasien().setNamaPasien("Update Nama Pasien");
|
||||
result.getRegistrasiPelayananPasien().setKdDokter("Update Kode Dokter");
|
||||
papAnamesisDao.save(result);
|
||||
|
||||
PapAnamesis resultUpdate = papAnamesisDao.findOne(result.getNoRec());
|
||||
assertEquals("Update Keluhan",resultUpdate.getKeluhan());
|
||||
assertEquals("Update Nama Pasien",resultUpdate.getPasien().getNamaPasien());
|
||||
assertEquals("Update Kode Dokter",resultUpdate.getRegistrasiPelayananPasien().getKdDokter());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPapAnamesisDaoDelete(){
|
||||
PapAnamesis model = populateModel();
|
||||
papAnamesisDao.save(model);
|
||||
|
||||
PapAnamesis result1 = papAnamesisDao.findOne(model.getNoRec());
|
||||
assertNotNull(result1);
|
||||
assertNotNull(result1.getKeluhan());
|
||||
|
||||
papAnamesisDao.delete(model);
|
||||
PapAnamesis result2 = papAnamesisDao.findOne(model.getNoRec());
|
||||
assertNull(result2);
|
||||
|
||||
}
|
||||
|
||||
public PapAnamesis populateModel(){
|
||||
PapAnamesis model = new PapAnamesis();
|
||||
Pasien pasien = pasienDao.findOne(393);
|
||||
model.setPasien(pasien);
|
||||
model.setTglInput(new Date());
|
||||
model.setRegistrasiPelayananPasien(new RegistrasiPelayananPasien());
|
||||
model.setKeluhan("Keterangan Keluhan");
|
||||
return model;
|
||||
}
|
||||
}
|
||||
@ -1,85 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapCatatanDao;
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
import com.jasamedika.medifirst2000.entities.PapCatatan;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapCatatanDaoTest {
|
||||
|
||||
@Autowired
|
||||
private GenericViewDao genericViewDao;
|
||||
@Autowired
|
||||
private PapCatatanDao papCatatanDao;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testGenericDaoSelect() {
|
||||
GenericView rujukan = populateGenericView("Rujukan");
|
||||
assertNotNull(rujukan);
|
||||
assertEquals("1", String.valueOf(rujukan.getKdGenericView()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPCatatanDaoSave() {
|
||||
PapCatatan model = populateModel();
|
||||
PapCatatan resultModel=papCatatanDao.save(model);
|
||||
assertNotNull(resultModel);
|
||||
assertNotNull(resultModel.getRujukan());
|
||||
//assertEquals("1", String.valueOf(resultModel.getRujukan().getKdGenericView()));
|
||||
PapCatatan resultModel2=papCatatanDao.findOne(resultModel.getNoRec());
|
||||
assertNotNull(resultModel2);
|
||||
assertNotNull(resultModel2.getRujukan());
|
||||
//assertEquals("1", String.valueOf(resultModel2.getRujukan().getKdGenericView()));
|
||||
}
|
||||
|
||||
private PapCatatan populateModel() {
|
||||
PapCatatan model=new PapCatatan();
|
||||
GenericView rujukan = populateGenericView("Rujukan");
|
||||
//model.setRujukan(rujukan);
|
||||
return model;
|
||||
}
|
||||
|
||||
private GenericView populateGenericView(String previx) {
|
||||
GenericView genericView=new GenericView();
|
||||
List<GenericView> listRujukan=genericViewDao.findGenericViewByPrevix(previx);
|
||||
for (GenericView gv:listRujukan) {
|
||||
if(gv.getKdGenericView()==1){
|
||||
genericView=gv;
|
||||
}
|
||||
}
|
||||
return genericView;
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPCatatanDaoFindAll() {
|
||||
PapCatatan model1 = populateModel();
|
||||
PapCatatan resultModel1=papCatatanDao.save(model1);
|
||||
PapCatatan model2 = populateModel();
|
||||
PapCatatan resultModel2=papCatatanDao.save(model2);
|
||||
assertNotNull(resultModel1);
|
||||
assertNotNull(resultModel2);
|
||||
List<PapCatatan> results = (List<PapCatatan>) papCatatanDao.findAll();
|
||||
assertTrue(results.size() > 0);
|
||||
assertNotNull(results);
|
||||
assertTrue(results.size() == 2);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,128 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapEliminasiDao;
|
||||
import com.jasamedika.medifirst2000.dao.RegistrasiPelayananPasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
import com.jasamedika.medifirst2000.entities.PapEliminasi;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapEliminasiDaoTest {
|
||||
|
||||
@Autowired
|
||||
private GenericViewDao genericViewDao;
|
||||
@Autowired
|
||||
private PapEliminasiDao papEliminasiDao;
|
||||
@Autowired
|
||||
private RegistrasiPelayananPasienDao registrasiPelayananPasienDao;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
//registrasiPelayananPasienDao.findOne("40288c99557b0f0f01557b155bcc0000");
|
||||
Date tgl=DateUtil.toDate("2016-06-19");
|
||||
System.out.println("DATEEEEEEEEEE : "+ tgl);
|
||||
// PapEliminasi abc=papEliminasiDao.findPapEliminasiByNoCmAndTglInput("00001", DateUtil.toDate("2016-06-19"));
|
||||
PapEliminasi abc=papEliminasiDao.findByNoRec("40288c99559075a1015590762cb40000");
|
||||
assertNotNull(abc);
|
||||
assertNotNull(abc.getPasien());
|
||||
assertEquals("00001", abc.getPasien().getNoCm());
|
||||
}
|
||||
/*
|
||||
@Test
|
||||
@Transactional
|
||||
public void testGenericDaoSelect() {
|
||||
GenericView pengeluaranDefeaksi = populateGenericView("Pengeluaran Defeaksi");
|
||||
GenericView pengeluaranUrin = populateGenericView("Pengeluaran Urin");
|
||||
GenericView karakteristikFeses = populateGenericView("Karakteristik Feses");
|
||||
assertNotNull(pengeluaranDefeaksi);
|
||||
assertNotNull(pengeluaranUrin);
|
||||
assertNotNull(karakteristikFeses);
|
||||
assertEquals("1", String.valueOf(pengeluaranDefeaksi.getKdGenericView()));
|
||||
assertEquals("1", String.valueOf(pengeluaranUrin.getKdGenericView()));
|
||||
assertEquals("1", String.valueOf(karakteristikFeses.getKdGenericView()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPEliminasiDaoSave() {
|
||||
PapEliminasi model = populateModel();
|
||||
PapEliminasi resultModel=papEliminasiDao.save(model);
|
||||
assertNotNull(resultModel);
|
||||
assertEquals("1", resultModel.getFrekuensiDefeaksi());
|
||||
assertEquals("2", resultModel.getKonsistensiDefeaksi());
|
||||
assertEquals("3", resultModel.getDiuresisUrin());
|
||||
assertNotNull(resultModel.getPengeluaranDefeaksi());
|
||||
assertNotNull(resultModel.getPengeluaranUrin());
|
||||
assertNotNull(resultModel.getKarakteristikFeses());
|
||||
PapEliminasi resultModel2=papEliminasiDao.findOne(resultModel.getNoRec());
|
||||
assertNotNull(resultModel2);
|
||||
assertEquals("1", resultModel2.getFrekuensiDefeaksi());
|
||||
assertEquals("2", resultModel2.getKonsistensiDefeaksi());
|
||||
assertEquals("3", resultModel2.getDiuresisUrin());
|
||||
assertNotNull(resultModel2.getPengeluaranDefeaksi());
|
||||
assertNotNull(resultModel2.getPengeluaranUrin());
|
||||
assertNotNull(resultModel2.getKarakteristikFeses());
|
||||
assertEquals("1",String.valueOf(resultModel2.getPengeluaranDefeaksi().getKdGenericView()));
|
||||
assertEquals("1",String.valueOf(resultModel2.getPengeluaranUrin().getKdGenericView()));
|
||||
assertEquals("1",String.valueOf(resultModel2.getKarakteristikFeses().getKdGenericView()));
|
||||
}
|
||||
|
||||
private PapEliminasi populateModel() {
|
||||
PapEliminasi model=new PapEliminasi();
|
||||
GenericView pengeluaranDefeaksi = populateGenericView("Pengeluaran Defeaksi");
|
||||
GenericView pengeluaranUrin = populateGenericView("Pengeluaran Urin");
|
||||
GenericView karakteristikFeses = populateGenericView("Karakteristik Feses");
|
||||
model.setPengeluaranDefeaksi(pengeluaranDefeaksi);
|
||||
model.setFrekuensiDefeaksi("1");
|
||||
model.setKonsistensiDefeaksi("2");
|
||||
model.setKarakteristikFeses(karakteristikFeses);
|
||||
model.setPengeluaranUrin(pengeluaranUrin);
|
||||
model.setIsKelainanUrin(true);
|
||||
model.setDiuresisUrin("3");
|
||||
return model;
|
||||
}
|
||||
|
||||
private GenericView populateGenericView(String previx) {
|
||||
GenericView genericView=new GenericView();
|
||||
List<GenericView> list=genericViewDao.findGenericViewByPrevix(previx);
|
||||
for (GenericView gv:list) {
|
||||
if(gv.getKdGenericView()==1){
|
||||
genericView=gv;
|
||||
}
|
||||
}
|
||||
return genericView;
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPEliminasiDaoFindAll() {
|
||||
PapEliminasi model1 = populateModel();
|
||||
PapEliminasi resultModel1=papEliminasiDao.save(model1);
|
||||
PapEliminasi model2 = populateModel();
|
||||
PapEliminasi resultModel2=papEliminasiDao.save(model2);
|
||||
assertNotNull(resultModel1);
|
||||
assertNotNull(resultModel2);
|
||||
List<PapEliminasi> results = (List<PapEliminasi>) papEliminasiDao.findAll();
|
||||
assertTrue(results.size() > 0);
|
||||
assertNotNull(results);
|
||||
assertTrue(results.size() == 2);
|
||||
}
|
||||
*/
|
||||
}
|
||||
@ -1,103 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapGastrointestinalDao;
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
import com.jasamedika.medifirst2000.entities.PapGastrointestinal;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapGastrointestinalDaoTest {
|
||||
|
||||
@Autowired
|
||||
private GenericViewDao genericViewDao;
|
||||
@Autowired
|
||||
private PapGastrointestinalDao papGastrointestinalDao;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testGenericDaoSelect() {
|
||||
GenericView mulut = populateGenericView("Mulut");
|
||||
assertNotNull(mulut);
|
||||
assertEquals("1", String.valueOf(mulut.getKdGenericView()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPGastrointestinalDaoSave() {
|
||||
PapGastrointestinal model = populateModel();
|
||||
PapGastrointestinal resultModel=papGastrointestinalDao.save(model);
|
||||
assertNotNull(resultModel);
|
||||
assertNotNull(resultModel.getMulut());
|
||||
// assertEquals("1", String.valueOf(resultModel.getMulut().getKdGenericView()));
|
||||
//assertEquals(true,resultModel.getIsAscites());
|
||||
//assertEquals(true,resultModel.getIsMual());
|
||||
//assertEquals(true,resultModel.getIsMuntah());
|
||||
//assertEquals(true,resultModel.getIsNyeriUluHati());
|
||||
assertEquals("1",resultModel.getPeristaltikUsus());
|
||||
assertEquals("2",resultModel.getLingkarPerut());
|
||||
PapGastrointestinal resultModel2=papGastrointestinalDao.findOne(resultModel.getNoRec());
|
||||
assertNotNull(resultModel2);
|
||||
assertNotNull(resultModel2.getMulut());
|
||||
// assertEquals("1", String.valueOf(resultModel2.getMulut().getKdGenericView()));
|
||||
// assertEquals(true,resultModel2.getIsAscites());
|
||||
// assertEquals(true,resultModel2.getIsMual());
|
||||
// assertEquals(true,resultModel2.getIsMuntah());
|
||||
// assertEquals(true,resultModel2.getIsNyeriUluHati());
|
||||
assertEquals("1",resultModel2.getPeristaltikUsus());
|
||||
assertEquals("2",resultModel2.getLingkarPerut());
|
||||
}
|
||||
|
||||
private PapGastrointestinal populateModel() {
|
||||
PapGastrointestinal model=new PapGastrointestinal();
|
||||
GenericView mulut = populateGenericView("Mulut");
|
||||
// model.setMulut(mulut);
|
||||
// model.setIsAscites(true);
|
||||
// model.setIsMual(true);
|
||||
// model.setIsMuntah(true);
|
||||
// model.setIsNyeriUluHati(true);
|
||||
model.setPeristaltikUsus("1");
|
||||
model.setLingkarPerut("2");
|
||||
return model;
|
||||
}
|
||||
|
||||
private GenericView populateGenericView(String previx) {
|
||||
GenericView genericView=new GenericView();
|
||||
List<GenericView> list=genericViewDao.findGenericViewByPrevix(previx);
|
||||
for (GenericView gv:list) {
|
||||
if(gv.getKdGenericView()==1){
|
||||
genericView=gv;
|
||||
}
|
||||
}
|
||||
return genericView;
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPGastrointestinalDaoFindAll() {
|
||||
PapGastrointestinal model1 = populateModel();
|
||||
PapGastrointestinal resultModel1=papGastrointestinalDao.save(model1);
|
||||
PapGastrointestinal model2 = populateModel();
|
||||
PapGastrointestinal resultModel2=papGastrointestinalDao.save(model2);
|
||||
assertNotNull(resultModel1);
|
||||
assertNotNull(resultModel2);
|
||||
List<PapGastrointestinal> results = (List<PapGastrointestinal>) papGastrointestinalDao.findAll();
|
||||
assertTrue(results.size() > 0);
|
||||
assertNotNull(results);
|
||||
assertTrue(results.size() == 2);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,152 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
/**Agama Class Test
|
||||
*/
|
||||
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
import com.jasamedika.medifirst2000.entities.JenisKelamin;
|
||||
import com.jasamedika.medifirst2000.entities.PapCatatan;
|
||||
import com.jasamedika.medifirst2000.entities.PapGenatalia;
|
||||
import com.jasamedika.medifirst2000.entities.PapRiwayatPsikososial;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.entities.Pendidikan;
|
||||
import com.jasamedika.medifirst2000.entities.RegistrasiPelayananPasien;
|
||||
import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapGenataliaDao;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapGenataliaDaoTest {
|
||||
|
||||
@Autowired
|
||||
private PapGenataliaDao papGenataliaDao;
|
||||
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPapGenetaliaDaoSave(){
|
||||
PapGenatalia model = populateModel();
|
||||
PapGenatalia result = papGenataliaDao.save(model);
|
||||
assertNotNull(result);
|
||||
assertEquals(result.getKeterangan(),"Keterangan Genatalia");
|
||||
assertEquals(result.getStatus(),"Status Genatalia");
|
||||
assertNotNull(result.getRegistrasiPelayananPasien());
|
||||
assertEquals(result.getRegistrasiPelayananPasien().getNamaTempatTujuan(),"Nama Tempat Tujuan");
|
||||
assertNotNull(result.getPasien());
|
||||
assertEquals(result.getPasien().getUmur(),"Umur Pasien");
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPapGenataliaDaoUpdate(){
|
||||
PapGenatalia model = populateModel();
|
||||
PapGenatalia resultModel1 = papGenataliaDao.save(model);
|
||||
assertNotNull(resultModel1);
|
||||
|
||||
/*Proses Update*/
|
||||
PapGenatalia resultModel2 = papGenataliaDao.findOne(model.getNoRec());
|
||||
resultModel2.setKeterangan("Keterangan Update");
|
||||
resultModel2.setStatus("Status Update");
|
||||
Pasien pasien = new Pasien();
|
||||
pasien.setUmur("Umur Update");
|
||||
resultModel2.setPasien(pasien);
|
||||
RegistrasiPelayananPasien registrasiPelayananPasien = new RegistrasiPelayananPasien();
|
||||
registrasiPelayananPasien.setNamaTempatTujuan("Tujuan Update");
|
||||
resultModel2.setRegistrasiPelayananPasien(registrasiPelayananPasien);
|
||||
papGenataliaDao.save(resultModel2);
|
||||
|
||||
/*Cek Nilai Update di DB*/
|
||||
PapGenatalia resultModel3 = papGenataliaDao.findOne(model.getNoRec());
|
||||
assertEquals("Keterangan Update",resultModel3.getKeterangan());
|
||||
assertEquals("Status Update",resultModel3.getStatus());
|
||||
assertEquals("Umur Update",resultModel3.getPasien().getUmur());
|
||||
assertEquals("Tujuan Update",resultModel3.getRegistrasiPelayananPasien().getNamaTempatTujuan());
|
||||
}
|
||||
|
||||
// @Test
|
||||
@Transactional
|
||||
public void testPapGenetaliaDaoFindAll(){
|
||||
/* Model 1 */
|
||||
PapGenatalia model = populateModel();
|
||||
PapGenatalia resultModel = papGenataliaDao.save(model);
|
||||
assertNotNull(resultModel);
|
||||
assertNotNull(resultModel.getKeterangan());
|
||||
|
||||
/* Model 2*/
|
||||
PapGenatalia model2 = populateModel();
|
||||
PapGenatalia resultModel2 = papGenataliaDao.save(model2);
|
||||
assertNotNull(resultModel2);
|
||||
assertNotNull(resultModel2.getKeterangan());
|
||||
|
||||
/* Cek Model di Database */
|
||||
try {
|
||||
List<PapGenatalia> hasil = toList(papGenataliaDao.findAll());
|
||||
assertNotNull(hasil);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPapGenetaliaDaoDelete(){
|
||||
PapGenatalia model1 = populateModel();
|
||||
PapGenatalia resultModel = papGenataliaDao.save(model1);
|
||||
assertNotNull(resultModel);
|
||||
assertNotNull(resultModel.getKeterangan());
|
||||
PapGenatalia result1 = papGenataliaDao.findOne(model1.getNoRec());
|
||||
assertNotNull(result1);
|
||||
|
||||
papGenataliaDao.delete(model1);
|
||||
result1 = papGenataliaDao.findOne(model1.getNoRec());
|
||||
assertNull(result1);
|
||||
}
|
||||
|
||||
/* Source : */
|
||||
/* http://www.java2s.com/Code/Java/Collections-Data-Structure/ConvertIterabletoList.htm */
|
||||
public static <E> List<E> toList(Iterable<E> iterable) {
|
||||
if(iterable instanceof List) {
|
||||
return (List<E>) iterable;
|
||||
}
|
||||
ArrayList<E> list = new ArrayList<E>();
|
||||
if(iterable != null) {
|
||||
for(E e: iterable) {
|
||||
list.add(e);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public PapGenatalia populateModel(){
|
||||
PapGenatalia model = new PapGenatalia();
|
||||
RegistrasiPelayananPasien registrasiPelayananPasien = new RegistrasiPelayananPasien();
|
||||
registrasiPelayananPasien.setNamaTempatTujuan("Nama Tempat Tujuan");
|
||||
Pasien pasien = pasienDao.findOne(541);
|
||||
pasien.setUmur("Umur Pasien");
|
||||
|
||||
model.setRegistrasiPelayananPasien(registrasiPelayananPasien);
|
||||
model.setPasien(pasien);
|
||||
model.setStatus("Status Genatalia");
|
||||
model.setKeterangan("Keterangan Genatalia");
|
||||
return model;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,79 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapEliminasiDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapKeluhanTambahanDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapKeluhanUtamaDao;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.dao.RegistrasiPelayananPasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
import com.jasamedika.medifirst2000.entities.PapEliminasi;
|
||||
import com.jasamedika.medifirst2000.entities.PapKeluhanTambahan;
|
||||
import com.jasamedika.medifirst2000.entities.PapKeluhanUtama;
|
||||
import com.jasamedika.medifirst2000.entities.PapMuskuloskeletal;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.entities.RegistrasiPelayananPasien;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapKeluhanUtamaDaoTest {/*
|
||||
|
||||
@Autowired
|
||||
private PapKeluhanUtamaDao papKeluhanUtamaDao;
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPMuskuloskeletalDaoSave() {
|
||||
PapKeluhanUtama model = populateModel();
|
||||
PapKeluhanUtama resultModel=papKeluhanUtamaDao.save(model);
|
||||
assertNotNull(resultModel);
|
||||
// assertEquals(false, resultModel.getIsKelainanTulangAda());
|
||||
// assertEquals(true, resultModel.getIsGerakanAnakBebas());
|
||||
PapKeluhanUtama resultModel2=papKeluhanUtamaDao.findOne("40288cd955ec500d0155ed88a93b0004");
|
||||
assertNotNull(resultModel2);
|
||||
// assertEquals(false, resultModel2.getIsKelainanTulangAda());
|
||||
// assertEquals(true, resultModel2.getIsGerakanAnakBebas());
|
||||
resultModel2=populateModelUpdate();
|
||||
PapKeluhanUtama resultModelUpdate=papKeluhanUtamaDao.save(resultModel2);
|
||||
assertNotNull(resultModelUpdate);
|
||||
assertEquals("abcd", resultModelUpdate.getKeluhanUtama());
|
||||
// assertEquals(false, resultModelUpdate.getIsGerakanAnakBebas());
|
||||
|
||||
}
|
||||
|
||||
private PapKeluhanUtama populateModel() {
|
||||
Pasien pasien=new Pasien();
|
||||
pasien.setId(535);
|
||||
PapKeluhanUtama keluhanUtama=new PapKeluhanUtama();
|
||||
keluhanUtama.setPasien(pasien);
|
||||
keluhanUtama.setKeluhanUtama("abc");
|
||||
return keluhanUtama;
|
||||
}
|
||||
|
||||
private PapKeluhanUtama populateModelUpdate() {
|
||||
Pasien pasien=new Pasien();
|
||||
pasien.setId(535);
|
||||
PapKeluhanUtama keluhanUtama=new PapKeluhanUtama();
|
||||
keluhanUtama.setPasien(pasien);
|
||||
keluhanUtama.setKeluhanUtama("abcd");
|
||||
return keluhanUtama;
|
||||
}
|
||||
|
||||
*/}
|
||||
@ -1,93 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
/**Agama Class Test
|
||||
*/
|
||||
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
import com.jasamedika.medifirst2000.entities.PapAlergi;
|
||||
import com.jasamedika.medifirst2000.entities.PapMuskuloskeletal;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.entities.RegistrasiPelayananPasien;
|
||||
import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapAlergiDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapMuskuloskeletalDao;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapMuskoskeletalDaoTest {
|
||||
|
||||
@Autowired
|
||||
private PapMuskuloskeletalDao papMuskuloskeletalDao;
|
||||
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPapAlergiDaoSave(){
|
||||
PapMuskuloskeletal model = populateModel();
|
||||
PapMuskuloskeletal result = papMuskuloskeletalDao.save(model);
|
||||
assertNotNull(result);
|
||||
assertNotNull(result.getRegistrasiPelayananPasien());
|
||||
assertEquals(result.getRegistrasiPelayananPasien().getNamaTempatTujuan(),"Nama Tempat Tujuan");
|
||||
assertNotNull(result.getPasien());
|
||||
assertEquals(result.getPasien().getUmur(),"Umur Pasien");
|
||||
assertNotNull(result.getTglInput());
|
||||
assertTrue(result.getStatusEnabled());
|
||||
|
||||
PapMuskuloskeletal resultSelect = papMuskuloskeletalDao.findOne(model.getNoRec());
|
||||
assertNotNull(resultSelect);
|
||||
assertNotNull(resultSelect.getRegistrasiPelayananPasien());
|
||||
assertEquals(resultSelect.getRegistrasiPelayananPasien().getNamaTempatTujuan(),"Nama Tempat Tujuan");
|
||||
assertNotNull(resultSelect.getPasien());
|
||||
assertEquals(resultSelect.getPasien().getUmur(),"Umur Pasien");
|
||||
assertNotNull(resultSelect.getTglInput());
|
||||
assertTrue(resultSelect.getStatusEnabled());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPapAlergiDaoUpdate(){
|
||||
PapMuskuloskeletal model = populateModel();
|
||||
PapMuskuloskeletal result = papMuskuloskeletalDao.save(model);
|
||||
assertNotNull(result);
|
||||
}
|
||||
|
||||
// @Test
|
||||
@Transactional
|
||||
public void testPapAlergiDaoDelete(){
|
||||
|
||||
}
|
||||
|
||||
public PapMuskuloskeletal populateModel(){
|
||||
PapMuskuloskeletal model = new PapMuskuloskeletal();
|
||||
RegistrasiPelayananPasien registrasiPelayananPasien = new RegistrasiPelayananPasien();
|
||||
registrasiPelayananPasien.setNamaTempatTujuan("Nama Tempat Tujuan");
|
||||
Pasien pasien = pasienDao.findOne(393);
|
||||
pasien.setUmur("Umur Pasien");
|
||||
|
||||
model.setRegistrasiPelayananPasien(registrasiPelayananPasien);
|
||||
model.setPasien(pasien);
|
||||
model.setTglInput(new Date());
|
||||
model.setStatusEnabled(true);
|
||||
return model;
|
||||
}
|
||||
}
|
||||
@ -1,74 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.PapMuskuloskeletalDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapMuskuloskeletal;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapMuskuloskeletalDaoTest {
|
||||
|
||||
@Autowired
|
||||
private PapMuskuloskeletalDao papMuskuloskeletalDao;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPMuskuloskeletalDaoSave() {
|
||||
PapMuskuloskeletal model = populateModel();
|
||||
PapMuskuloskeletal resultModel=papMuskuloskeletalDao.save(model);
|
||||
assertNotNull(resultModel);
|
||||
// assertEquals(false, resultModel.getIsKelainanTulangAda());
|
||||
// assertEquals(true, resultModel.getIsGerakanAnakBebas());
|
||||
PapMuskuloskeletal resultModel2=papMuskuloskeletalDao.findOne(resultModel.getNoRec());
|
||||
assertNotNull(resultModel2);
|
||||
// assertEquals(false, resultModel2.getIsKelainanTulangAda());
|
||||
// assertEquals(true, resultModel2.getIsGerakanAnakBebas());
|
||||
resultModel2=populateModelUpdate();
|
||||
PapMuskuloskeletal resultModelUpdate=papMuskuloskeletalDao.save(resultModel2);
|
||||
assertNotNull(resultModelUpdate);
|
||||
// assertEquals(true, resultModelUpdate.getIsKelainanTulangAda());
|
||||
// assertEquals(false, resultModelUpdate.getIsGerakanAnakBebas());
|
||||
|
||||
}
|
||||
|
||||
private PapMuskuloskeletal populateModel() {
|
||||
PapMuskuloskeletal model=new PapMuskuloskeletal();
|
||||
// model.setIsKelainanTulangAda(false);
|
||||
// model.setIsGerakanAnakBebas(true);
|
||||
return model;
|
||||
}
|
||||
|
||||
private PapMuskuloskeletal populateModelUpdate() {
|
||||
PapMuskuloskeletal model=new PapMuskuloskeletal();
|
||||
// model.setIsKelainanTulangAda(true);
|
||||
// model.setIsGerakanAnakBebas(false);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPMuskuloskeletalDaoFindAll() {
|
||||
PapMuskuloskeletal model = populateModel();
|
||||
PapMuskuloskeletal resultModel1=papMuskuloskeletalDao.save(model);
|
||||
PapMuskuloskeletal model2 = populateModel();
|
||||
PapMuskuloskeletal resultModel2=papMuskuloskeletalDao.save(model2);
|
||||
assertNotNull(resultModel1);
|
||||
assertNotNull(resultModel2);
|
||||
List<PapMuskuloskeletal> results = (List<PapMuskuloskeletal>) papMuskuloskeletalDao.findAll();
|
||||
assertTrue(results.size() > 0);
|
||||
assertNotNull(results);
|
||||
assertTrue(results.size() == 2);
|
||||
}
|
||||
}
|
||||
@ -1,88 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapNeurologiDao;
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
import com.jasamedika.medifirst2000.entities.PapNeurologi;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapNeurologiDaoTest {
|
||||
|
||||
@Autowired
|
||||
private GenericViewDao genericViewDao;
|
||||
@Autowired
|
||||
private PapNeurologiDao papNeurologiDao;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testGenericDaoSelect() {
|
||||
GenericView kesadaran = populateGenericView("Kesadaran");
|
||||
assertNotNull(kesadaran);
|
||||
assertEquals("1", String.valueOf(kesadaran.getKdGenericView()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPNeurologiDaoSave() {
|
||||
PapNeurologi model = populateModel();
|
||||
PapNeurologi resultModel=papNeurologiDao.save(model);
|
||||
assertNotNull(resultModel);
|
||||
assertNotNull(resultModel.getKesadaran());
|
||||
// assertEquals(true,resultModel.getIsGangguanNeorologis());
|
||||
// assertEquals("1", String.valueOf(resultModel.getKesadaran().getKdGenericView()));
|
||||
PapNeurologi resultModel2=papNeurologiDao.findOne(resultModel.getNoRec());
|
||||
assertNotNull(resultModel2);
|
||||
assertNotNull(resultModel2.getKesadaran());
|
||||
// assertEquals("1", String.valueOf(resultModel2.getKesadaran().getKdGenericView()));
|
||||
// assertEquals(true,resultModel.getIsGangguanNeorologis());
|
||||
}
|
||||
|
||||
private PapNeurologi populateModel() {
|
||||
PapNeurologi model=new PapNeurologi();
|
||||
GenericView kesadaran = populateGenericView("Kesadaran");
|
||||
// model.setKesadaran(kesadaran);
|
||||
// model.setIsGangguanNeorologis(true);
|
||||
return model;
|
||||
}
|
||||
|
||||
private GenericView populateGenericView(String previx) {
|
||||
GenericView genericView=new GenericView();
|
||||
List<GenericView> list=genericViewDao.findGenericViewByPrevix(previx);
|
||||
for (GenericView gv:list) {
|
||||
if(gv.getKdGenericView()==1){
|
||||
genericView=gv;
|
||||
}
|
||||
}
|
||||
return genericView;
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPNeurologiDaoFindAll() {
|
||||
PapNeurologi model1 = populateModel();
|
||||
PapNeurologi resultModel1=papNeurologiDao.save(model1);
|
||||
PapNeurologi model2 = populateModel();
|
||||
PapNeurologi resultModel2=papNeurologiDao.save(model2);
|
||||
assertNotNull(resultModel1);
|
||||
assertNotNull(resultModel2);
|
||||
List<PapNeurologi> results = (List<PapNeurologi>) papNeurologiDao.findAll();
|
||||
assertTrue(results.size() > 0);
|
||||
assertNotNull(results);
|
||||
assertTrue(results.size() == 2);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,112 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapPernapasanDao;
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
import com.jasamedika.medifirst2000.entities.PapPernapasan;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapPernapasanDaoTest {
|
||||
|
||||
@Autowired
|
||||
private GenericViewDao genericViewDao;
|
||||
@Autowired
|
||||
private PapPernapasanDao papPernapasanDao;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testGenericDaoSelect() {
|
||||
GenericView alatBantuNafas = populateGenericView("Alat bantu nafas");
|
||||
assertNotNull(alatBantuNafas);
|
||||
assertEquals("1", String.valueOf(alatBantuNafas.getKdGenericView()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPPernapasanDaoSave() {
|
||||
PapPernapasan model = populateModel();
|
||||
PapPernapasan resultModel=papPernapasanDao.save(model);
|
||||
assertNotNull(resultModel);
|
||||
assertNotNull(resultModel.getAlatBantuNafas());
|
||||
// assertEquals("1", String.valueOf(resultModel.getAlatBantuNafas().getKdGenericView()));
|
||||
/*
|
||||
assertEquals(true,resultModel.getIsBentukDada());
|
||||
assertEquals(true,resultModel.getIsIrama());
|
||||
assertEquals(true,resultModel.getIsNafasKupingHidung());
|
||||
assertEquals(true,resultModel.getIsPolaNapas());
|
||||
assertEquals(true,resultModel.getIsRetraksiDada());
|
||||
assertEquals(true,resultModel.getIsSianosis());
|
||||
assertEquals(true,resultModel.getIsSuaraNapas());
|
||||
*/
|
||||
PapPernapasan resultModel2=papPernapasanDao.findOne(resultModel.getNoRec());
|
||||
assertNotNull(resultModel2);
|
||||
assertNotNull(resultModel2.getAlatBantuNafas());
|
||||
// assertEquals("1", String.valueOf(resultModel2.getAlatBantuNafas().getKdGenericView()));
|
||||
/*
|
||||
assertEquals(true,resultModel2.getIsBentukDada());
|
||||
assertEquals(true,resultModel2.getIsIrama());
|
||||
assertEquals(true,resultModel2.getIsNafasKupingHidung());
|
||||
assertEquals(true,resultModel2.getIsPolaNapas());
|
||||
assertEquals(true,resultModel2.getIsRetraksiDada());
|
||||
assertEquals(true,resultModel2.getIsSianosis());
|
||||
assertEquals(true,resultModel2.getIsSuaraNapas());
|
||||
*/
|
||||
}
|
||||
|
||||
private PapPernapasan populateModel() {
|
||||
PapPernapasan model=new PapPernapasan();
|
||||
GenericView alatBantuNafas = populateGenericView("Alat bantu nafas");
|
||||
// model.setAlatBantuNafas(alatBantuNafas);
|
||||
/*
|
||||
model.setIsBentukDada(true);
|
||||
model.setIsIrama(true);
|
||||
model.setIsNafasKupingHidung(true);
|
||||
model.setIsPolaNapas(true);
|
||||
model.setIsRetraksiDada(true);
|
||||
model.setIsSianosis(true);
|
||||
model.setIsSuaraNapas(true);
|
||||
*/
|
||||
return model;
|
||||
}
|
||||
|
||||
private GenericView populateGenericView(String previx) {
|
||||
GenericView genericView=new GenericView();
|
||||
List<GenericView> list=genericViewDao.findGenericViewByPrevix(previx);
|
||||
for (GenericView gv:list) {
|
||||
if(gv.getKdGenericView()==1){
|
||||
genericView=gv;
|
||||
}
|
||||
}
|
||||
return genericView;
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPPernapasanDaoFindAll() {
|
||||
PapPernapasan model1 = populateModel();
|
||||
PapPernapasan resultModel1=papPernapasanDao.save(model1);
|
||||
PapPernapasan model2 = populateModel();
|
||||
PapPernapasan resultModel2=papPernapasanDao.save(model2);
|
||||
assertNotNull(resultModel1);
|
||||
assertNotNull(resultModel2);
|
||||
List<PapPernapasan> results = (List<PapPernapasan>) papPernapasanDao.findAll();
|
||||
assertTrue(results.size() > 0);
|
||||
assertNotNull(results);
|
||||
assertTrue(results.size() == 2);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,131 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.OrderPelayananDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapPernapasanDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapRencanaOrderRadiologiDao;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.dao.RegistrasiPelayananPasienDao;
|
||||
import com.jasamedika.medifirst2000.dao.StrukOrderDao;
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
import com.jasamedika.medifirst2000.entities.OrderPelayanan;
|
||||
import com.jasamedika.medifirst2000.entities.PapPernapasan;
|
||||
import com.jasamedika.medifirst2000.entities.PapRencanaOrderRadiologi;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.entities.Produk;
|
||||
import com.jasamedika.medifirst2000.entities.RegistrasiPelayananPasien;
|
||||
import com.jasamedika.medifirst2000.entities.StrukOrder;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.ProdukVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapRadiologiDaoTest {
|
||||
@Autowired
|
||||
private OrderPelayananDao orderPelayananDao;
|
||||
@Autowired
|
||||
private StrukOrderDao strukOrderDao;
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
@Autowired
|
||||
private PapRencanaOrderRadiologiDao papRencanaOrderRadiologiDao;
|
||||
@Autowired
|
||||
private RegistrasiPelayananPasienDao registrasiPelayananPasienDao;
|
||||
private Pasien pasien;
|
||||
private RegistrasiPelayananPasien registrasiPelayananPasien;
|
||||
private Date date=new Date();
|
||||
private String tgl="2016-06-23 ";
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindPasien() {
|
||||
pasien=pasienDao.findOne(177);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("0000001",pasien.getNoCm());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindRegistrasiPelayananPasien() {
|
||||
registrasiPelayananPasien=registrasiPelayananPasienDao.finByNoCm("0000001", (short)0, DateUtil.toDate(tgl));
|
||||
assertNotNull(registrasiPelayananPasien);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testGenerateNoOrder() {
|
||||
Integer abc=strukOrderDao.getCountByMonthAndYear(date);
|
||||
System.out.println("OOOOOO : "+abc);
|
||||
}
|
||||
@Test
|
||||
@Transactional
|
||||
public void testRadiologiSave() {
|
||||
PapRencanaOrderRadiologi model=populateRencanaOrderRadiologi();
|
||||
PapRencanaOrderRadiologi resultModel=papRencanaOrderRadiologiDao.save(model);
|
||||
assertNotNull(resultModel);
|
||||
assertNotNull(resultModel.getPasien());
|
||||
assertEquals("0000001",resultModel.getPasien().getNoCm());
|
||||
StrukOrder strukOrder=populateStrukOrder();
|
||||
StrukOrder abc=strukOrderDao.save(strukOrder);
|
||||
assertNotNull(abc);
|
||||
assertEquals("11111",abc.getNoOrder());
|
||||
Produk produk1=populateProduk("produk1");
|
||||
OrderPelayanan orderPelayanan=populateOrderPelayanan();
|
||||
orderPelayanan.setNoOrder(abc);
|
||||
orderPelayanan.setProduk(produk1);
|
||||
assertNotNull(produk1);
|
||||
assertEquals("produk1",produk1.getNamaProduk());
|
||||
OrderPelayanan abcd=orderPelayananDao.save(orderPelayanan);
|
||||
assertNotNull(abcd);
|
||||
assertNotNull(abcd.getProduk());
|
||||
assertNotNull(abcd.getNoOrder());
|
||||
assertEquals("produk1",abcd.getProduk().getNamaProduk());
|
||||
resultModel.setStrukOrder(strukOrder);
|
||||
assertNotNull(resultModel.getStrukOrder());
|
||||
assertEquals("11111",resultModel.getStrukOrder().getNoOrder());
|
||||
// model.setStrukOrder(strukOrder);
|
||||
// for(ProdukVO produk:vo.getProdukSet()){
|
||||
// Produk prod=produkConverter.transferVOToModel(produk, new Produk());
|
||||
// produkDao.save(prod);
|
||||
// orderPelayanan.setProduk(prod);
|
||||
// }
|
||||
}
|
||||
|
||||
private StrukOrder populateStrukOrder() {
|
||||
StrukOrder model=new StrukOrder();
|
||||
model.setNoOrder("11111");
|
||||
return model;
|
||||
}
|
||||
|
||||
private Produk populateProduk(String produk) {
|
||||
Produk produk1=new Produk();
|
||||
produk1.setId(1);
|
||||
produk1.setNamaProduk(produk);
|
||||
return produk1;
|
||||
}
|
||||
|
||||
private OrderPelayanan populateOrderPelayanan() {
|
||||
OrderPelayanan model=new OrderPelayanan();
|
||||
return model;
|
||||
}
|
||||
|
||||
private PapRencanaOrderRadiologi populateRencanaOrderRadiologi() {
|
||||
PapRencanaOrderRadiologi model=new PapRencanaOrderRadiologi();
|
||||
model.setKeluhan("aaaaaaaaa");
|
||||
model.setPasien(pasienDao.findOne(177));
|
||||
model.setRegistrasiPelayananPasien(registrasiPelayananPasienDao.finByNoCm("0000001", (short)0, DateUtil.toDate(tgl)));
|
||||
model.setTglInput(date);
|
||||
return model;
|
||||
}
|
||||
}
|
||||
@ -1,103 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapRiwayatKeluargaDao;
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
import com.jasamedika.medifirst2000.entities.PapRiwayatKeluarga;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapRiwayatKeluargaDaoTest {
|
||||
|
||||
@Autowired
|
||||
private GenericViewDao genericViewDao;
|
||||
@Autowired
|
||||
private PapRiwayatKeluargaDao papRiwayatKeluargaDao;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testGenericDaoSelect() {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPRiwayatKeluargaDaoSave() {
|
||||
PapRiwayatKeluarga model = populateModel();
|
||||
PapRiwayatKeluarga resultModel=papRiwayatKeluargaDao.save(model);
|
||||
assertNotNull(resultModel);
|
||||
assertEquals("1",resultModel.getNamaIbu());
|
||||
assertEquals("1",resultModel.getUmurIbu());
|
||||
assertEquals("1",resultModel.getBangsaIbu());
|
||||
assertEquals("1",resultModel.getKesehatanIbu());
|
||||
assertEquals("1",resultModel.getNamaAyah());
|
||||
assertEquals("1",resultModel.getUmurAyah());
|
||||
assertEquals("1",resultModel.getBangsaAyah());
|
||||
assertEquals("1",resultModel.getKesehatanAyah());
|
||||
assertEquals("1",resultModel.getAnakAnakLain());
|
||||
PapRiwayatKeluarga resultModel2=papRiwayatKeluargaDao.findOne(resultModel.getNoRec());
|
||||
assertNotNull(resultModel2);
|
||||
assertEquals("1",resultModel.getNamaIbu());
|
||||
assertEquals("1",resultModel.getUmurIbu());
|
||||
assertEquals("1",resultModel.getBangsaIbu());
|
||||
assertEquals("1",resultModel.getKesehatanIbu());
|
||||
assertEquals("1",resultModel.getNamaAyah());
|
||||
assertEquals("1",resultModel.getUmurAyah());
|
||||
assertEquals("1",resultModel.getBangsaAyah());
|
||||
assertEquals("1",resultModel.getKesehatanAyah());
|
||||
assertEquals("1",resultModel.getAnakAnakLain());
|
||||
}
|
||||
|
||||
private PapRiwayatKeluarga populateModel() {
|
||||
PapRiwayatKeluarga model=new PapRiwayatKeluarga();
|
||||
model.setNamaIbu("1");
|
||||
model.setUmurIbu("1");
|
||||
model.setBangsaIbu("1");
|
||||
model.setKesehatanIbu("1");
|
||||
model.setNamaAyah("1");
|
||||
model.setUmurAyah("1");
|
||||
model.setBangsaAyah("1");
|
||||
model.setKesehatanAyah("1");
|
||||
model.setAnakAnakLain("1");
|
||||
return model;
|
||||
}
|
||||
|
||||
private GenericView populateGenericView(String previx) {
|
||||
GenericView genericView=new GenericView();
|
||||
List<GenericView> list=genericViewDao.findGenericViewByPrevix(previx);
|
||||
for (GenericView gv:list) {
|
||||
if(gv.getKdGenericView()==1){
|
||||
genericView=gv;
|
||||
}
|
||||
}
|
||||
return genericView;
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPRiwayatKeluargaDaoFindAll() {
|
||||
PapRiwayatKeluarga model1 = populateModel();
|
||||
PapRiwayatKeluarga resultModel1=papRiwayatKeluargaDao.save(model1);
|
||||
PapRiwayatKeluarga model2 = populateModel();
|
||||
PapRiwayatKeluarga resultModel2=papRiwayatKeluargaDao.save(model2);
|
||||
assertNotNull(resultModel1);
|
||||
assertNotNull(resultModel2);
|
||||
List<PapRiwayatKeluarga> results = (List<PapRiwayatKeluarga>) papRiwayatKeluargaDao.findAll();
|
||||
assertTrue(results.size() > 0);
|
||||
assertNotNull(results);
|
||||
assertTrue(results.size() == 2);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,97 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapRiwayatPsikososialDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapRiwayatPsikososialDao;
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
import com.jasamedika.medifirst2000.entities.PapRiwayatPsikososial;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapRiwayatPsikososialDaoTest {
|
||||
|
||||
@Autowired
|
||||
private GenericViewDao genericViewDao;
|
||||
@Autowired
|
||||
private PapRiwayatPsikososialDao papRiwayatPsikososialDao;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testGenericDaoSelect() {
|
||||
GenericView statusPsikologi = populateGenericView("Status Psikologi");
|
||||
GenericView tempatTinggal = populateGenericView("Tempat Tinggal");
|
||||
assertNotNull(statusPsikologi);
|
||||
assertNotNull(tempatTinggal);
|
||||
assertEquals("1", String.valueOf(statusPsikologi.getKdGenericView()));
|
||||
assertEquals("1", String.valueOf(tempatTinggal.getKdGenericView()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPRiwayatPsikososialDaoSave() {
|
||||
PapRiwayatPsikososial model = populateModel();
|
||||
PapRiwayatPsikososial resultModel=papRiwayatPsikososialDao.save(model);
|
||||
assertNotNull(resultModel);
|
||||
// assertNotNull(resultModel.getStatusPsikologi());
|
||||
// assertNotNull(resultModel.getTempatTinggal());
|
||||
// assertEquals(true, resultModel.getIsHubunganPasien());
|
||||
// assertEquals("1",resultModel.getKecenderunganLainnya());
|
||||
PapRiwayatPsikososial resultModel2=papRiwayatPsikososialDao.findOne(resultModel.getNoRec());
|
||||
assertNotNull(resultModel2);
|
||||
// assertNotNull(resultModel2.getStatusPsikologi());
|
||||
// assertNotNull(resultModel2.getTempatTinggal());
|
||||
// assertEquals(true, resultModel2.getIsHubunganPasien());
|
||||
// assertEquals("1",resultModel2.getKecenderunganLainnya());
|
||||
}
|
||||
|
||||
private PapRiwayatPsikososial populateModel() {
|
||||
PapRiwayatPsikososial model=new PapRiwayatPsikososial();
|
||||
GenericView statusPsikologi = populateGenericView("Status Psikologi");
|
||||
GenericView tempatTinggal = populateGenericView("Tempat Tinggal");
|
||||
// model.setStatusPsikologi(statusPsikologi);
|
||||
// model.setTempatTinggal(tempatTinggal);
|
||||
// model.setIsHubunganPasien(true);
|
||||
// model.setKecenderunganLainnya("1");
|
||||
return model;
|
||||
}
|
||||
|
||||
private GenericView populateGenericView(String previx) {
|
||||
GenericView genericView=new GenericView();
|
||||
List<GenericView> list=genericViewDao.findGenericViewByPrevix(previx);
|
||||
for (GenericView gv:list) {
|
||||
if(gv.getKdGenericView()==1){
|
||||
genericView=gv;
|
||||
}
|
||||
}
|
||||
return genericView;
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPRiwayatPsikososialDaoFindAll() {
|
||||
PapRiwayatPsikososial model1 = populateModel();
|
||||
PapRiwayatPsikososial resultModel1=papRiwayatPsikososialDao.save(model1);
|
||||
PapRiwayatPsikososial model2 = populateModel();
|
||||
PapRiwayatPsikososial resultModel2=papRiwayatPsikososialDao.save(model2);
|
||||
assertNotNull(resultModel1);
|
||||
assertNotNull(resultModel2);
|
||||
List<PapRiwayatPsikososial> results = (List<PapRiwayatPsikososial>) papRiwayatPsikososialDao.findAll();
|
||||
assertTrue(results.size() > 0);
|
||||
assertNotNull(results);
|
||||
assertTrue(results.size() == 2);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,118 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
import com.jasamedika.medifirst2000.dao.PapSirkulasiDao;
|
||||
import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
import com.jasamedika.medifirst2000.entities.PapSirkulasi;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapSirkulasiDaoTest {
|
||||
|
||||
@Autowired
|
||||
private GenericViewDao genericViewDao;
|
||||
@Autowired
|
||||
private PapSirkulasiDao papSirkulasiDao;
|
||||
/*
|
||||
@Test
|
||||
@Transactional
|
||||
public void testGenericDaoSelect() {
|
||||
GenericView intensitasNadi = populateGenericView("Intensitas Nadi");
|
||||
GenericView akral = populateGenericView("Akral");
|
||||
GenericView crt = populateGenericView("CRT");
|
||||
assertNotNull(intensitasNadi);
|
||||
assertNotNull(akral);
|
||||
assertNotNull(crt);
|
||||
assertEquals("1", String.valueOf(intensitasNadi.getKdGenericView()));
|
||||
assertEquals("1", String.valueOf(akral.getKdGenericView()));
|
||||
assertEquals("1", String.valueOf(crt.getKdGenericView()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPSirkulasiDaoSave() {
|
||||
PapSirkulasi model = populateModel();
|
||||
PapSirkulasi resultModel=papSirkulasiDao.save(model);
|
||||
assertNotNull(resultModel);
|
||||
assertNotNull(resultModel.getIntensitasNadi());
|
||||
assertNotNull(resultModel.getAkral());
|
||||
assertNotNull(resultModel.getCrt());
|
||||
assertEquals("1", String.valueOf(resultModel.getIntensitasNadi().getKdGenericView()));
|
||||
assertEquals("1", String.valueOf(resultModel.getAkral().getKdGenericView()));
|
||||
assertEquals("1", String.valueOf(resultModel.getCrt().getKdGenericView()));
|
||||
assertEquals(true,resultModel.getIsSianosis());
|
||||
assertEquals(true,resultModel.getIsPucat());
|
||||
assertEquals(true,resultModel.getIsIramaNadi());
|
||||
assertEquals(true,resultModel.getIsEdema());
|
||||
assertEquals(true,resultModel.getIsClubbingFinger());
|
||||
PapSirkulasi resultModel2=papSirkulasiDao.findOne(resultModel.getNoRec());
|
||||
assertNotNull(resultModel2);
|
||||
assertNotNull(resultModel2.getIntensitasNadi());
|
||||
assertNotNull(resultModel2.getAkral());
|
||||
assertNotNull(resultModel2.getCrt());
|
||||
assertEquals("1", String.valueOf(resultModel2.getIntensitasNadi().getKdGenericView()));
|
||||
assertEquals("1", String.valueOf(resultModel2.getAkral().getKdGenericView()));
|
||||
assertEquals("1", String.valueOf(resultModel2.getCrt().getKdGenericView()));
|
||||
assertEquals(true,resultModel.getIsSianosis());
|
||||
assertEquals(true,resultModel.getIsPucat());
|
||||
assertEquals(true,resultModel.getIsIramaNadi());
|
||||
assertEquals(true,resultModel.getIsEdema());
|
||||
assertEquals(true,resultModel.getIsClubbingFinger());
|
||||
}
|
||||
|
||||
private PapSirkulasi populateModel() {
|
||||
PapSirkulasi model=new PapSirkulasi();
|
||||
GenericView intensitasNadi = populateGenericView("Intensitas Nadi");
|
||||
GenericView akral = populateGenericView("Akral");
|
||||
GenericView crt = populateGenericView("CRT");
|
||||
model.setIntensitasNadi(intensitasNadi);
|
||||
model.setAkral(akral);
|
||||
model.setCrt(crt);
|
||||
model.setIsSianosis(true);
|
||||
model.setIsPucat(true);
|
||||
model.setIsIramaNadi(true);
|
||||
model.setIsEdema(true);
|
||||
model.setIsClubbingFinger(true);
|
||||
return model;
|
||||
}
|
||||
|
||||
private GenericView populateGenericView(String previx) {
|
||||
GenericView genericView=new GenericView();
|
||||
List<GenericView> list=genericViewDao.findGenericViewByPrevix(previx);
|
||||
for (GenericView gv:list) {
|
||||
if(gv.getKdGenericView()==1){
|
||||
genericView=gv;
|
||||
}
|
||||
}
|
||||
return genericView;
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPAPSirkulasiDaoFindAll() {
|
||||
PapSirkulasi model1 = populateModel();
|
||||
PapSirkulasi resultModel1=papSirkulasiDao.save(model1);
|
||||
PapSirkulasi model2 = populateModel();
|
||||
PapSirkulasi resultModel2=papSirkulasiDao.save(model2);
|
||||
assertNotNull(resultModel1);
|
||||
assertNotNull(resultModel2);
|
||||
List<PapSirkulasi> results = (List<PapSirkulasi>) papSirkulasiDao.findAll();
|
||||
assertTrue(results.size() > 0);
|
||||
assertNotNull(results);
|
||||
assertTrue(results.size() == 2);
|
||||
}
|
||||
*/
|
||||
}
|
||||
@ -1,121 +0,0 @@
|
||||
//package com.jasamedika.medifirst2000.dao.test;
|
||||
//
|
||||
//import static org.junit.Assert.assertEquals;
|
||||
//import static org.junit.Assert.assertNotNull;
|
||||
//
|
||||
///**Agama Class Test
|
||||
// */
|
||||
//
|
||||
//import static org.junit.Assert.assertNull;
|
||||
//
|
||||
//import java.util.ArrayList;
|
||||
//import java.util.Date;
|
||||
//import java.util.List;
|
||||
//
|
||||
//import org.junit.Test;
|
||||
//import org.junit.runner.RunWith;
|
||||
//import org.springframework.beans.factory.annotation.Autowired;
|
||||
//import org.springframework.test.context.ContextConfiguration;
|
||||
//import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
//import org.springframework.transaction.annotation.Transactional;
|
||||
//
|
||||
//import com.jasamedika.medifirst2000.entities.GenericView;
|
||||
//import com.jasamedika.medifirst2000.entities.PapAlergi;
|
||||
//import com.jasamedika.medifirst2000.entities.PapSkriningGizi;
|
||||
//import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
//import com.jasamedika.medifirst2000.entities.RegistrasiPelayananPasien;
|
||||
//import com.jasamedika.medifirst2000.dao.GenericViewDao;
|
||||
//import com.jasamedika.medifirst2000.dao.PapSkriningGiziDao;
|
||||
//import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
//
|
||||
//@RunWith(SpringJUnit4ClassRunner.class)
|
||||
//@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
//public class PapSkriningGiziDaoTest {
|
||||
//
|
||||
// @Autowired
|
||||
// private PapSkriningGiziDao papSkriningGiziDao;
|
||||
//
|
||||
// @Autowired
|
||||
// private PasienDao pasienDao;
|
||||
//
|
||||
// @Test
|
||||
// @Transactional
|
||||
// public void testPapSkriningGiziDaoSave(){
|
||||
// PapSkriningGizi model = populateModel();
|
||||
// PapSkriningGizi result = papSkriningGiziDao.save(model);
|
||||
//
|
||||
// /* Cek Hasil save */
|
||||
// assertNotNull(result);
|
||||
// assertEquals(String.valueOf(result.getBeratBadan()),String.valueOf((float)60));
|
||||
// assertEquals(String.valueOf(result.getLingkarKepala()),String.valueOf((float)50));
|
||||
// assertEquals(String.valueOf(result.getTinggiBadan()),String.valueOf((float)170));
|
||||
// assertNotNull(result.getTglInput());
|
||||
// assertEquals(result.getRegistrasiPelayananPasien().getNamaTempatTujuan(),"Tujuan");
|
||||
// assertEquals(result.getPasien().getNamaPasien(),"adik");
|
||||
//
|
||||
// /*Cek Model di Database*/
|
||||
// PapSkriningGizi resultSelect = papSkriningGiziDao.findOne(model.getNoRec());
|
||||
// assertNotNull(resultSelect);
|
||||
// assertEquals(String.valueOf(resultSelect.getBeratBadan()),String.valueOf((float)60));
|
||||
// assertEquals(String.valueOf(resultSelect.getLingkarKepala()),String.valueOf((float)50));
|
||||
// assertEquals(String.valueOf(resultSelect.getTinggiBadan()),String.valueOf((float)170));
|
||||
// assertNotNull(resultSelect.getTglInput());
|
||||
// assertEquals(resultSelect.getRegistrasiPelayananPasien().getNamaTempatTujuan(),"Tujuan");
|
||||
// assertEquals(resultSelect.getPasien().getNamaPasien(),"adik");
|
||||
// }
|
||||
//
|
||||
// @Test
|
||||
// @Transactional
|
||||
// public void testPapSkriningGiziDaoUpdate(){
|
||||
// PapSkriningGizi model = populateModel();
|
||||
// PapSkriningGizi result = papSkriningGiziDao.save(model);
|
||||
// assertNotNull(result);
|
||||
//
|
||||
// /*Proses Update*/
|
||||
// result.setBeratBadan((float) 100);
|
||||
// result.setLingkarKepala((float) 40);
|
||||
// result.setTinggiBadan((float) 175);
|
||||
// result.getPasien().setNamaPasien("Nama Update");
|
||||
// result.getRegistrasiPelayananPasien().setNamaTempatTujuan("Tujuan Update");
|
||||
// papSkriningGiziDao.save(result);
|
||||
//
|
||||
// /*Cek Hasil Update*/
|
||||
// PapSkriningGizi resultSelect = papSkriningGiziDao.findOne(model.getNoRec());
|
||||
// assertNotNull(resultSelect);
|
||||
// assertEquals(String.valueOf(resultSelect.getBeratBadan()),String.valueOf((float)100));
|
||||
// assertEquals(String.valueOf(resultSelect.getLingkarKepala()),String.valueOf((float)40));
|
||||
// assertEquals(String.valueOf(resultSelect.getTinggiBadan()),String.valueOf((float)175));
|
||||
// assertNotNull(resultSelect.getTglInput());
|
||||
// assertEquals(resultSelect.getRegistrasiPelayananPasien().getNamaTempatTujuan(),"Tujuan Update");
|
||||
// assertEquals(resultSelect.getPasien().getNamaPasien(),"Nama Update");
|
||||
// }
|
||||
//
|
||||
// @Test
|
||||
// @Transactional
|
||||
// public void testPapSkriningGiziDaoDelete(){
|
||||
// PapSkriningGizi model = populateModel();
|
||||
// papSkriningGiziDao.save(model);
|
||||
//
|
||||
// PapSkriningGizi resultModel1 = papSkriningGiziDao.findOne(model.getNoRec());
|
||||
// /*Cek Model di Database*/
|
||||
// assertNotNull(resultModel1);
|
||||
//
|
||||
// papSkriningGiziDao.delete(model);
|
||||
// PapSkriningGizi resultModel2 = papSkriningGiziDao.findOne(model.getNoRec());
|
||||
// /*Cek Hasil Delete Model*/
|
||||
// assertNull(resultModel2);
|
||||
// }
|
||||
//
|
||||
// public PapSkriningGizi populateModel(){
|
||||
// PapSkriningGizi model = new PapSkriningGizi();
|
||||
// Pasien pasien = pasienDao.findOne(393);
|
||||
// model.setPasien(pasien);
|
||||
// model.setRegistrasiPelayananPasien(new RegistrasiPelayananPasien());
|
||||
// model.getRegistrasiPelayananPasien().setNamaTempatTujuan("Tujuan");
|
||||
// model.setTglInput(new Date());
|
||||
// model.setTinggiBadan((float)170);
|
||||
// model.setBeratBadan((float)60);
|
||||
// model.setLingkarKepala((float) 50);
|
||||
// return model;
|
||||
// }
|
||||
//}
|
||||
@ -1,31 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
/**Agama Class Test
|
||||
*/
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.PasienMDao;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
|
||||
//@RunWith(SpringJUnit4ClassRunner.class)
|
||||
//@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PasienDaoTest {
|
||||
|
||||
// @Autowired
|
||||
private PasienMDao dao;
|
||||
|
||||
// @Test
|
||||
public void testFindById() {
|
||||
Pasien result = dao.findOne(1);
|
||||
// System.out.println(result.getAlamats().size());
|
||||
// assertNotNull(result.getAlamats());
|
||||
assertNotNull(result);
|
||||
}
|
||||
}
|
||||
@ -1,33 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
/**RuanganMDao Class Test
|
||||
*/
|
||||
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.RuanganMDao;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class RuanganMDaoTest {
|
||||
|
||||
@Autowired
|
||||
private RuanganMDao dao;
|
||||
|
||||
@Test
|
||||
public void testNativeQuery() {
|
||||
List<Object[]> result = dao.getNativeNamaKelas();
|
||||
assertNull(result);
|
||||
|
||||
List<Object[]> result2 = dao.getNativeNamaRuangan("25", "26");
|
||||
assertNull(result2);
|
||||
}
|
||||
}
|
||||
@ -1,101 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.dao.test;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import org.apache.commons.lang.time.DateUtils;
|
||||
import org.apache.poi.hssf.usermodel.HSSFRow;
|
||||
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
||||
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.CellStyle;
|
||||
import org.apache.poi.ss.usermodel.Font;
|
||||
import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
|
||||
public class Testing {
|
||||
public static void main(String[] args) throws IOException {// Create
|
||||
// blank
|
||||
// workbook
|
||||
HSSFWorkbook workbook = new HSSFWorkbook();
|
||||
// Create a blank sheet
|
||||
HSSFSheet spreadsheet = workbook.createSheet(" Employee Info ");
|
||||
// Create row object
|
||||
HSSFRow row;
|
||||
// This data needs to be written (Object[])
|
||||
Map<String, Object[]> empinfo = new TreeMap<String, Object[]>();
|
||||
|
||||
CellStyle style = workbook.createCellStyle();
|
||||
style.setFillForegroundColor(IndexedColors.AQUA.getIndex());
|
||||
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
|
||||
Font font = workbook.createFont();
|
||||
font.setColor(IndexedColors.BLACK.getIndex());
|
||||
font.setBold(true);
|
||||
style.setFont(font);
|
||||
style.setWrapText(true);
|
||||
|
||||
CellStyle styleIsi = workbook.createCellStyle();
|
||||
Font fontIsi = workbook.createFont();
|
||||
fontIsi.setColor(IndexedColors.BLACK.getIndex());
|
||||
fontIsi.setBold(false);
|
||||
fontIsi.setFontName("Arial");
|
||||
fontIsi.setFontHeightInPoints((short)8);
|
||||
styleIsi.setFont(fontIsi);
|
||||
styleIsi.setWrapText(true);
|
||||
|
||||
empinfo.put("01", new Object[] { "", "LAMPIRAN SURAT PENAWARAN HARGA OBAT TAHUN 2016 ", "", "" });
|
||||
empinfo.put("02", new Object[] { "", "TAHUN 2016", "", "" });
|
||||
empinfo.put("03", new Object[] { "", "EMP ID", "EMP NAME", "DESIGNATION" });
|
||||
empinfo.put("04", new Object[] { "", "tp01", "Gopal", "Technical Manager" });
|
||||
empinfo.put("05", new Object[] { "", "tp02", "Manisha", "Proof Reader" });
|
||||
empinfo.put("06", new Object[] { "", "tp03", "Masthan", "Technical Writer" });
|
||||
empinfo.put("07", new Object[] { "", "tp04", "Satish", "Technical Writer" });
|
||||
empinfo.put("08", new Object[] { "", "tp05", "Krishna", "Technical Writer" });
|
||||
empinfo.put("09", new Object[] { "", "tp06", "Krishna", "Technical Writer" });
|
||||
empinfo.put("10", new Object[] { "", "tp07", "Krishna", "Technical Writer" });
|
||||
empinfo.put("11", new Object[] { "", "tp08", "Krishna", "Technical Writer" });
|
||||
empinfo.put("12", new Object[] { "", "tp09", "Krishna", "Technical Writer" });
|
||||
empinfo.put("13", new Object[] { "", "tp10", "Krishna", "Technical Writer" });
|
||||
empinfo.put("14", new Object[] { "", "tp11", "Krishna", "Technical Writer" });
|
||||
empinfo.put("15", new Object[] { "", "tp12", "Krishna", "Technical Writer" });
|
||||
empinfo.put("16", new Object[] { "", "tp13", "Krishna", "Technical Writer" });
|
||||
|
||||
// Iterate over data and write to sheet
|
||||
Set<String> keyid = empinfo.keySet();
|
||||
int rowid = 0;
|
||||
for (String key : keyid) {
|
||||
row = spreadsheet.createRow(rowid++);
|
||||
Object[] objectArr = empinfo.get(key);
|
||||
int cellid = 0;
|
||||
for (Object obj : objectArr) {
|
||||
|
||||
Cell cell = row.createCell(cellid++);
|
||||
if(key.equalsIgnoreCase("03") && cellid!=1){
|
||||
System.out.println(cellid);
|
||||
cell.setCellStyle(style);
|
||||
|
||||
}else{
|
||||
cell.setCellStyle(styleIsi);
|
||||
}
|
||||
cell.setCellValue((String) obj);
|
||||
}
|
||||
}
|
||||
spreadsheet.setColumnWidth(0, 1000);
|
||||
spreadsheet.setColumnWidth(1, 7500);
|
||||
spreadsheet.setColumnWidth(2, 7500);
|
||||
spreadsheet.setColumnWidth(3, 7500);
|
||||
spreadsheet.addMergedRegion(new CellRangeAddress(0, 0, 1, 4));
|
||||
// Write the workbook in file system
|
||||
FileOutputStream out = new FileOutputStream(new File("d:/Writesheet.xls"));
|
||||
workbook.write(out);
|
||||
out.close();
|
||||
System.out.println("d:/Writesheet.xlsx written successfully");
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,52 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.logging;
|
||||
|
||||
/**Simple Logging Class Test
|
||||
*/
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.jasamedika.medifirst2000.logging.dao.LoggingJdbcDaoImpl;
|
||||
import com.jasamedika.medifirst2000.logging.entities.Logging;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class SimpleLoggingTest {
|
||||
|
||||
@Autowired
|
||||
private LoggingJdbcDaoImpl loggingJdbcDaoImpl;
|
||||
|
||||
@Test
|
||||
public void testCreate() {
|
||||
loggingJdbcDaoImpl.create("nama", "deskripsi");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdate() {
|
||||
loggingJdbcDaoImpl.update(1, "nama xxx", "deskripsi xxx");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDelete() {
|
||||
loggingJdbcDaoImpl.delete(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAll() {
|
||||
List<Logging> results = loggingJdbcDaoImpl.listLoggings();
|
||||
assertNotNull(results);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetById() {
|
||||
Logging result = loggingJdbcDaoImpl.getLogging(2);
|
||||
assertNotNull(result);
|
||||
}
|
||||
}
|
||||
@ -1,74 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.RIS_Order;
|
||||
import com.jasamedika.medifirst2000.service.impl.RIS_OrderServiceImpl;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class AgamaServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private RIS_OrderServiceImpl agamaService;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAdd() {
|
||||
RIS_Order order = new RIS_Order();
|
||||
order.setORDER_KEY(1);
|
||||
order.setCREATE_DATE("");
|
||||
order.setFLAG("");
|
||||
order.setPATIENT_ID("");
|
||||
order.setPATIENT_NAME("");
|
||||
order.setPATIENT_UID("");
|
||||
order.setLAST_NAME("");
|
||||
order.setFIRST_NAME("");
|
||||
order.setMIDDLE_NAME("");
|
||||
order.setAETITLE("");
|
||||
order.setSTUDY_RESERV_DATE("");
|
||||
order.setORDER_MODALITY("");
|
||||
order.setACCESSION_NUM("");
|
||||
order.setORDER_STATUS("");
|
||||
order.setORDER_CODE("");
|
||||
order.setORDER_NAME("");
|
||||
order.setORDER_REASON("");
|
||||
order.setSTUDY_REMARK("");
|
||||
order.setORDER_BODYPART("");
|
||||
order.setCHARGE_DOC_ID("");
|
||||
order.setCHARGE_DOC_NAME("");
|
||||
order.setCONSULT_DOC_ID("");
|
||||
order.setCONSULT_DOC_NAME("");
|
||||
order.setORDER_DEPT("");
|
||||
order.setORDER_DATE("");
|
||||
order.setORDER_NO("");
|
||||
order.setPATIENT_IO("");
|
||||
order.setPATIENT_WARD("");
|
||||
order.setIO_DATE("");
|
||||
order.setPATIENT_BIRTH_DATE("");
|
||||
order.setPATIENT_SEX("l");
|
||||
order.setORDER_DIAG("");
|
||||
order.setPATIENT_BLOOD("");
|
||||
order.setORDER_CNT(0);
|
||||
order.setGROUP1("");
|
||||
order.setGROUP2("");
|
||||
order.setGROUP3("");
|
||||
order.setORDER_COMMENT("");
|
||||
order.setEXTENSION1("");
|
||||
order.setEXTENSION2("");
|
||||
order.setEXTENSION3("");
|
||||
order.setEXTENSION4("");
|
||||
order.setEXTENSION5("");
|
||||
order.setEXTENSION6("");
|
||||
order.setEXTENSION7("");
|
||||
order.setEXTENSION8("");
|
||||
order.setEXTENSION9("");
|
||||
order.setEXTENSION10("");
|
||||
agamaService.save(order);
|
||||
}
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
import com.jasamedika.medifirst2000.dto.TPatient;
|
||||
import com.jasamedika.medifirst2000.service.PacsService;
|
||||
import com.jasamedika.medifirst2000.service.impl.PacsServiceImpl;
|
||||
|
||||
public class PacsServiceImplTest {
|
||||
|
||||
static PacsService test = new PacsServiceImpl();
|
||||
|
||||
public static void main(String[]args){
|
||||
insert();
|
||||
}
|
||||
|
||||
public static void insert(){
|
||||
TPatient tPatient = new TPatient();
|
||||
tPatient.setFLAG("Y");
|
||||
tPatient.setINSTITUTION_KEY(new BigDecimal(1));
|
||||
tPatient.setLAST_STUDYDATE("211198");
|
||||
tPatient.setPATIENT_AGE("020Y");
|
||||
tPatient.setPATIENT_BIRTH_DATE("20-11-88");
|
||||
tPatient.setPATIENT_ID("NOCM.001");
|
||||
tPatient.setPATIENT_IO("I");
|
||||
tPatient.setPATIENT_KEY(new BigDecimal(2));
|
||||
tPatient.setPATIENT_NAME("REZA FAUZAN");
|
||||
tPatient.setPATIENT_SEX("M");
|
||||
test.insert(tPatient);
|
||||
}
|
||||
|
||||
public static void update(){
|
||||
TPatient tPatient = new TPatient();
|
||||
tPatient.setFLAG("Y");
|
||||
tPatient.setINSTITUTION_KEY(new BigDecimal(1));
|
||||
tPatient.setLAST_STUDYDATE("211198");
|
||||
tPatient.setPATIENT_AGE("020Y");
|
||||
tPatient.setPATIENT_BIRTH_DATE("20-11-88");
|
||||
tPatient.setPATIENT_ID("NOCM.001");
|
||||
tPatient.setPATIENT_IO("I");
|
||||
tPatient.setPATIENT_KEY(new BigDecimal(2));
|
||||
tPatient.setPATIENT_NAME("ELISA");
|
||||
tPatient.setPATIENT_SEX("M");
|
||||
test.update(tPatient);
|
||||
}
|
||||
|
||||
public static void delete(){
|
||||
test.delete("NOCM.001");
|
||||
}
|
||||
|
||||
public static void getOne(){
|
||||
TPatient tPatient = test.getOne("NOCM.001");
|
||||
System.out.println(
|
||||
tPatient.getPATIENT_KEY()+"\n"+
|
||||
tPatient.getPATIENT_NAME()+"\n"+
|
||||
tPatient.getPATIENT_ID());
|
||||
}
|
||||
|
||||
public static void getAll(){
|
||||
List<TPatient> tPatients = test.getAll();
|
||||
for(TPatient tPatient : tPatients)
|
||||
System.out.println(
|
||||
tPatient.getPATIENT_KEY()+"\n"+
|
||||
tPatient.getPATIENT_NAME()+"\n"+
|
||||
tPatient.getPATIENT_ID()+"\n");
|
||||
}
|
||||
}
|
||||
@ -1,143 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapAlergi;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.service.PapAlergiService;
|
||||
import com.jasamedika.medifirst2000.service.PapSkriningNyeriService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.AlergiVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapAlergiVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapAlergiServiceImplTest {/*
|
||||
|
||||
@Autowired
|
||||
private PapAlergiService papAlergiService;
|
||||
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddAlergi() {
|
||||
PapAlergiVO vo = populateModel();
|
||||
Map<String,Object> result = papAlergiService.addAlergi(vo);
|
||||
assertNotNull(result);
|
||||
|
||||
PapAlergi papAlergi = (PapAlergi) result.get("papAlergi");
|
||||
assertEquals("ALEGI SAMPO",papAlergi.getAlergi().getNamaAlergi());
|
||||
assertEquals("Keterangan",papAlergi.getKeteranganData());
|
||||
assertEquals("Reaksi",papAlergi.getReaksi());
|
||||
assertEquals(generateDate(),papAlergi.getTglInput());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateAlergi() {
|
||||
PapAlergiVO vo = populateModel();
|
||||
Map<String,Object> result = papAlergiService.addAlergi(vo);
|
||||
assertNotNull(result);
|
||||
|
||||
PapAlergiVO voUpdate = populateModel();
|
||||
voUpdate.setKeteranganData("Keterangan Update");
|
||||
voUpdate.setReaksi("Reaksi Update");
|
||||
Map<String,Object> resultUpdate = papAlergiService.addAlergi(voUpdate);
|
||||
assertNotNull(resultUpdate);
|
||||
PapAlergi papAlergi = (PapAlergi) resultUpdate.get("papAlergi");
|
||||
assertEquals("Keterangan Update",papAlergi.getKeteranganData());
|
||||
assertEquals("Reaksi Update",papAlergi.getReaksi());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
Map<String,Object> result = papAlergiService.findByNoCmAndTglInput("000001", DateUtil.toDate("2013-06-07 12:10:56"));
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindRegistrasiPelayananPasienByNoCmAndTglRegistrasi() {
|
||||
Map<String,Object> result = papAlergiService.findRegistrasiPelayananPasienByNoCmAndTglRegistrasi("000001",(short) 0, DateUtil.toDate("2013-06-07 12:10:56"));
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindPasienByNoCm() {
|
||||
Map<String,Object> result = papAlergiService.findPasienByNoCm("000001");
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPopulateModel(){
|
||||
Cek Pasien Dao
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
|
||||
Cek Pasien Converter
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
|
||||
PapAlergiVO vo = populateModel();
|
||||
assertEquals("ALEGI SAMPO",vo.getAlergi().getNamaAlergi());
|
||||
assertEquals("Keterangan",vo.getKeteranganData());
|
||||
assertEquals("Reaksi",vo.getReaksi());
|
||||
}
|
||||
|
||||
private PapAlergiVO populateModel(){
|
||||
PapAlergiVO vo = new PapAlergiVO();
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
AlergiVO alergiVO = new AlergiVO();
|
||||
alergiVO.setId(1);
|
||||
alergiVO.setNamaAlergi("ALEGI SAMPO");
|
||||
vo.setPasien(pasienVO);
|
||||
vo.setAlergi(alergiVO);
|
||||
vo.setTglInput(generateDate());
|
||||
vo.setKeteranganData("Keterangan");
|
||||
vo.setReaksi("Reaksi");
|
||||
return vo;
|
||||
}
|
||||
|
||||
private Date generateDate(){
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 12:10:56 PM";
|
||||
|
||||
Date date = null;
|
||||
try {
|
||||
date = formatter.parse(dateInString);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return date;
|
||||
}
|
||||
*/}
|
||||
@ -1,144 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapAnamesis;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.service.PapAnamesisService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PapAnamesisVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapAnamesisServiceImplTest {
|
||||
@Autowired
|
||||
private PapAnamesisService papAnamesisService;
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddAnamesis() throws ParseException {
|
||||
PapAnamesisVO papAnamesisVO = populateModelVO();
|
||||
assertNotNull(papAnamesisVO);
|
||||
Map<String,Object> result = papAnamesisService.addAnamesis(papAnamesisVO);
|
||||
assertNotNull(result);
|
||||
assertEquals("Setyo Wibudi",((PapAnamesis) result.get("papAnamesis")).getPasien().getNamaPasien());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateAnamesis() throws ParseException {
|
||||
PapAnamesisVO papAnamesisVO = populateModelVO();
|
||||
Map<String,Object> result = papAnamesisService.addAnamesis(papAnamesisVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapAnamesisVO papAnamesisVOUpdate = populateModelVOUpdate();
|
||||
papAnamesisVOUpdate.setNoRec(((PapAnamesis) result.get("papAnamesis")).getNoRec());
|
||||
assertNotNull(papAnamesisVOUpdate);
|
||||
assertEquals(papAnamesisVOUpdate.getNoRec(),((PapAnamesis) result.get("papAnamesis")).getNoRec());
|
||||
|
||||
Map<String,Object> resultUpdate = papAnamesisService.addAnamesis(papAnamesisVOUpdate);
|
||||
assertEquals(false,((PapAnamesis) resultUpdate.get("papAnamesis")).getStatusEnabled());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
String noCm = "000001";
|
||||
String tglInput = "2016-07-17 02:12:03";
|
||||
Map<String,Object> result = papAnamesisService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindByNoCmAndTglRegistrasi() {
|
||||
String noCm = "000001";
|
||||
String tglRegistrasi = "2016-07-17 02:12:03";
|
||||
//Map<String,Object> result = papAnamesisService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
Map<String,Object> result = papAnamesisService.findRegistrasiPelayananPasienByNoCmAndTglRegistrasi(noCm,(short) 0, DateUtil.toDate(tglRegistrasi));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindPasienByNoCm() {
|
||||
String noCm = "000000000000002";
|
||||
Map<String,Object> result = papAnamesisService.findPasienByNoCm(noCm);
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private PapAnamesisVO populateModelVO() throws ParseException{
|
||||
PapAnamesisVO papAnamesisVO = new PapAnamesisVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
papAnamesisVO.setPasien(pasienVO);
|
||||
papAnamesisVO.setTglInput(generateDate());
|
||||
papAnamesisVO.setStatusEnabled(true);
|
||||
|
||||
return papAnamesisVO;
|
||||
}
|
||||
|
||||
private PapAnamesisVO populateModelVOUpdate() throws ParseException{
|
||||
PapAnamesisVO papAnamesisVO = new PapAnamesisVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
papAnamesisVO.setTglInput(generateDate());
|
||||
papAnamesisVO.setPasien(pasienVO);
|
||||
papAnamesisVO.setStatusEnabled(false);
|
||||
|
||||
return papAnamesisVO;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPopulate() throws ParseException{
|
||||
/*Cek Method Populate*/
|
||||
PapAnamesisVO papAnamesisVO = populateModelVO();
|
||||
assertNotNull(papAnamesisVO);
|
||||
|
||||
|
||||
/*Cek Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
|
||||
/*Cek Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
|
||||
}
|
||||
|
||||
private Date generateDate() throws ParseException{
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 11:40:39 PM";
|
||||
|
||||
Date date = formatter.parse(dateInString);
|
||||
return date;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -1,181 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.validation.constraints.AssertTrue;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.converter.RuanganConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapBedah;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
||||
import com.jasamedika.medifirst2000.service.PapBedahService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PapBedahVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
import com.jasamedika.medifirst2000.vo.RuanganVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapBedahServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapBedahService papBedahService;
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
@Autowired
|
||||
private RuanganDao ruanganDao;
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
@Autowired
|
||||
private RuanganConverter ruanganConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddBedah() throws ParseException {
|
||||
PapBedahVO papBedahVO = populateModelVO();
|
||||
assertNotNull(papBedahVO);
|
||||
Map<String,Object> result = papBedahService.addBedah(papBedahVO);
|
||||
//assertEquals("10",((PapBedah) result.get("papBedah")).getStrukOrder().getRuangan().getId());
|
||||
assertEquals("Setyo Wibudi",((PapBedah) result.get("papBedah")).getPasien().getNamaPasien());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testRuangan() throws ParseException {
|
||||
PapBedahVO papBedahVO = populateModelVO();
|
||||
assertNotNull(papBedahVO.getRuangan());
|
||||
assertEquals("10", String.valueOf(papBedahVO.getRuangan().getId()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateBedah() throws ParseException {
|
||||
PapBedahVO papBedahVO = populateModelVO();
|
||||
Map<String,Object> result = papBedahService.addBedah(papBedahVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapBedahVO papBedahVOUpdate = populateModelVOUpdate();
|
||||
papBedahVOUpdate.setNoRec(((PapBedah) result.get("papBedah")).getNoRec());
|
||||
assertNotNull(papBedahVOUpdate);
|
||||
assertEquals(papBedahVOUpdate.getNoRec(),((PapBedah) result.get("papBedah")).getNoRec());
|
||||
|
||||
Map<String,Object> resultUpdate = papBedahService.addBedah(papBedahVO);
|
||||
assertEquals(false,((PapBedah) resultUpdate.get("papBedah")).getStatusEnabled());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
String noCm = "000000000000002";
|
||||
String tglInput = "2016-06-19 14:45:36";
|
||||
Map<String,Object> result = papBedahService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindByNoCmAndTglRegistrasi() {
|
||||
String noCm = "000000000000002";
|
||||
String tglRegistrasi = "2016-07-17 02:12:03";
|
||||
//Map<String,Object> result = papBedahService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
Map<String,Object> result = papBedahService.findRegistrasiPelayananPasienByNoCmAndTglRegistrasi(noCm,(short) 0, DateUtil.toDate(tglRegistrasi));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindPasienByNoCm() {
|
||||
String noCm = "000000000000002";
|
||||
Map<String,Object> result = papBedahService.findPasienByNoCm(noCm);
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private PapBedahVO populateModelVO() throws ParseException{
|
||||
PapBedahVO papBedahVO = new PapBedahVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
papBedahVO.setPasien(pasienVO);
|
||||
|
||||
Ruangan ruangan = ruanganDao.findOne(10);
|
||||
RuanganVO ruanganVO = ruanganConverter.transferModelToVO(ruangan,new RuanganVO());
|
||||
papBedahVO.setRuangan(ruanganVO);
|
||||
papBedahVO.setRuanganTujuan(ruanganVO);
|
||||
papBedahVO.setTglInput(generateDate());
|
||||
papBedahVO.setStatusEnabled(true);
|
||||
|
||||
return papBedahVO;
|
||||
}
|
||||
|
||||
private PapBedahVO populateModelVOUpdate() throws ParseException{
|
||||
PapBedahVO papBedahVO = new PapBedahVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
|
||||
Ruangan ruangan = ruanganDao.findOne(10);
|
||||
RuanganVO ruanganVO = ruanganConverter.transferModelToVO(ruangan,new RuanganVO());
|
||||
|
||||
papBedahVO.setRuangan(ruanganVO);
|
||||
papBedahVO.setRuanganTujuan(ruanganVO);
|
||||
papBedahVO.setTglInput(generateDate());
|
||||
papBedahVO.setPasien(pasienVO);
|
||||
papBedahVO.setStatusEnabled(false);
|
||||
|
||||
return papBedahVO;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPopulate() throws ParseException{
|
||||
/*Cek Method Populate*/
|
||||
PapBedahVO papBedahVO = populateModelVO();
|
||||
assertNotNull(papBedahVO);
|
||||
|
||||
|
||||
/*Cek Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
Ruangan ruangan = ruanganDao.findOne(10);
|
||||
assertNotNull(ruangan);
|
||||
assertEquals("Klinik Psikologi",ruangan.getNamaRuangan());
|
||||
|
||||
/*Cek Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
|
||||
RuanganVO ruanganVO = ruanganConverter.transferModelToVO(ruangan,new RuanganVO());
|
||||
assertNotNull(ruanganVO);
|
||||
//assertEquals("Klinik Psikologi",pasienVO.getNamaExternal());
|
||||
|
||||
}
|
||||
|
||||
private Date generateDate() throws ParseException{
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 11:40:39 PM";
|
||||
|
||||
Date date = formatter.parse(dateInString);
|
||||
return date;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,138 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapEliminasi;
|
||||
import com.jasamedika.medifirst2000.entities.PapGenatalia;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.service.PapEliminasiService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PapEliminasiVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapEliminasiServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapEliminasiService papEliminasiService;
|
||||
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddEliminasi() {
|
||||
PapEliminasiVO papEliminasiVO = populateModel();
|
||||
Map<String,Object> result = papEliminasiService.addEliminasi(papEliminasiVO);
|
||||
assertNotNull(result);
|
||||
assertEquals("Diuresis Urin",((PapEliminasi)result.get("papEliminasi")).getDiuresisUrin());
|
||||
assertEquals("Frekuensi Defraksi",((PapEliminasi)result.get("papEliminasi")).getFrekuensiDefeaksi());
|
||||
assertEquals("Reynaldi Ramadhani Pratama",((PapEliminasi)result.get("papEliminasi")).getPasien().getNamaPasien());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateEliminasi() {
|
||||
PapEliminasiVO papEliminasiVO = populateModel();
|
||||
Map<String,Object> result = papEliminasiService.addEliminasi(papEliminasiVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapEliminasiVO papEliminasiVOUpdate = populateModelUpdate();
|
||||
papEliminasiVOUpdate.setNoRec(((PapEliminasi) result.get("papEliminasi")).getNoRec());
|
||||
assertNotNull(papEliminasiVOUpdate);
|
||||
assertEquals(papEliminasiVOUpdate.getNoRec(),((PapEliminasi) result.get("papEliminasi")).getNoRec());
|
||||
|
||||
Map<String,Object> resultUpdate = papEliminasiService.updateEliminasi(papEliminasiVOUpdate);
|
||||
assertNotNull(resultUpdate);
|
||||
assertEquals("Diuresis Urin Update",((PapEliminasi)resultUpdate.get("papEliminasi")).getDiuresisUrin());
|
||||
assertEquals("Frekuensi Defraksi Update",((PapEliminasi)resultUpdate.get("papEliminasi")).getFrekuensiDefeaksi());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
String noCm = "000000000000005";
|
||||
String tglInput = "2016-07-17 04:26:00";
|
||||
Map<String,Object> result = papEliminasiService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPopulateModel(){
|
||||
/*Cek Pasien Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
|
||||
/*Cek Pasien Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
|
||||
/*Cek Populate*/
|
||||
PapEliminasiVO papEliminasiVO = populateModel();
|
||||
assertNotNull(papEliminasiVO);
|
||||
assertEquals("Diuresis Urin",papEliminasiVO.getDiuresisUrin());
|
||||
assertEquals("Frekuensi Defraksi",papEliminasiVO.getFrekuensiDefeaksi());
|
||||
assertEquals("Reynaldi Ramadhani Pratama",papEliminasiVO.getPasien().getNamaPasien());
|
||||
}
|
||||
|
||||
private PapEliminasiVO populateModel(){
|
||||
PapEliminasiVO papEliminasiVO = new PapEliminasiVO();
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
|
||||
papEliminasiVO.setDiuresisUrin("Diuresis Urin");
|
||||
papEliminasiVO.setFrekuensiDefeaksi("Frekuensi Defraksi");
|
||||
papEliminasiVO.setTglInput(generateDate());
|
||||
papEliminasiVO.setPasien(pasienVO);
|
||||
return papEliminasiVO;
|
||||
}
|
||||
|
||||
private PapEliminasiVO populateModelUpdate(){
|
||||
PapEliminasiVO papEliminasiVO = new PapEliminasiVO();
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
|
||||
papEliminasiVO.setDiuresisUrin("Diuresis Urin Update");
|
||||
papEliminasiVO.setFrekuensiDefeaksi("Frekuensi Defraksi Update");
|
||||
papEliminasiVO.setTglInput(new Date());
|
||||
papEliminasiVO.setPasien(pasienVO);
|
||||
return papEliminasiVO;
|
||||
}
|
||||
|
||||
private Date generateDate(){
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 12:10:56 PM";
|
||||
|
||||
Date date = null;
|
||||
try {
|
||||
date = formatter.parse(dateInString);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return date;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,132 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapGastrointestinal;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.service.PapGastrointestinalService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PapGastrointestinalVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapGastrointestinalServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapGastrointestinalService papGastrointestinalService;
|
||||
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
@Autowired
|
||||
private PasienConverter papGastrintestinal;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddGastrointestinal() throws ParseException {
|
||||
PapGastrointestinalVO papGastrointestinalVO = populateModelVO();
|
||||
assertNotNull(papGastrointestinalVO);
|
||||
Map<String,Object> result = papGastrointestinalService.addGastrointestinal(papGastrointestinalVO);
|
||||
assertEquals("15",((PapGastrointestinal) result.get("papGastrointestinal")).getLingkarPerut());
|
||||
assertEquals(true,((PapGastrointestinal) result.get("papGastrointestinal")).getIsNormal());
|
||||
assertNotNull(result);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateGastrointestinal() throws ParseException {
|
||||
PapGastrointestinalVO papGastrointestinalVO = populateModelVO();
|
||||
Map<String,Object> result = papGastrointestinalService.addGastrointestinal(papGastrointestinalVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapGastrointestinalVO papGastrointestinalVOUpdate = populateModelVOUpdate();
|
||||
papGastrointestinalVOUpdate.setNoRec(((PapGastrointestinal) result.get("papGastrointestinal")).getNoRec());
|
||||
assertNotNull(papGastrointestinalVOUpdate);
|
||||
assertEquals(papGastrointestinalVOUpdate.getNoRec(),((PapGastrointestinal) result.get("papGastrointestinal")).getNoRec());
|
||||
|
||||
Map<String,Object> resultUpdate = papGastrointestinalService.addGastrointestinal(papGastrointestinalVOUpdate);
|
||||
assertEquals("15 update",((PapGastrointestinal) resultUpdate.get("papGastrointestinal")).getLingkarPerut());
|
||||
assertEquals(false,((PapGastrointestinal) resultUpdate.get("papGastrointestinal")).getIsNormal());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
String noCm = "000003";
|
||||
String tglInput = "2013-06-07 11:40:39";
|
||||
Map<String,Object> result = papGastrointestinalService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
//assertEquals(59,((PapGastrointestinal) result.get("papGastrointestinal")).getTglInput().getMinutes());
|
||||
assertEquals("15 update",((PapGastrointestinal) result.get("papGastrointestinal")).getLingkarPerut());
|
||||
}
|
||||
|
||||
private PapGastrointestinalVO populateModelVO() throws ParseException{
|
||||
PapGastrointestinalVO papGastrointestinalVO = new PapGastrointestinalVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
|
||||
papGastrointestinalVO.setTglInput(generateDate());
|
||||
papGastrointestinalVO.setPasien(pasienVO);
|
||||
papGastrointestinalVO.setIsNormal(true);
|
||||
papGastrointestinalVO.setLingkarPerut("15");
|
||||
|
||||
return papGastrointestinalVO;
|
||||
}
|
||||
|
||||
private PapGastrointestinalVO populateModelVOUpdate() throws ParseException{
|
||||
PapGastrointestinalVO papGastrointestinalVO = new PapGastrointestinalVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
papGastrointestinalVO.setTglInput(generateDate());
|
||||
papGastrointestinalVO.setPasien(pasienVO);
|
||||
papGastrointestinalVO.setLingkarPerut("15 update");
|
||||
papGastrointestinalVO.setIsNormal(false);
|
||||
|
||||
return papGastrointestinalVO;
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testPopulate() throws ParseException{
|
||||
/*Cek Method Populate*/
|
||||
PapGastrointestinalVO papGastrointestinalVO = populateModelVO();
|
||||
assertNotNull(papGastrointestinalVO);
|
||||
|
||||
/*Cek Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
|
||||
/*Cek Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
}
|
||||
|
||||
private Date generateDate() throws ParseException{
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 11:40:39 PM";
|
||||
|
||||
Date date = formatter.parse(dateInString);
|
||||
return date;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -1,143 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.converter.RegistrasiPelayananPasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.dao.RegistrasiPelayananPasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapGenatalia;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.entities.RegistrasiPelayananPasien;
|
||||
import com.jasamedika.medifirst2000.service.PapGenataliaService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PapGenataliaVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
import com.jasamedika.medifirst2000.vo.RegistrasiPelayananPasienVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapGenataliaServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapGenataliaService papGenataliaService;
|
||||
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
|
||||
// @Autowired
|
||||
// private RegistrasiPelayananPasienDao registrasiPelayananPasienDao;
|
||||
// @Autowired RegistrasiPelayananPasienConverter registrasiPelayananPasienConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddGenatalia() throws ParseException {
|
||||
PapGenataliaVO papGenataliaVO = populateModelVO();
|
||||
Map<String,Object> result = papGenataliaService.addGenatalia(papGenataliaVO);
|
||||
assertNotNull(result);
|
||||
assertEquals("Test Status Genatalia",((PapGenatalia) result.get("papGenatalia")).getStatus());
|
||||
assertNotEquals("Test Status Genatalia Error",((PapGenatalia) result.get("papGenatalia")).getStatus());
|
||||
assertEquals("Test Keterangan Genatalia",((PapGenatalia) result.get("papGenatalia")).getKeterangan());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateGenatalia() throws ParseException {
|
||||
PapGenataliaVO papGenataliaVO = populateModelVO();
|
||||
Map<String,Object> result = papGenataliaService.addGenatalia(papGenataliaVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapGenataliaVO papGenataliaVOUpdate = populateModelVOUpdate();
|
||||
papGenataliaVOUpdate.setNoRec(((PapGenatalia) result.get("papGenatalia")).getNoRec());
|
||||
assertNotNull(papGenataliaVOUpdate);
|
||||
assertEquals(papGenataliaVOUpdate.getNoRec(),((PapGenatalia) result.get("papGenatalia")).getNoRec());
|
||||
|
||||
Map<String,Object> resultUpdate = papGenataliaService.addGenatalia(papGenataliaVOUpdate);
|
||||
assertEquals("Test Status Genatalia Update",((PapGenatalia) resultUpdate.get("papGenatalia")).getStatus());
|
||||
assertNotEquals("Test Status Genatalia Error",((PapGenatalia) resultUpdate.get("papGenatalia")).getStatus());
|
||||
assertEquals("Test Keterangan Genatalia Update",((PapGenatalia) resultUpdate.get("papGenatalia")).getKeterangan());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPopulate() throws ParseException{
|
||||
/*Cek Method Populate*/
|
||||
PapGenataliaVO papGenataliaVO = populateModelVO();
|
||||
assertNotNull(papGenataliaVO);
|
||||
|
||||
/*Cek Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
|
||||
/*Cek Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
String noCm = "000001";
|
||||
String tglInput = "2016-07-17 02:12:03";
|
||||
Map<String,Object> result = papGenataliaService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
|
||||
private PapGenataliaVO populateModelVO() throws ParseException{
|
||||
PapGenataliaVO papGenataliaVO = new PapGenataliaVO();
|
||||
//RegistrasiPelayananPasien registrasiPelayananPasien = registrasiPelayananPasienDao.findOne("2c9090ad56014d2c0156014f2f020003");
|
||||
//RegistrasiPelayananPasienVO registrasiPelayananPasienVO = registrasiPelayananPasienConverter.transferModelToVO(registrasiPelayananPasien, new RegistrasiPelayananPasienVO());
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
|
||||
papGenataliaVO.setStatus("Test Status Genatalia");
|
||||
papGenataliaVO.setKeterangan("Test Keterangan Genatalia");
|
||||
papGenataliaVO.setTglInput(generateDate());
|
||||
// papGenataliaVO.setRegistrasiPelayananPasien(registrasiPelayananPasienVO);
|
||||
papGenataliaVO.setPasien(pasienVO);
|
||||
|
||||
return papGenataliaVO;
|
||||
}
|
||||
|
||||
private PapGenataliaVO populateModelVOUpdate() throws ParseException{
|
||||
PapGenataliaVO papGenataliaVO = new PapGenataliaVO();
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
|
||||
papGenataliaVO.setStatus("Test Status Genatalia Update");
|
||||
papGenataliaVO.setKeterangan("Test Keterangan Genatalia Update");
|
||||
papGenataliaVO.setTglInput(generateDate());
|
||||
papGenataliaVO.setPasien(pasienVO);
|
||||
|
||||
return papGenataliaVO;
|
||||
}
|
||||
|
||||
private Date generateDate() throws ParseException{
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 12:10:56 PM";
|
||||
|
||||
Date date = formatter.parse(dateInString);
|
||||
return date;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,270 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.converter.RuanganConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapGigiMulut;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
||||
import com.jasamedika.medifirst2000.service.PapGigiMulutService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PapBahanRestorasiVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapGigiKananDuaVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapGigiKananEmpatVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapGigiKananSatuVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapGigiKananTigaVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapGigiKiriDuaVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapGigiKiriEmpatVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapGigiKiriSatuVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapGigiKiriTigaVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapGigiMulutVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapKeadaanGigiVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapProtesaVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapRestorasiVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
import com.jasamedika.medifirst2000.vo.RuanganVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
|
||||
public class PapGigiMulutServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapGigiMulutService papGigiMulutService;
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
@Autowired
|
||||
private RuanganDao ruanganDao;
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
@Autowired
|
||||
private RuanganConverter ruanganConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddGigiMulut() throws ParseException {
|
||||
PapGigiMulutVO papGigiMulutVO = populateModelVO();
|
||||
assertNotNull(papGigiMulutVO);
|
||||
Map<String,Object> result = papGigiMulutService.addGigiMulut(papGigiMulutVO);
|
||||
assertNotNull(result);
|
||||
assertEquals("Setyo Wibudi",((PapGigiMulut) result.get("papGigiMulut")).getPasien().getNamaPasien());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateGigiMulut() throws ParseException {
|
||||
PapGigiMulutVO papGigiMulutVO = populateModelVO();
|
||||
Map<String,Object> result = papGigiMulutService.addGigiMulut(papGigiMulutVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapGigiMulutVO papGigiMulutVOUpdate = populateModelVOUpdate();
|
||||
papGigiMulutVOUpdate.setNoRec(((PapGigiMulut) result.get("papGigiMulut")).getNoRec());
|
||||
assertNotNull(papGigiMulutVOUpdate);
|
||||
assertEquals(papGigiMulutVOUpdate.getNoRec(),((PapGigiMulut) result.get("papGigiMulut")).getNoRec());
|
||||
|
||||
Map<String,Object> resultUpdate = papGigiMulutService.addGigiMulut(papGigiMulutVOUpdate);
|
||||
assertEquals(false,((PapGigiMulut) resultUpdate.get("papGigiMulut")).getStatusEnabled());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
String noCm = "000003";
|
||||
String tglInput = "2013-06-07 11:40:39";
|
||||
Map<String,Object> result = papGigiMulutService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindByNoCmAndTglRegistrasi() {
|
||||
String noCm = "000003";
|
||||
String tglRegistrasi = "2013-06-07 11:40:39";
|
||||
//Map<String,Object> result = papGigiMulutService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
Map<String,Object> result = papGigiMulutService.findRegistrasiPelayananPasienByNoCmAndTglRegistrasi(noCm,(short) 0, DateUtil.toDate(tglRegistrasi));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindPasienByNoCm() {
|
||||
String noCm = "000003";
|
||||
Map<String,Object> result = papGigiMulutService.findPasienByNoCm(noCm);
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private PapGigiMulutVO populateModelVO() throws ParseException{
|
||||
PapGigiMulutVO papGigiMulutVO = new PapGigiMulutVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
papGigiMulutVO.setPasien(pasienVO);
|
||||
|
||||
PapKeadaanGigiVO papKeadaanGigiVO= new PapKeadaanGigiVO();
|
||||
papKeadaanGigiVO.setId(1);
|
||||
papGigiMulutVO.setPapKeadaanGigi(papKeadaanGigiVO);
|
||||
|
||||
PapGigiKiriSatuVO papGigiKiriSatuVO= new PapGigiKiriSatuVO();
|
||||
papGigiKiriSatuVO.setTujuhbelas("tujuhbelas");
|
||||
papGigiMulutVO.setPapGigiKiriSatu(papGigiKiriSatuVO);
|
||||
|
||||
PapGigiKiriDuaVO papGigiKiriDuaVO= new PapGigiKiriDuaVO();
|
||||
papGigiKiriDuaVO.setLimalima("limalima");
|
||||
papGigiMulutVO.setPapGigiKiriDua(papGigiKiriDuaVO);
|
||||
|
||||
PapGigiKiriTigaVO papGigiKiriTigaVO= new PapGigiKiriTigaVO();
|
||||
papGigiKiriTigaVO.setDelapandua("delapandua");
|
||||
papGigiMulutVO.setPapGigiKiriTiga(papGigiKiriTigaVO);
|
||||
|
||||
PapGigiKiriEmpatVO papGigiKiriEmpatVO= new PapGigiKiriEmpatVO();
|
||||
papGigiKiriEmpatVO.setEmpatdua("empatdua");
|
||||
papGigiMulutVO.setPapGigiKiriEmpat(papGigiKiriEmpatVO);
|
||||
|
||||
PapGigiKananSatuVO papGigiKananSatuVO= new PapGigiKananSatuVO();
|
||||
papGigiKananSatuVO.setDuadua("duadua");
|
||||
papGigiMulutVO.setPapGigiKananSatu(papGigiKananSatuVO);
|
||||
|
||||
PapGigiKananDuaVO papGigiKananDuaVO= new PapGigiKananDuaVO();
|
||||
papGigiKananDuaVO.setEnamlima("enamlima");
|
||||
papGigiMulutVO.setPapGigiKananDua(papGigiKananDuaVO);
|
||||
|
||||
PapGigiKananTigaVO papGigiKananTigaVO= new PapGigiKananTigaVO();
|
||||
papGigiKananTigaVO.setTujuhempat("tujuhempat");
|
||||
papGigiMulutVO.setPapGigiKananTiga(papGigiKananTigaVO);
|
||||
|
||||
PapGigiKananEmpatVO papGigiKananEmpatVO= new PapGigiKananEmpatVO();
|
||||
papGigiKananEmpatVO.setTigadua("tigadua");
|
||||
papGigiMulutVO.setPapGigiKananEmpat(papGigiKananEmpatVO);
|
||||
|
||||
PapRestorasiVO papRestorasiVO= new PapRestorasiVO();
|
||||
papRestorasiVO.setId(1);
|
||||
papGigiMulutVO.setPapRestorasi(papRestorasiVO);
|
||||
|
||||
PapBahanRestorasiVO papBahanRestorasiVO= new PapBahanRestorasiVO();
|
||||
papBahanRestorasiVO.setId(1);
|
||||
papGigiMulutVO.setPapBahanRestorasi(papBahanRestorasiVO);
|
||||
|
||||
PapProtesaVO papProtesaVO= new PapProtesaVO();
|
||||
papProtesaVO.setId(1);
|
||||
papGigiMulutVO.setPapProtesa(papProtesaVO);
|
||||
|
||||
papGigiMulutVO.setTglInput(generateDate());
|
||||
papGigiMulutVO.setStatusEnabled(true);
|
||||
|
||||
return papGigiMulutVO;
|
||||
}
|
||||
|
||||
private PapGigiMulutVO populateModelVOUpdate() throws ParseException{
|
||||
PapGigiMulutVO papGigiMulutVO = new PapGigiMulutVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
papGigiMulutVO.setPasien(pasienVO);
|
||||
|
||||
PapKeadaanGigiVO papKeadaanGigiVO= new PapKeadaanGigiVO();
|
||||
papKeadaanGigiVO.setId(1);
|
||||
papGigiMulutVO.setPapKeadaanGigi(papKeadaanGigiVO);
|
||||
|
||||
PapGigiKiriSatuVO papGigiKiriSatuVO= new PapGigiKiriSatuVO();
|
||||
papGigiKiriSatuVO.setTujuhbelas("tujuhbelas");
|
||||
papGigiMulutVO.setPapGigiKiriSatu(papGigiKiriSatuVO);
|
||||
|
||||
PapGigiKiriDuaVO papGigiKiriDuaVO= new PapGigiKiriDuaVO();
|
||||
papGigiKiriDuaVO.setLimalima("limalima");
|
||||
papGigiMulutVO.setPapGigiKiriDua(papGigiKiriDuaVO);
|
||||
|
||||
PapGigiKiriTigaVO papGigiKiriTigaVO= new PapGigiKiriTigaVO();
|
||||
papGigiKiriTigaVO.setDelapandua("delapandua");
|
||||
papGigiMulutVO.setPapGigiKiriTiga(papGigiKiriTigaVO);
|
||||
|
||||
PapGigiKiriEmpatVO papGigiKiriEmpatVO= new PapGigiKiriEmpatVO();
|
||||
papGigiKiriEmpatVO.setEmpatdua("empatdua");
|
||||
papGigiMulutVO.setPapGigiKiriEmpat(papGigiKiriEmpatVO);
|
||||
|
||||
PapGigiKananSatuVO papGigiKananSatuVO= new PapGigiKananSatuVO();
|
||||
papGigiKananSatuVO.setDuadua("duadua");
|
||||
papGigiMulutVO.setPapGigiKananSatu(papGigiKananSatuVO);
|
||||
|
||||
PapGigiKananDuaVO papGigiKananDuaVO= new PapGigiKananDuaVO();
|
||||
papGigiKananDuaVO.setEnamlima("enamlima");
|
||||
papGigiMulutVO.setPapGigiKananDua(papGigiKananDuaVO);
|
||||
|
||||
PapGigiKananTigaVO papGigiKananTigaVO= new PapGigiKananTigaVO();
|
||||
papGigiKananTigaVO.setTujuhempat("tujuhempat");
|
||||
papGigiMulutVO.setPapGigiKananTiga(papGigiKananTigaVO);
|
||||
|
||||
PapGigiKananEmpatVO papGigiKananEmpatVO= new PapGigiKananEmpatVO();
|
||||
papGigiKananEmpatVO.setTigadua("tigadua");
|
||||
papGigiMulutVO.setPapGigiKananEmpat(papGigiKananEmpatVO);
|
||||
|
||||
PapRestorasiVO papRestorasiVO= new PapRestorasiVO();
|
||||
papRestorasiVO.setId(1);
|
||||
papGigiMulutVO.setPapRestorasi(papRestorasiVO);
|
||||
|
||||
PapBahanRestorasiVO papBahanRestorasiVO= new PapBahanRestorasiVO();
|
||||
papBahanRestorasiVO.setId(1);
|
||||
papGigiMulutVO.setPapBahanRestorasi(papBahanRestorasiVO);
|
||||
|
||||
PapProtesaVO papProtesaVO= new PapProtesaVO();
|
||||
papProtesaVO.setId(1);
|
||||
papGigiMulutVO.setPapProtesa(papProtesaVO);
|
||||
|
||||
papGigiMulutVO.setTglInput(generateDate());
|
||||
papGigiMulutVO.setStatusEnabled(false);
|
||||
|
||||
return papGigiMulutVO;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPopulate() throws ParseException{
|
||||
/*Cek Method Populate*/
|
||||
PapGigiMulutVO papGigiMulutVO = populateModelVO();
|
||||
assertNotNull(papGigiMulutVO);
|
||||
|
||||
|
||||
/*Cek Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
Ruangan ruangan = ruanganDao.findOne(10);
|
||||
assertNotNull(ruangan);
|
||||
assertEquals("Klinik Psikologi",ruangan.getNamaRuangan());
|
||||
|
||||
/*Cek Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
|
||||
RuanganVO ruanganVO = ruanganConverter.transferModelToVO(ruangan,new RuanganVO());
|
||||
assertNotNull(ruanganVO);
|
||||
//assertEquals("Klinik Psikologi",pasienVO.getNamaExternal());
|
||||
|
||||
}
|
||||
|
||||
private Date generateDate() throws ParseException{
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 11:40:39 PM";
|
||||
|
||||
Date date = formatter.parse(dateInString);
|
||||
return date;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,159 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapIntegumen;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.service.PapIntegumenService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PapIntegumenVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
import com.jasamedika.medifirst2000.vo.StatusAdaTidakAdaVO;
|
||||
import com.jasamedika.medifirst2000.vo.WarnaKulitVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapIntegumenServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapIntegumenService papIntegumenService;
|
||||
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddIntegumen() {
|
||||
PapIntegumenVO papIntegumenVO = populateModel();
|
||||
Map<String,Object> result = papIntegumenService.addIntegumen(papIntegumenVO);
|
||||
assertNotNull(result);
|
||||
assertEquals("Normal",((PapIntegumen) result.get("papIntegumen")).getWarnaKulit().getName());
|
||||
assertEquals("Tidak ada",((PapIntegumen) result.get("papIntegumen")).getKelainan().getName());
|
||||
assertEquals("Tidak ada",((PapIntegumen) result.get("papIntegumen")).getResikoDekubitos().getName());
|
||||
assertEquals("Tidak ada",((PapIntegumen) result.get("papIntegumen")).getLuka().getName());
|
||||
assertEquals("Reynaldi Ramadhani Pratama",((PapIntegumen) result.get("papIntegumen")).getPasien().getNamaPasien());
|
||||
assertTrue(((PapIntegumen) result.get("papIntegumen")).getIsNormal());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateIntegumen() {
|
||||
PapIntegumenVO papIntegumenVO = populateModel();
|
||||
Map<String,Object> result = papIntegumenService.addIntegumen(papIntegumenVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapIntegumenVO papIntegumenVOUpdate = populateModelUpdate();
|
||||
Map<String,Object> resultUpdate = papIntegumenService.addIntegumen(papIntegumenVOUpdate);
|
||||
assertNotNull(resultUpdate);
|
||||
assertEquals("Pucat",((PapIntegumen) resultUpdate.get("papIntegumen")).getWarnaKulit().getName());
|
||||
assertEquals("Ada",((PapIntegumen) resultUpdate.get("papIntegumen")).getKelainan().getName());
|
||||
assertEquals("Ada",((PapIntegumen) resultUpdate.get("papIntegumen")).getResikoDekubitos().getName());
|
||||
assertEquals("Ada",((PapIntegumen) resultUpdate.get("papIntegumen")).getLuka().getName());
|
||||
assertEquals("Reynaldi Ramadhani Pratama",((PapIntegumen) resultUpdate.get("papIntegumen")).getPasien().getNamaPasien());
|
||||
assertFalse(((PapIntegumen) resultUpdate.get("papIntegumen")).getIsNormal());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
String noCm = "000000000000005";
|
||||
String tglInput = "2016-07-17 04:26:00";
|
||||
Map<String,Object> result = papIntegumenService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void populateModelTest(){
|
||||
/*Cek Pasien Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
|
||||
/*Cek Pasien Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
|
||||
/*Cek Populate*/
|
||||
PapIntegumenVO papIntegumenVO = populateModel();
|
||||
assertEquals("Normal",papIntegumenVO.getWarnaKulit().getName());
|
||||
assertEquals("Tidak ada",papIntegumenVO.getKelainan().getName());
|
||||
assertEquals("Tidak ada",papIntegumenVO.getResikoDekubitos().getName());
|
||||
assertEquals("Tidak ada",papIntegumenVO.getLuka().getName());
|
||||
}
|
||||
|
||||
private PapIntegumenVO populateModel(){
|
||||
PapIntegumenVO papIntegumenVO = new PapIntegumenVO();
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
WarnaKulitVO warnaKulitVO = new WarnaKulitVO();
|
||||
warnaKulitVO.setId(1);
|
||||
warnaKulitVO.setName("Normal");
|
||||
StatusAdaTidakAdaVO statusAdaTidakAdaVO = new StatusAdaTidakAdaVO();
|
||||
statusAdaTidakAdaVO.setId(1);
|
||||
statusAdaTidakAdaVO.setName("Tidak ada");
|
||||
|
||||
papIntegumenVO.setTglInput(generateDate());
|
||||
papIntegumenVO.setPasien(pasienVO);
|
||||
papIntegumenVO.setWarnaKulit(warnaKulitVO);
|
||||
papIntegumenVO.setKelainan(statusAdaTidakAdaVO);
|
||||
papIntegumenVO.setResikoDekubitos(statusAdaTidakAdaVO);
|
||||
papIntegumenVO.setLuka(statusAdaTidakAdaVO);
|
||||
papIntegumenVO.setIsNormal(true);
|
||||
return papIntegumenVO;
|
||||
}
|
||||
|
||||
private PapIntegumenVO populateModelUpdate(){
|
||||
PapIntegumenVO papIntegumenVO = new PapIntegumenVO();
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
WarnaKulitVO warnaKulitVO = new WarnaKulitVO();
|
||||
warnaKulitVO.setId(2);
|
||||
warnaKulitVO.setName("Pucat");
|
||||
StatusAdaTidakAdaVO statusAdaTidakAdaVO = new StatusAdaTidakAdaVO();
|
||||
statusAdaTidakAdaVO.setId(2);
|
||||
statusAdaTidakAdaVO.setName("Ada");
|
||||
papIntegumenVO.setIsNormal(false);
|
||||
|
||||
papIntegumenVO.setTglInput(generateDate());
|
||||
papIntegumenVO.setPasien(pasienVO);
|
||||
papIntegumenVO.setWarnaKulit(warnaKulitVO);
|
||||
papIntegumenVO.setKelainan(statusAdaTidakAdaVO);
|
||||
papIntegumenVO.setResikoDekubitos(statusAdaTidakAdaVO);
|
||||
papIntegumenVO.setLuka(statusAdaTidakAdaVO);
|
||||
return papIntegumenVO;
|
||||
}
|
||||
|
||||
private Date generateDate(){
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 12:10:56 PM";
|
||||
|
||||
Date date = null;
|
||||
try {
|
||||
date = formatter.parse(dateInString);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return date;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,160 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.converter.RegistrasiPelayananPasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.dao.RegistrasiPelayananPasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapKeluhanTambahan;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.entities.RegistrasiPelayananPasien;
|
||||
import com.jasamedika.medifirst2000.service.PapKeluhanTambahanService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PapKeluhanTambahanVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
import com.jasamedika.medifirst2000.vo.RegistrasiPelayananPasienVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapKeluhanTambahanServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapKeluhanTambahanService papKeluhanTambahanService;
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
@Autowired
|
||||
private RegistrasiPelayananPasienDao registrasiPelayananpasienDao;
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
@Autowired
|
||||
private RegistrasiPelayananPasienConverter registrasiPelayananPasienConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddKeluhanTambahan() throws ParseException {
|
||||
PapKeluhanTambahanVO papKeluhanTambahanVO = populateModelVO();
|
||||
assertNotNull(papKeluhanTambahanVO);
|
||||
Map<String,Object> result = papKeluhanTambahanService.addKeluhanTambahan(papKeluhanTambahanVO);
|
||||
assertNotNull(result);
|
||||
assertEquals("Keluhan tambahan",((PapKeluhanTambahan) result.get("papKeluhanTambahan")).getKeluhanTambahan());
|
||||
//assertEquals("Setyo Wibudi",((PapKeluhanTambahan) result.get("papKeluhanTambahan")).getPasien().getNamaPasien());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateKeluhanTambahan() throws ParseException {
|
||||
PapKeluhanTambahanVO papKeluhanTambahanVO = populateModelVO();
|
||||
Map<String,Object> result = papKeluhanTambahanService.addKeluhanTambahan(papKeluhanTambahanVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapKeluhanTambahanVO papKeluhanTambahanVOUpdate = populateModelVOUpdate();
|
||||
papKeluhanTambahanVOUpdate.setNoRec(((PapKeluhanTambahan) result.get("papKeluhanTambahan")).getNoRec());
|
||||
assertNotNull(papKeluhanTambahanVOUpdate);
|
||||
assertEquals(papKeluhanTambahanVOUpdate.getNoRec(),((PapKeluhanTambahan) result.get("papKeluhanTambahan")).getNoRec());
|
||||
|
||||
Map<String,Object> resultUpdate = papKeluhanTambahanService.addKeluhanTambahan(papKeluhanTambahanVOUpdate);
|
||||
assertEquals(false,((PapKeluhanTambahan) resultUpdate.get("papKeluhanTambahan")).getStatusEnabled());
|
||||
assertEquals("Keluhan tambahan update",((PapKeluhanTambahan) resultUpdate.get("papKeluhanTambahan")).getKeluhanTambahan());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
String noCm = "000000000000005";
|
||||
String tglInput = "2016-07-21 00:24:30";
|
||||
Map<String,Object> result = papKeluhanTambahanService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
assertEquals("keluhan Pertama",((PapKeluhanTambahan) result.get("papKeluhanTambahan")).getKeluhanTambahan());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindPasienByNoCmAndTglKeluhan() {
|
||||
String noCm = "000000000000005";
|
||||
String tglKeluhan = "2016-07-21 00:23:37";
|
||||
Map<String,Object> result = papKeluhanTambahanService.findByNoCmAndTglkeluhan(DateUtil.toDate(tglKeluhan), noCm);
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
//assertEquals("keluhan pertama",((PapKeluhanTambahan) result.get("papKeluhanTambahan")).getKeluhanTambahan());
|
||||
|
||||
}
|
||||
|
||||
private PapKeluhanTambahanVO populateModelVO() throws ParseException{
|
||||
PapKeluhanTambahanVO papKeluhanTambahanVO = new PapKeluhanTambahanVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
|
||||
RegistrasiPelayananPasien registrasiPelayananPasien = registrasiPelayananpasienDao.findOne("2c9090ad56014d2c0156014f2f020003");
|
||||
RegistrasiPelayananPasienVO registrasiPelayananPasienVO = registrasiPelayananPasienConverter.transferModelToVO(registrasiPelayananPasien,new RegistrasiPelayananPasienVO());
|
||||
|
||||
//papKeluhanTambahanVO.setRegistrasiPelayananPasien(registrasiPelayananPasienVO);
|
||||
// papKeluhanTambahanVO.setPasien(pasienVO);
|
||||
papKeluhanTambahanVO.setKeluhanTambahan("Keluhan tambahan");
|
||||
papKeluhanTambahanVO.setTglInput(generateDate());
|
||||
papKeluhanTambahanVO.setTglMerasaKeluhan(generateDate());
|
||||
papKeluhanTambahanVO.setStatusEnabled(true);
|
||||
|
||||
return papKeluhanTambahanVO;
|
||||
}
|
||||
|
||||
private PapKeluhanTambahanVO populateModelVOUpdate() throws ParseException{
|
||||
PapKeluhanTambahanVO papKeluhanTambahanVO = new PapKeluhanTambahanVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
|
||||
RegistrasiPelayananPasien registrasiPelayananPasien = registrasiPelayananpasienDao.findOne("2c9090ad56014d2c0156014f2f020003");
|
||||
RegistrasiPelayananPasienVO registrasiPelayananPasienVO = registrasiPelayananPasienConverter.transferModelToVO(registrasiPelayananPasien,new RegistrasiPelayananPasienVO());
|
||||
|
||||
//papKeluhanTambahanVO.setRegistrasiPelayananPasien(registrasiPelayananPasienVO);
|
||||
papKeluhanTambahanVO.setTglInput(generateDate());
|
||||
papKeluhanTambahanVO.setTglMerasaKeluhan(generateDate());
|
||||
//papKeluhanTambahanVO.setPasien(pasienVO);
|
||||
papKeluhanTambahanVO.setStatusEnabled(false);
|
||||
papKeluhanTambahanVO.setKeluhanTambahan("Keluhan tambahan update");
|
||||
|
||||
return papKeluhanTambahanVO;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPopulate() throws ParseException{
|
||||
/*Cek Method Populate*/
|
||||
PapKeluhanTambahanVO papKeluhanTambahanVO = populateModelVO();
|
||||
assertNotNull(papKeluhanTambahanVO);
|
||||
|
||||
|
||||
/*Cek Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
|
||||
/*Cek Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
|
||||
assertEquals("Keluhan tambahan",papKeluhanTambahanVO.getKeluhanTambahan());
|
||||
}
|
||||
|
||||
private Date generateDate() throws ParseException{
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 11:40:39 PM";
|
||||
|
||||
Date date = formatter.parse(dateInString);
|
||||
return date;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,138 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapKeluhanUtama;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.service.PapKeluhanUtamaService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PapKeluhanUtamaVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapKeluhanUtamaServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapKeluhanUtamaService papKeluhanUtamaService;
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddKeluhanUtama() throws ParseException {
|
||||
PapKeluhanUtamaVO papKeluhanUtamaVO = populateModelVO();
|
||||
assertNotNull(papKeluhanUtamaVO);
|
||||
Map<String,Object> result = papKeluhanUtamaService.addKeluhanUtama(papKeluhanUtamaVO);
|
||||
assertNotNull(result);
|
||||
assertEquals("Keluhan utama",((PapKeluhanUtama) result.get("papKeluhanUtama")).getKeluhanUtama());
|
||||
// assertEquals("Setyo Wibudi",((PapKeluhanUtama) result.get("papKeluhanUtama")).getPasien().getNamaPasien());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateKeluhanUtama() throws ParseException {
|
||||
PapKeluhanUtamaVO papKeluhanUtamaVO = populateModelVO();
|
||||
Map<String,Object> result = papKeluhanUtamaService.addKeluhanUtama(papKeluhanUtamaVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapKeluhanUtamaVO papKeluhanUtamaVOUpdate = populateModelVOUpdate();
|
||||
papKeluhanUtamaVOUpdate.setNoRec(((PapKeluhanUtama) result.get("papKeluhanUtama")).getNoRec());
|
||||
assertNotNull(papKeluhanUtamaVOUpdate);
|
||||
assertEquals(papKeluhanUtamaVOUpdate.getNoRec(),((PapKeluhanUtama) result.get("papKeluhanUtama")).getNoRec());
|
||||
|
||||
Map<String,Object> resultUpdate = papKeluhanUtamaService.addKeluhanUtama(papKeluhanUtamaVOUpdate);
|
||||
assertEquals(false,((PapKeluhanUtama) resultUpdate.get("papKeluhanUtama")).getStatusEnabled());
|
||||
assertEquals("Keluhan utama update",((PapKeluhanUtama) resultUpdate.get("papKeluhanUtama")).getKeluhanUtama());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
String noCm = "000000000000005";
|
||||
String tglInput = "2016-07-17 04:26:00";
|
||||
Map<String,Object> result = papKeluhanUtamaService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
assertEquals("6786867867",((PapKeluhanUtama) result.get("papKeluhanUtama")).getKeluhanUtama());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindPasienByNoCm() {
|
||||
String noCm = "000000000000005";
|
||||
Map<String,Object> result = papKeluhanUtamaService.findPasienByNoCm(noCm);
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
assertEquals("6786867867",((PapKeluhanUtama) result.get("papKeluhanUtama")).getKeluhanUtama());
|
||||
|
||||
}
|
||||
|
||||
private PapKeluhanUtamaVO populateModelVO() throws ParseException{
|
||||
PapKeluhanUtamaVO papKeluhanUtamaVO = new PapKeluhanUtamaVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
//papKeluhanUtamaVO.setPasien(pasienVO);
|
||||
papKeluhanUtamaVO.setKeluhanUtama("Keluhan utama");
|
||||
papKeluhanUtamaVO.setTglInput(generateDate());
|
||||
papKeluhanUtamaVO.setStatusEnabled(true);
|
||||
|
||||
return papKeluhanUtamaVO;
|
||||
}
|
||||
|
||||
private PapKeluhanUtamaVO populateModelVOUpdate() throws ParseException{
|
||||
PapKeluhanUtamaVO papKeluhanUtamaVO = new PapKeluhanUtamaVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
papKeluhanUtamaVO.setTglInput(generateDate());
|
||||
//papKeluhanUtamaVO.setPasien(pasienVO);
|
||||
papKeluhanUtamaVO.setStatusEnabled(false);
|
||||
papKeluhanUtamaVO.setKeluhanUtama("Keluhan utama update");
|
||||
|
||||
return papKeluhanUtamaVO;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPopulate() throws ParseException{
|
||||
/*Cek Method Populate*/
|
||||
PapKeluhanUtamaVO papKeluhanUtamaVO = populateModelVO();
|
||||
assertNotNull(papKeluhanUtamaVO);
|
||||
|
||||
|
||||
/*Cek Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
|
||||
/*Cek Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
|
||||
assertEquals("Keluhan utama",papKeluhanUtamaVO.getKeluhanUtama());
|
||||
}
|
||||
|
||||
private Date generateDate() throws ParseException{
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 11:40:39 PM";
|
||||
|
||||
Date date = formatter.parse(dateInString);
|
||||
return date;
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,158 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapIntegumen;
|
||||
import com.jasamedika.medifirst2000.entities.PapMuskuloskeletal;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.service.PapMuskuloskeletalService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.GerakanAnakVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapMuskuloskeletalVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
import com.jasamedika.medifirst2000.vo.StatusAdaTidakAdaVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapMuskuloskeletalServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapMuskuloskeletalService papMuskuloskeletalService;
|
||||
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddMuskuloskeletal() {
|
||||
PapMuskuloskeletalVO papMuskuloskeletalVO = populateModel();
|
||||
Map<String,Object> result = papMuskuloskeletalService.addMuskuloskeletal(papMuskuloskeletalVO);
|
||||
assertNotNull(result);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",((PapMuskuloskeletal) result.get("papMuskuloskeletal")).getPasien().getNamaPasien());
|
||||
assertEquals("Tidak ada",((PapMuskuloskeletal) result.get("papMuskuloskeletal")).getKelainanTulang().getName());
|
||||
assertEquals("Bebas",((PapMuskuloskeletal) result.get("papMuskuloskeletal")).getGerakanAnak().getName());
|
||||
assertNotNull(((PapMuskuloskeletal) result.get("papMuskuloskeletal")).getTglInput());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateMuskuloskeletal() {
|
||||
PapMuskuloskeletalVO papMuskuloskeletalVO = populateModel();
|
||||
Map<String,Object> result = papMuskuloskeletalService.addMuskuloskeletal(papMuskuloskeletalVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapMuskuloskeletalVO papMuskuloskeletalVOUpdate = populateModelUpdate();
|
||||
Map<String,Object> resultUpdate = papMuskuloskeletalService.addMuskuloskeletal(papMuskuloskeletalVOUpdate);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",((PapMuskuloskeletal) resultUpdate.get("papMuskuloskeletal")).getPasien().getNamaPasien());
|
||||
assertEquals("Ada",((PapMuskuloskeletal) resultUpdate.get("papMuskuloskeletal")).getKelainanTulang().getName());
|
||||
assertEquals("Terbatas",((PapMuskuloskeletal) resultUpdate.get("papMuskuloskeletal")).getGerakanAnak().getName());
|
||||
assertNotNull(((PapMuskuloskeletal) resultUpdate.get("papMuskuloskeletal")).getTglInput());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
String noCm = "000001";
|
||||
String tglInput = "2013-06-07 12:10:56";
|
||||
Map<String,Object> result = papMuskuloskeletalService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPopulateModel(){
|
||||
/*Cek Pasien Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
|
||||
/*Cek Pasien Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
|
||||
/*Cek Atribut VO*/
|
||||
StatusAdaTidakAdaVO statusAdaTidakAdaVO = new StatusAdaTidakAdaVO();
|
||||
statusAdaTidakAdaVO.setId(1);
|
||||
statusAdaTidakAdaVO.setName("Tidak Ada");
|
||||
assertNotNull(statusAdaTidakAdaVO);
|
||||
assertEquals(String.valueOf(1), String.valueOf(statusAdaTidakAdaVO.getId()));
|
||||
assertEquals("Tidak Ada",statusAdaTidakAdaVO.getName());
|
||||
GerakanAnakVO gerakanAnakVO = new GerakanAnakVO();
|
||||
gerakanAnakVO.setId(1);
|
||||
gerakanAnakVO.setName("Bebas");
|
||||
assertEquals(String.valueOf(1), String.valueOf(gerakanAnakVO.getId()));
|
||||
assertNotNull(gerakanAnakVO);
|
||||
|
||||
}
|
||||
|
||||
public PapMuskuloskeletalVO populateModel(){
|
||||
PapMuskuloskeletalVO papMuskuloskeletalVO = new PapMuskuloskeletalVO();
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
StatusAdaTidakAdaVO statusAdaTidakAdaVO = new StatusAdaTidakAdaVO();
|
||||
statusAdaTidakAdaVO.setId(1);
|
||||
statusAdaTidakAdaVO.setName("Tidak ada");
|
||||
GerakanAnakVO gerakanAnakVO = new GerakanAnakVO();
|
||||
gerakanAnakVO.setId(1);
|
||||
gerakanAnakVO.setName("Bebas");
|
||||
|
||||
papMuskuloskeletalVO.setIsNormal(true);
|
||||
papMuskuloskeletalVO.setKelainanTulang(statusAdaTidakAdaVO);
|
||||
papMuskuloskeletalVO.setPasien(pasienVO);
|
||||
papMuskuloskeletalVO.setTglInput(generateDate());
|
||||
papMuskuloskeletalVO.setGerakanAnak(gerakanAnakVO);
|
||||
return papMuskuloskeletalVO;
|
||||
}
|
||||
|
||||
public PapMuskuloskeletalVO populateModelUpdate(){
|
||||
PapMuskuloskeletalVO papMuskuloskeletalVO = new PapMuskuloskeletalVO();
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
StatusAdaTidakAdaVO statusAdaTidakAdaVO = new StatusAdaTidakAdaVO();
|
||||
statusAdaTidakAdaVO.setId(2);
|
||||
statusAdaTidakAdaVO.setName("Ada");
|
||||
GerakanAnakVO gerakanAnakVO = new GerakanAnakVO();
|
||||
gerakanAnakVO.setId(2);
|
||||
gerakanAnakVO.setName("Terbatas");
|
||||
|
||||
papMuskuloskeletalVO.setKelainanTulang(statusAdaTidakAdaVO);
|
||||
papMuskuloskeletalVO.setPasien(pasienVO);
|
||||
papMuskuloskeletalVO.setTglInput(new Date());
|
||||
papMuskuloskeletalVO.setGerakanAnak(gerakanAnakVO);
|
||||
return papMuskuloskeletalVO;
|
||||
}
|
||||
|
||||
private Date generateDate(){
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 12:10:56 PM";
|
||||
|
||||
Date date = null;
|
||||
try {
|
||||
date = formatter.parse(dateInString);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return date;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,113 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapNeurologi;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.service.PapNeurologiService;
|
||||
import com.jasamedika.medifirst2000.vo.PapNeurologiVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapNeurologiServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapNeurologiService papNeurologiService;
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
|
||||
@Test
|
||||
public void testAddNeurologi() throws ParseException {
|
||||
PapNeurologiVO papNeurologiVO = populateModelVO();
|
||||
assertNotNull(papNeurologiVO);
|
||||
Map<String,Object> result = papNeurologiService.addNeurologi(papNeurologiVO);
|
||||
//assertEquals("15",((PapNeurologi) result.get("papNeurologi")).getLingkarPerut());
|
||||
assertEquals(true,((PapNeurologi) result.get("papNeurologi")).getIsNormal());
|
||||
assertNotNull(result);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateNeurologi() throws ParseException {
|
||||
PapNeurologiVO papNeurologiVO = populateModelVO();
|
||||
Map<String,Object> result = papNeurologiService.addNeurologi(papNeurologiVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapNeurologiVO papNeurologiVOUpdate = populateModelVOUpdate();
|
||||
papNeurologiVOUpdate.setNoRec(((PapNeurologi) result.get("papNeurologi")).getNoRec());
|
||||
assertNotNull(papNeurologiVOUpdate);
|
||||
assertEquals(papNeurologiVOUpdate.getNoRec(),((PapNeurologi) result.get("papNeurologi")).getNoRec());
|
||||
|
||||
Map<String,Object> resultUpdate = papNeurologiService.addNeurologi(papNeurologiVOUpdate);
|
||||
assertEquals(false,((PapNeurologi) resultUpdate.get("papNeurologi")).getIsNormal());
|
||||
assertEquals(false,((PapNeurologi) resultUpdate.get("papNeurologi")).getStatusEnabled());
|
||||
}
|
||||
|
||||
|
||||
private PapNeurologiVO populateModelVO() throws ParseException{
|
||||
PapNeurologiVO papNeurologiVO = new PapNeurologiVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
|
||||
papNeurologiVO.setTglInput(generateDate());
|
||||
papNeurologiVO.setPasien(pasienVO);
|
||||
papNeurologiVO.setIsNormal(true);
|
||||
papNeurologiVO.setStatusEnabled(true);
|
||||
|
||||
return papNeurologiVO;
|
||||
}
|
||||
|
||||
private PapNeurologiVO populateModelVOUpdate() throws ParseException{
|
||||
PapNeurologiVO papNeurologiVO = new PapNeurologiVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
papNeurologiVO.setTglInput(generateDate());
|
||||
papNeurologiVO.setPasien(pasienVO);
|
||||
papNeurologiVO.setIsNormal(false);
|
||||
papNeurologiVO.setStatusEnabled(false);
|
||||
|
||||
return papNeurologiVO;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPopulate() throws ParseException{
|
||||
/*Cek Method Populate*/
|
||||
PapNeurologiVO papNeurologiVO = populateModelVO();
|
||||
assertNotNull(papNeurologiVO);
|
||||
|
||||
/*Cek Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
|
||||
/*Cek Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
}
|
||||
|
||||
private Date generateDate() throws ParseException{
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 11:40:39 PM";
|
||||
|
||||
Date date = formatter.parse(dateInString);
|
||||
return date;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,189 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapPernapasan;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.service.PapPernapasanService;
|
||||
import com.jasamedika.medifirst2000.service.PasienService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.DataAlatBantuNafasVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapPernapasanVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
import com.jasamedika.medifirst2000.vo.StatusAdaTidakAdaVO;
|
||||
import com.jasamedika.medifirst2000.vo.StatusNormalTidakNormalVO;
|
||||
import com.jasamedika.medifirst2000.vo.StatusRegulerIrregulerVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapPernapasanServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapPernapasanService papPernapasanService;
|
||||
@Autowired
|
||||
private PasienService pasienService;
|
||||
@Autowired
|
||||
public PasienDao pasienDao;
|
||||
@Autowired
|
||||
public PasienConverter pasienConverter;
|
||||
//public PasienVO pasienVO;
|
||||
|
||||
@Transactional
|
||||
@Test
|
||||
public void testAddPernapasan() throws ParseException {
|
||||
|
||||
PapPernapasanVO papPernapasanVO = populateModelVO();
|
||||
assertNotNull(papPernapasanVO);
|
||||
Map<String,Object> result = papPernapasanService.addPernapasan(papPernapasanVO);
|
||||
assertNotNull(result);
|
||||
assertEquals(true,((PapPernapasan) result.get("papPernapasan")).getIsNormal());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdatePernapasan() throws ParseException {
|
||||
PapPernapasanVO papPernapasanVO = populateModelVO();
|
||||
Map<String,Object> result = papPernapasanService.addPernapasan(papPernapasanVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapPernapasanVO papPernapasanVOUpdate = populateModelVOUpdate();
|
||||
papPernapasanVOUpdate.setNoRec(((PapPernapasan) result.get("papPernapasan")).getNoRec());
|
||||
assertNotNull(papPernapasanVOUpdate);
|
||||
assertEquals(papPernapasanVOUpdate.getNoRec(),((PapPernapasan) result.get("papPernapasan")).getNoRec());
|
||||
|
||||
Map<String,Object> resultUpdate = papPernapasanService.addPernapasan(papPernapasanVOUpdate);
|
||||
assertEquals(false,((PapPernapasan) resultUpdate.get("papPernapasan")).getIsNormal());
|
||||
assertEquals(false,((PapPernapasan) resultUpdate.get("papPernapasan")).getStatusEnabled());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
String noCm = "000000000000005";
|
||||
String tglInput = "2016-07-17 04:26:00";
|
||||
Map<String,Object> result = papPernapasanService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
private PapPernapasanVO populateModelVO() throws ParseException{
|
||||
PapPernapasanVO papPernapasanVO = new PapPernapasanVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
papPernapasanVO.setPasien(pasienVO);
|
||||
|
||||
final String uuid = UUID.randomUUID().toString().replaceAll("-", "");
|
||||
papPernapasanVO.setNoRec(uuid);
|
||||
|
||||
DataAlatBantuNafasVO alatBantuNafasVO = new DataAlatBantuNafasVO();
|
||||
alatBantuNafasVO.setId(1);
|
||||
papPernapasanVO.setAlatBantuNafas(alatBantuNafasVO);
|
||||
|
||||
StatusNormalTidakNormalVO bentukDadaVO = new StatusNormalTidakNormalVO();
|
||||
bentukDadaVO.setId(1);
|
||||
papPernapasanVO.setBentukDada(bentukDadaVO);
|
||||
|
||||
StatusRegulerIrregulerVO iramaVO = new StatusRegulerIrregulerVO();
|
||||
iramaVO.setId(1);
|
||||
papPernapasanVO.setIrama(iramaVO);
|
||||
|
||||
StatusAdaTidakAdaVO retraksiDadaVO = new StatusAdaTidakAdaVO();
|
||||
retraksiDadaVO.setId(1);
|
||||
papPernapasanVO.setRetraksiDada(retraksiDadaVO);
|
||||
|
||||
papPernapasanVO.setTglInput(generateDate());
|
||||
|
||||
StatusNormalTidakNormalVO polaNapasVO = new StatusNormalTidakNormalVO();
|
||||
polaNapasVO.setId(1);
|
||||
papPernapasanVO.setPolaNapas(polaNapasVO);
|
||||
|
||||
StatusNormalTidakNormalVO suaraNapasVO = new StatusNormalTidakNormalVO();
|
||||
suaraNapasVO.setId(1);
|
||||
papPernapasanVO.setSuaraNapas(suaraNapasVO);
|
||||
|
||||
StatusAdaTidakAdaVO nafasKupingHidungVO = new StatusAdaTidakAdaVO();
|
||||
nafasKupingHidungVO.setId(1);
|
||||
papPernapasanVO.setNafasKupingHidung(nafasKupingHidungVO);
|
||||
|
||||
StatusAdaTidakAdaVO sianosisVO = new StatusAdaTidakAdaVO();
|
||||
sianosisVO.setId(1);
|
||||
papPernapasanVO.setSianosis(sianosisVO);
|
||||
papPernapasanVO.setKdProfile((short) 897);
|
||||
papPernapasanVO.setIsNormal(true);
|
||||
papPernapasanVO.setStatusEnabled(true);
|
||||
|
||||
return papPernapasanVO;
|
||||
}
|
||||
|
||||
private PapPernapasanVO populateModelVOUpdate() throws ParseException{
|
||||
PapPernapasanVO papPernapasanVO = new PapPernapasanVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
papPernapasanVO.setPasien(pasienVO);
|
||||
|
||||
final String uuid = UUID.randomUUID().toString().replaceAll("-", "");
|
||||
papPernapasanVO.setNoRec(uuid);
|
||||
|
||||
DataAlatBantuNafasVO alatBantuNafasVO = new DataAlatBantuNafasVO();
|
||||
alatBantuNafasVO.setId(1);
|
||||
papPernapasanVO.setAlatBantuNafas(alatBantuNafasVO);
|
||||
|
||||
StatusNormalTidakNormalVO bentukDadaVO = new StatusNormalTidakNormalVO();
|
||||
bentukDadaVO.setId(1);
|
||||
papPernapasanVO.setBentukDada(bentukDadaVO);
|
||||
|
||||
StatusRegulerIrregulerVO iramaVO = new StatusRegulerIrregulerVO();
|
||||
iramaVO.setId(1);
|
||||
papPernapasanVO.setIrama(iramaVO);
|
||||
|
||||
StatusAdaTidakAdaVO retraksiDadaVO = new StatusAdaTidakAdaVO();
|
||||
retraksiDadaVO.setId(1);
|
||||
papPernapasanVO.setRetraksiDada(retraksiDadaVO);
|
||||
|
||||
papPernapasanVO.setTglInput(generateDate());
|
||||
|
||||
StatusNormalTidakNormalVO polaNapasVO = new StatusNormalTidakNormalVO();
|
||||
polaNapasVO.setId(1);
|
||||
papPernapasanVO.setPolaNapas(polaNapasVO);
|
||||
|
||||
StatusNormalTidakNormalVO suaraNapasVO = new StatusNormalTidakNormalVO();
|
||||
suaraNapasVO.setId(1);
|
||||
papPernapasanVO.setSuaraNapas(suaraNapasVO);
|
||||
|
||||
StatusAdaTidakAdaVO nafasKupingHidungVO = new StatusAdaTidakAdaVO();
|
||||
nafasKupingHidungVO.setId(1);
|
||||
papPernapasanVO.setNafasKupingHidung(nafasKupingHidungVO);
|
||||
|
||||
StatusAdaTidakAdaVO sianosisVO = new StatusAdaTidakAdaVO();
|
||||
sianosisVO.setId(1);
|
||||
papPernapasanVO.setSianosis(sianosisVO);
|
||||
papPernapasanVO.setKdProfile((short) 890);
|
||||
papPernapasanVO.setIsNormal(false);
|
||||
papPernapasanVO.setStatusEnabled(false);
|
||||
|
||||
return papPernapasanVO;
|
||||
}
|
||||
|
||||
private Date generateDate() throws ParseException{
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 12:10:56 PM";
|
||||
|
||||
Date date = formatter.parse(dateInString);
|
||||
return date;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,145 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapRehabilitasi;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.service.PapRehabilitasiService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PapRehabilitasiVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
|
||||
public class PapRehabilitasiServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapRehabilitasiService papRehabilitasiService;
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddRehabilitasi() throws ParseException {
|
||||
PapRehabilitasiVO papRehabilitasiVO = populateModelVO();
|
||||
assertNotNull(papRehabilitasiVO);
|
||||
Map<String,Object> result = papRehabilitasiService.addRehabilitasi(papRehabilitasiVO);
|
||||
assertNotNull(result);
|
||||
assertEquals("Setyo Wibudi",((PapRehabilitasi) result.get("papRehabilitasi")).getPasien().getNamaPasien());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateRehabilitasi() throws ParseException {
|
||||
PapRehabilitasiVO papRehabilitasiVO = populateModelVO();
|
||||
Map<String,Object> result = papRehabilitasiService.addRehabilitasi(papRehabilitasiVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapRehabilitasiVO papRehabilitasiVOUpdate = populateModelVOUpdate();
|
||||
papRehabilitasiVOUpdate.setNoRec(((PapRehabilitasi) result.get("papRehabilitasi")).getNoRec());
|
||||
assertNotNull(papRehabilitasiVOUpdate);
|
||||
assertEquals(papRehabilitasiVOUpdate.getNoRec(),((PapRehabilitasi) result.get("papRehabilitasi")).getNoRec());
|
||||
|
||||
Map<String,Object> resultUpdate = papRehabilitasiService.addRehabilitasi(papRehabilitasiVOUpdate);
|
||||
assertEquals(false,((PapRehabilitasi) resultUpdate.get("papRehabilitasi")).getStatusEnabled());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
String noCm = "000003";
|
||||
String tglInput = "2013-06-07 11:40:39";
|
||||
Map<String,Object> result = papRehabilitasiService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindByNoCmAndTglRegistrasi() {
|
||||
String noCm = "000001";
|
||||
String tglRegistrasi = "2016-07-17 02:12:03";
|
||||
//Map<String,Object> result = papRehabilitasiService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
Map<String,Object> result = papRehabilitasiService.findRegistrasiPelayananPasienByNoCmAndTglRegistrasi(noCm,(short) 0, DateUtil.toDate(tglRegistrasi));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindPasienByNoCm() {
|
||||
String noCm = "000000000000002";
|
||||
Map<String,Object> result = papRehabilitasiService.findPasienByNoCm(noCm);
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private PapRehabilitasiVO populateModelVO() throws ParseException{
|
||||
PapRehabilitasiVO papRehabilitasiVO = new PapRehabilitasiVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
papRehabilitasiVO.setPasien(pasienVO);
|
||||
papRehabilitasiVO.setTglInput(generateDate());
|
||||
papRehabilitasiVO.setStatusEnabled(true);
|
||||
|
||||
return papRehabilitasiVO;
|
||||
}
|
||||
|
||||
private PapRehabilitasiVO populateModelVOUpdate() throws ParseException{
|
||||
PapRehabilitasiVO papRehabilitasiVO = new PapRehabilitasiVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
papRehabilitasiVO.setTglInput(generateDate());
|
||||
papRehabilitasiVO.setPasien(pasienVO);
|
||||
papRehabilitasiVO.setStatusEnabled(false);
|
||||
|
||||
return papRehabilitasiVO;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPopulate() throws ParseException{
|
||||
/*Cek Method Populate*/
|
||||
PapRehabilitasiVO papRehabilitasiVO = populateModelVO();
|
||||
assertNotNull(papRehabilitasiVO);
|
||||
|
||||
|
||||
/*Cek Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
|
||||
/*Cek Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
|
||||
}
|
||||
|
||||
private Date generateDate() throws ParseException{
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 11:40:39 PM";
|
||||
|
||||
Date date = formatter.parse(dateInString);
|
||||
return date;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,142 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapSirkulasi;
|
||||
import com.jasamedika.medifirst2000.entities.PapGenatalia;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.service.AgamaService;
|
||||
import com.jasamedika.medifirst2000.service.PapSirkulasiService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PapSirkulasiVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
import com.jasamedika.medifirst2000.vo.StatusAdaTidakAdaVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
|
||||
public class PapSirkulasiServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapSirkulasiService papSirkulasiService;
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddSirkulasi() throws ParseException {
|
||||
PapSirkulasiVO papSirkulasiVO = populateModelVO();
|
||||
assertNotNull(papSirkulasiVO);
|
||||
Map<String,Object> result = papSirkulasiService.addSirkulasi(papSirkulasiVO);
|
||||
assertEquals(true,((PapSirkulasi) result.get("papSirkulasi")).getIsNormal());
|
||||
assertNotNull(result);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateSirkulasi() throws ParseException {
|
||||
PapSirkulasiVO papSirkulasiVO = populateModelVO();
|
||||
Map<String,Object> result = papSirkulasiService.addSirkulasi(papSirkulasiVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapSirkulasiVO papSirkulasiVOUpdate = populateModelVOUpdate();
|
||||
papSirkulasiVOUpdate.setNoRec(((PapSirkulasi) result.get("papSirkulasi")).getNoRec());
|
||||
assertNotNull(papSirkulasiVOUpdate);
|
||||
assertEquals(papSirkulasiVOUpdate.getNoRec(),((PapSirkulasi) result.get("papSirkulasi")).getNoRec());
|
||||
|
||||
Map<String,Object> resultUpdate = papSirkulasiService.addSirkulasi(papSirkulasiVOUpdate);
|
||||
assertEquals(false,((PapSirkulasi) resultUpdate.get("papSirkulasi")).getIsNormal());
|
||||
assertEquals(false,((PapSirkulasi) resultUpdate.get("papSirkulasi")).getStatusEnabled());
|
||||
}
|
||||
|
||||
|
||||
private PapSirkulasiVO populateModelVO() throws ParseException{
|
||||
PapSirkulasiVO papSirkulasiVO = new PapSirkulasiVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
|
||||
StatusAdaTidakAdaVO sianosisVO = new StatusAdaTidakAdaVO();
|
||||
sianosisVO.setName("Tidak ada");
|
||||
sianosisVO.setId(1);
|
||||
papSirkulasiVO.setSianosis(sianosisVO);
|
||||
|
||||
StatusAdaTidakAdaVO pucatVO = new StatusAdaTidakAdaVO();
|
||||
pucatVO.setName("Tidak ada");
|
||||
pucatVO.setId(1);
|
||||
papSirkulasiVO.setPucat(pucatVO);
|
||||
|
||||
papSirkulasiVO.setTglInput(generateDate());
|
||||
papSirkulasiVO.setPasien(pasienVO);
|
||||
papSirkulasiVO.setIsNormal(true);
|
||||
papSirkulasiVO.setStatusEnabled(true);
|
||||
|
||||
return papSirkulasiVO;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
String noCm = "000000000000005";
|
||||
String tglInput = "2016-07-17 04:26:00";
|
||||
Map<String,Object> result = papSirkulasiService.findByNoCmAndTglInput(noCm, DateUtil.toDate(tglInput));
|
||||
assertNotNull(result);
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
private PapSirkulasiVO populateModelVOUpdate() throws ParseException{
|
||||
PapSirkulasiVO papSirkulasiVO = new PapSirkulasiVO();
|
||||
Pasien pasien = pasienDao.findOne(547);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
papSirkulasiVO.setTglInput(generateDate());
|
||||
papSirkulasiVO.setPasien(pasienVO);
|
||||
papSirkulasiVO.setIsNormal(false);
|
||||
papSirkulasiVO.setStatusEnabled(false);
|
||||
|
||||
return papSirkulasiVO;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPopulate() throws ParseException{
|
||||
/*Cek Method Populate*/
|
||||
PapSirkulasiVO papSirkulasiVO = populateModelVO();
|
||||
assertNotNull(papSirkulasiVO);
|
||||
|
||||
/*Cek Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
|
||||
/*Cek Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
}
|
||||
|
||||
private Date generateDate() throws ParseException{
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 11:40:39 PM";
|
||||
|
||||
Date date = formatter.parse(dateInString);
|
||||
return date;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,146 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapSkriningGizi;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.service.PapSkriningGiziService;
|
||||
import com.jasamedika.medifirst2000.vo.PapSkriningGiziVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapSkriningGiziServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapSkriningGiziService papSkriningGiziService;
|
||||
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddSkriningGizi() {
|
||||
PapSkriningGiziVO vo = populateModel();
|
||||
Map<String,Object> result = papSkriningGiziService.addSkriningGizi(vo);
|
||||
assertNotNull(result);
|
||||
|
||||
PapSkriningGizi papSkriningGizi = (PapSkriningGizi) result.get("papSkriningGizi");
|
||||
assertNotNull(papSkriningGizi);
|
||||
assertEquals(generateDate(),papSkriningGizi.getTglInput());
|
||||
assertEquals(String.valueOf((float) 170),String.valueOf(papSkriningGizi.getTinggiBadan()));
|
||||
assertEquals(String.valueOf((float) 68),String.valueOf(papSkriningGizi.getBeratBadan()));
|
||||
assertEquals(String.valueOf((float) 60),String.valueOf(papSkriningGizi.getLingkarKepala()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateSkriningGizi() {
|
||||
PapSkriningGiziVO vo = populateModel();
|
||||
Map<String,Object> result = papSkriningGiziService.addSkriningGizi(vo);
|
||||
assertNotNull(result);
|
||||
|
||||
PapSkriningGiziVO voUpdate = populateModel();
|
||||
voUpdate.setBeratBadan((float) 100);
|
||||
voUpdate.setTinggiBadan((float) 100);
|
||||
voUpdate.setLingkarKepala((float) 100);
|
||||
|
||||
Map<String,Object> resultUpdate = papSkriningGiziService.addSkriningGizi(voUpdate);
|
||||
assertNotNull(resultUpdate);
|
||||
|
||||
PapSkriningGizi papSkriningGizi = (PapSkriningGizi) resultUpdate.get("papSkriningGizi");
|
||||
assertNotNull(papSkriningGizi);
|
||||
assertEquals(generateDate(),papSkriningGizi.getTglInput());
|
||||
assertEquals(String.valueOf((float) 100),String.valueOf(papSkriningGizi.getTinggiBadan()));
|
||||
assertEquals(String.valueOf((float) 100),String.valueOf(papSkriningGizi.getBeratBadan()));
|
||||
assertEquals(String.valueOf((float) 100),String.valueOf(papSkriningGizi.getLingkarKepala()));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
Date date = generateDatefromString("06/07/2013 12:10:56");
|
||||
Map<String,Object> result = papSkriningGiziService.findByNoCmAndTglInput("000001", date);
|
||||
assertNotNull(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPopulateModel(){
|
||||
/*Cek Pasien Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
|
||||
/*Cek Pasien Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
|
||||
/*Cek Populate Model*/
|
||||
PapSkriningGiziVO vo = populateModel();
|
||||
assertNotNull(vo);
|
||||
assertEquals(generateDate(),vo.getTglInput());
|
||||
assertEquals(String.valueOf((float) 170),String.valueOf(vo.getTinggiBadan()));
|
||||
assertEquals(String.valueOf((float) 68),String.valueOf(vo.getBeratBadan()));
|
||||
assertEquals(String.valueOf((float) 60),String.valueOf(vo.getLingkarKepala()));
|
||||
|
||||
}
|
||||
|
||||
private PapSkriningGiziVO populateModel(){
|
||||
PapSkriningGiziVO vo = new PapSkriningGiziVO();
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
|
||||
// vo.setPasien(pasienVO);
|
||||
vo.setTglInput(generateDate());
|
||||
vo.setTinggiBadan((float) 170);
|
||||
vo.setBeratBadan((float) 68);
|
||||
vo.setLingkarKepala((float) 60);
|
||||
return vo;
|
||||
}
|
||||
|
||||
private Date generateDate(){
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 12:10:56 PM";
|
||||
|
||||
Date date = null;
|
||||
try {
|
||||
date = formatter.parse(dateInString);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return date;
|
||||
}
|
||||
|
||||
private Date generateDatefromString(String string){
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");
|
||||
|
||||
Date date = null;
|
||||
try {
|
||||
date = formatter.parse(string);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return date;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,179 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.DataLokasiNyeri;
|
||||
import com.jasamedika.medifirst2000.entities.PapMuskuloskeletal;
|
||||
import com.jasamedika.medifirst2000.entities.PapSkriningNyeri;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.service.PapSkriningNyeriService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.DataLokasiNyeriVO;
|
||||
import com.jasamedika.medifirst2000.vo.DataTipeNyeriVO;
|
||||
import com.jasamedika.medifirst2000.vo.PapSkriningNyeriVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
import com.jasamedika.medifirst2000.vo.StatusAdaTidakAdaVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapSkriningNyeriServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapSkriningNyeriService papSkriningNyeriService;
|
||||
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddSkriningNyeri() {
|
||||
PapSkriningNyeriVO papSkrinigNyeriVO = populateModel();
|
||||
Map<String,Object> result = papSkriningNyeriService.addSkriningNyeri(papSkrinigNyeriVO);
|
||||
assertNotNull(result);
|
||||
PapSkriningNyeri papSkriningNyeri = ((PapSkriningNyeri) result.get("papSkriningNyeri"));
|
||||
// assertNotNull(papSkriningNyeri);
|
||||
// assertNotNull(papSkriningNyeri.getPasien());
|
||||
// assertEquals("Reynaldi Ramadhani Pratama",((PapSkriningNyeri) result.get("papSkriningNyeri")).getPasien().getNamaPasien());
|
||||
// assertEquals("Frekuensi",((PapSkriningNyeri) result.get("papSkriningNyeri")).getFrekuensi());
|
||||
// assertEquals("Durasi",((PapSkriningNyeri) result.get("papSkriningNyeri")).getDurasi());
|
||||
// assertEquals("Tidak ada",((PapSkriningNyeri) result.get("papSkriningNyeri")).getRasaNyeri().getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateSkriningNyeri() {
|
||||
PapSkriningNyeriVO papSkrinigNyeriVO = populateModel();
|
||||
Map<String,Object> result = papSkriningNyeriService.addSkriningNyeri(papSkrinigNyeriVO);
|
||||
assertNotNull(result);
|
||||
|
||||
PapSkriningNyeriVO papSkrinigNyeriVOUpdate = populateModel();
|
||||
papSkrinigNyeriVOUpdate.setDurasi("Durasi Update");
|
||||
papSkrinigNyeriVOUpdate.setFrekuensi("Frekuensi Update");
|
||||
Map<String,Object> resultUpdate = papSkriningNyeriService.addSkriningNyeri(papSkrinigNyeriVOUpdate);
|
||||
assertNotNull(resultUpdate);
|
||||
|
||||
// PapSkriningNyeri papSkriningNyeri = ((PapSkriningNyeri) resultUpdate.get("papSkriningNyeri"));
|
||||
// assertNotNull(papSkriningNyeri);
|
||||
// assertNotNull(papSkriningNyeri.getPasien());
|
||||
|
||||
// assertEquals("Frekuensi",((PapSkriningNyeri) resultUpdate.get("papSkriningNyeri")).getFrekuensi());
|
||||
// assertEquals("Durasi",((PapSkriningNyeri) resultUpdate.get("papSkriningNyeri")).getDurasi());
|
||||
// assertEquals("Tidak ada",((PapSkriningNyeri) resultUpdate.get("papSkriningNyeri")).getRasaNyeri().getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
Map<String,Object> result = papSkriningNyeriService.findByNoCmAndTglInput("000000000000005", DateUtil.toDate("2016-07-17 04:26:00"));
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindRegistrasiPelayananPasienByNoCmAndTglRegistrasi() {
|
||||
Map<String,Object> result = papSkriningNyeriService.findByNoCmAndTglInput("000000000000005", DateUtil.toDate("2016-07-17 04:26:00"));
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testfindRegistrasiPelayanaPasien() {
|
||||
Map<String,Object> result = papSkriningNyeriService.findRegistrasiPelayananPasienByNoCmAndTglRegistrasi("000000000000005",(short) 0, DateUtil.toDate("2016-07-17 05:41:29"));
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
// assertTrue(dataFound);
|
||||
assertFalse(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindPasienByNoCm() {
|
||||
Map<String,Object> result = papSkriningNyeriService.findPasienByNoCm("000000000000005");
|
||||
Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPopulateModel(){
|
||||
/*Cek Pasien Dao*/
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
assertNotNull(pasien);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
|
||||
/*Cek Pasien Converter*/
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
assertNotNull(pasienVO);
|
||||
assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
|
||||
/*Cek Atribut VO*/
|
||||
StatusAdaTidakAdaVO statusAdaTidakAdaVO = new StatusAdaTidakAdaVO();
|
||||
statusAdaTidakAdaVO.setId(1);
|
||||
statusAdaTidakAdaVO.setName("Tidak Ada");
|
||||
assertNotNull(statusAdaTidakAdaVO);
|
||||
assertEquals(String.valueOf(1), String.valueOf(statusAdaTidakAdaVO.getId()));
|
||||
assertEquals("Tidak Ada",statusAdaTidakAdaVO.getName());
|
||||
|
||||
/*Cek PopulateModel*/
|
||||
PapSkriningNyeriVO papSkriningNyeriVO = populateModel();
|
||||
assertEquals("Frekuensi",papSkriningNyeriVO.getFrekuensi());
|
||||
assertEquals("Durasi",papSkriningNyeriVO.getDurasi());
|
||||
assertEquals("Lokasi nyeri 1",papSkriningNyeriVO.getLokasiNyeri().getName());
|
||||
assertEquals("Terus menerus",papSkriningNyeriVO.getTypeNyeri().getName());
|
||||
}
|
||||
|
||||
private PapSkriningNyeriVO populateModel(){
|
||||
PapSkriningNyeriVO papSkriningNyeriVO = new PapSkriningNyeriVO();
|
||||
Pasien pasien = pasienDao.findOne(544);
|
||||
PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
StatusAdaTidakAdaVO statusAdaTidakAdaVO = new StatusAdaTidakAdaVO();
|
||||
statusAdaTidakAdaVO.setId(1);
|
||||
statusAdaTidakAdaVO.setName("Tidak ada");
|
||||
DataLokasiNyeriVO dataLokasiNyeriVO = new DataLokasiNyeriVO();
|
||||
dataLokasiNyeriVO.setId(1);
|
||||
dataLokasiNyeriVO.setName("Lokasi nyeri 1");
|
||||
DataTipeNyeriVO dataTypeNyeriVO = new DataTipeNyeriVO();
|
||||
dataTypeNyeriVO.setId(1);
|
||||
dataTypeNyeriVO.setName("Terus menerus");
|
||||
|
||||
papSkriningNyeriVO.setFrekuensi("Frekuensi");
|
||||
papSkriningNyeriVO.setRasaNyeri(statusAdaTidakAdaVO);
|
||||
papSkriningNyeriVO.setDurasi("Durasi");
|
||||
papSkriningNyeriVO.setTypeNyeri(dataTypeNyeriVO);
|
||||
papSkriningNyeriVO.setLokasiNyeri(dataLokasiNyeriVO);
|
||||
//papSkriningNyeriVO.setPasien(pasienVO);
|
||||
papSkriningNyeriVO.setTglInput(generateDate());
|
||||
return papSkriningNyeriVO;
|
||||
}
|
||||
|
||||
private Date generateDate(){
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 12:10:56 PM";
|
||||
|
||||
Date date = null;
|
||||
try {
|
||||
date = formatter.parse(dateInString);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return date;
|
||||
}
|
||||
}
|
||||
@ -1,144 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.service.test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.converter.PasienConverter;
|
||||
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||
import com.jasamedika.medifirst2000.entities.PapTandaVital;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.service.PapTandaVitalService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PapTandaVitalVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
import com.jasamedika.medifirst2000.vo.StatusYaTidakVO;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath*:com/jasamedika/**/applicationContext.xml")
|
||||
public class PapTandaVitalServiceImplTest {
|
||||
|
||||
@Autowired
|
||||
private PapTandaVitalService papTandaVitalService;
|
||||
|
||||
@Autowired
|
||||
private PasienDao pasienDao;
|
||||
|
||||
@Autowired
|
||||
private PasienConverter pasienConverter;
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testAddTandaVital() {
|
||||
/*PapTandaVitalVO vo = populateModel();
|
||||
Map<String,Object> result = papTandaVitalService.addTandaVital(vo);
|
||||
assertNotNull(result);
|
||||
|
||||
PapTandaVital papTandaVital = (PapTandaVital) result.get("papTandaVital");
|
||||
//assertEquals("Reynaldi Ramadhani Pratama", papTandaVital.getPasien().getNamaPasien());
|
||||
assertEquals("Tidak", papTandaVital.getKesadaran().getName());
|
||||
assertEquals(generateDate(), papTandaVital.getTglInput());*/
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testUpdateTandaVital() {
|
||||
/*PapTandaVitalVO vo = populateModel();
|
||||
Map<String,Object> result = papTandaVitalService.addTandaVital(vo);
|
||||
assertNotNull(result);
|
||||
|
||||
PapTandaVitalVO voUpdate = populateModel();
|
||||
StatusYaTidakVO statusYaTidakVO = new StatusYaTidakVO();
|
||||
statusYaTidakVO.setId(2);
|
||||
statusYaTidakVO.setName("Ya");
|
||||
voUpdate.setKesadaran(statusYaTidakVO);
|
||||
Map<String,Object> resultUpdate = papTandaVitalService.addTandaVital(voUpdate);
|
||||
assertNotNull(resultUpdate);
|
||||
PapTandaVital papTandaVital = (PapTandaVital) resultUpdate.get("papTandaVital");
|
||||
assertEquals("Ya",papTandaVital.getKesadaran().getName());*/
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindByNoCmAndTglInput() {
|
||||
// Map<String,Object> result = papTandaVitalService.findByNoCmAndTglInput("000001", DateUtil.toDate("2013-06-07 12:10:56"));
|
||||
// Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
// assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindRegistrasiPelayananPasienByNoCmAndTglRegistrasi() {
|
||||
// Map<String,Object> result = papTandaVitalService.findRegistrasiPelayananPasienByNoCmAndTglRegistrasi("000000000000005",(short) 0, DateUtil.toDate("2016-07-17 04:26:00"));
|
||||
// Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
// assertTrue(dataFound);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testFindPasienByNoCm() {
|
||||
// Map<String,Object> result = papTandaVitalService.findPasienByNoCm("000000000000005");
|
||||
// Boolean dataFound=new Boolean((boolean) result.get("dataFound"));
|
||||
// assertTrue(dataFound);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void testPopulateModel(){
|
||||
// /*Cek Pasien Dao*/
|
||||
// Pasien pasien = pasienDao.findOne(544);
|
||||
// assertNotNull(pasien);
|
||||
// assertEquals("Reynaldi Ramadhani Pratama",pasien.getNamaPasien());
|
||||
//
|
||||
// /*Cek Pasien Converter*/
|
||||
// PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
// assertNotNull(pasienVO);
|
||||
// assertEquals("Reynaldi Ramadhani Pratama",pasienVO.getNamaPasien());
|
||||
//
|
||||
// /*Cek VO*/
|
||||
// PapTandaVitalVO vo = populateModel();
|
||||
// //assertEquals("Reynaldi Ramadhani Pratama", vo.getPasien().getNamaPasien());
|
||||
// assertEquals("Tidak", vo.getKesadaran().getName());
|
||||
// assertEquals(generateDate(), vo.getTglInput());
|
||||
}
|
||||
|
||||
private PapTandaVitalVO populateModel(){
|
||||
PapTandaVitalVO vo = new PapTandaVitalVO();
|
||||
// Pasien pasien = pasienDao.findOne(544);
|
||||
// PasienVO pasienVO = pasienConverter.transferModelToVO(pasien,new PasienVO());
|
||||
// StatusYaTidakVO statusYaTidakVO = new StatusYaTidakVO();
|
||||
// statusYaTidakVO.setId(1);
|
||||
// statusYaTidakVO.setName("Tidak");
|
||||
//
|
||||
// //vo.setPasien(pasienVO);
|
||||
// vo.setKesadaran(statusYaTidakVO);
|
||||
// vo.setTglInput(generateDate());
|
||||
return vo;
|
||||
|
||||
}
|
||||
|
||||
private Date generateDate(){
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
|
||||
String dateInString = "Friday, Jun 7, 2013 12:10:56 PM";
|
||||
|
||||
Date date = null;
|
||||
try {
|
||||
date = formatter.parse(dateInString);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return date;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,42 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
|
||||
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
|
||||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
|
||||
|
||||
<!-- <context:property-placeholder
|
||||
location="
|
||||
classpath*:jdbc.testing.properties,
|
||||
classpath*:jdbc.logging.properties,
|
||||
classpath*:jdbc.${spring.profiles.default}.properties" /> -->
|
||||
|
||||
<context:property-placeholder
|
||||
location="classpath*:jdbc.${spring.profiles.default}.properties" />
|
||||
|
||||
<tx:annotation-driven transaction-manager="transactionManager" />
|
||||
|
||||
<!-- <bean id="flyway" class="org.flywaydb.core.Flyway" init-method="migrate">
|
||||
<property name="baselineOnMigrate" value="true" /> <property name="locations"
|
||||
value="classpath:/db/migration" /> <property name="dataSource" ref="dataSource"
|
||||
/> </bean> -->
|
||||
|
||||
<!-- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
|
||||
primary="true" destroy-method="close" p:driverClassName="${jdbc.driver}"
|
||||
p:url="${jdbc.url}" p:username="${jdbc.username}" p:password="${jdbc.password}"
|
||||
p:maxWait="40000" p:validation-query="select 1" p:test-on-borrow="true" p:maxActive="80"
|
||||
p:maxIdle="20" /> -->
|
||||
<tx:annotation-driven />
|
||||
|
||||
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
|
||||
<property name="poolName" value="springHikariCP" />
|
||||
<property name="dataSourceClassName" value="org.postgresql.ds.PGSimpleDataSource" />
|
||||
<property name="connectionTimeout" value="3000"></property> <!-- add by iwankasan -->
|
||||
<property name="idleTimeout" value="90000" /> <!-- change by iwankasan -->
|
||||
<property name="maximumPoolSize" value="${hikari.config.maximum.pool.size}" /> <!-- add by iwankasan -->
|
||||
<property name="connectionTimeout" value="3000" />
|
||||
<property name="idleTimeout" value="90000" />
|
||||
<property name="maximumPoolSize" value="${hikari.config.maximum.pool.size}" />
|
||||
<property name="dataSourceProperties">
|
||||
<props>
|
||||
<prop key="serverName">${jdbc.serverName}</prop>
|
||||
@ -44,9 +24,6 @@
|
||||
<prop key="user">${jdbc.username}</prop>
|
||||
<prop key="password">${jdbc.password}</prop>
|
||||
<prop key="portNumber">${jdbc.portNumber}</prop>
|
||||
|
||||
<!-- <prop key="cachePrepStmts">true</prop> <prop key="prepStmtCacheSize">250</prop>
|
||||
<prop key="prepStmtCacheSqlLimit">2048</prop> <prop key="useServerPreStmts">true</prop> -->
|
||||
</props>
|
||||
</property>
|
||||
</bean>
|
||||
@ -68,10 +45,9 @@
|
||||
<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
|
||||
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
|
||||
<prop key="javax.persistence.validation.mode">none</prop>
|
||||
<!-- Interceptor, alter by Syamsu -->
|
||||
<prop key="hibernate.ejb.interceptor">com.jasamedika.medifirst2000.logging.hibernate.interceptor.HibernateInterceptor
|
||||
<prop key="hibernate.ejb.interceptor">
|
||||
com.jasamedika.medifirst2000.logging.hibernate.interceptor.HibernateInterceptor
|
||||
</prop>
|
||||
<!-- Interceptor, alter by Syamsu -->
|
||||
</props>
|
||||
</property>
|
||||
<property name="jpaPropertyMap">
|
||||
@ -85,43 +61,9 @@
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
</bean>
|
||||
|
||||
<!-- DataSource object for logging purpose -->
|
||||
<!-- <bean id="loggingDataSource" class="org.apache.commons.dbcp.BasicDataSource"
|
||||
destroy-method="close" p:driverClassName="${jdbc.logging.driver}" p:url="${jdbc.logging.url}"
|
||||
p:username="${jdbc.logging.username}" p:password="${jdbc.logging.password}"
|
||||
p:maxWait="40000" p:maxActive="80" p:maxIdle="20" /> <bean id="loggingEntityManagerFactory"
|
||||
primary="false" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
|
||||
<property name="dataSource" ref="loggingDataSource" /> <property name="packagesToScan"
|
||||
value="com.jasamedika.medifirst2000.logging" /> <property name="jpaVendorAdapter">
|
||||
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
|
||||
/> </property> <property name="jpaProperties"> <props> <prop key="hibernate.hbm2ddl.auto">none</prop>
|
||||
<prop key="hibernate.format_sql">false</prop> <prop key="hibernate.show_sql">false</prop>
|
||||
<prop key="hibernate.dialect">${jdbc.logging.hibernate.dialect}</prop> </props>
|
||||
</property> </bean> <bean id="loggingTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
|
||||
<property name="entityManagerFactory" ref="loggingEntityManagerFactory" />
|
||||
</bean> -->
|
||||
|
||||
|
||||
<bean id="persistenceExceptionTranslationPostProcessor"
|
||||
class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
|
||||
|
||||
<!-- <jpa:repositories base-package="com.jasamedika.medifirst2000.dao" repository-impl-postfix="CustomImpl"
|
||||
/> <context:component-scan base-package="com.jasamedika.medifirst2000.service"
|
||||
/> -->
|
||||
|
||||
<!-- Hibernate Statistics Monitoring -->
|
||||
<!-- Publishing session factory to be able view statistics -->
|
||||
<!-- <bean id="sessionFactory" factory-bean="entityManagerFactory" factory-method="getSessionFactory"
|
||||
/> <bean id="hibernateStatisticsMBean" class="org.hibernate.jmx.StatisticsService">
|
||||
<property name="sessionFactory" ref="sessionFactory" /> </bean> <bean id="mbeanExporter"
|
||||
class="org.springframework.jmx.export.MBeanExporter"> <property name="beans">
|
||||
<map> <entry key="SpringBeans:name=hibernateStatisticsMBean" value-ref="hibernateStatisticsMBean"
|
||||
/> </map> </property> </bean> <context:mbean-server /> -->
|
||||
|
||||
<!-- <context:component-scan base-package="com.jasamedika.medifirst2000"
|
||||
/> -->
|
||||
|
||||
|
||||
<bean id="messageSource"
|
||||
class="org.springframework.context.support.ResourceBundleMessageSource">
|
||||
<property name="basenames">
|
||||
@ -130,11 +72,4 @@
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- enable aop -->
|
||||
<!-- <aop:aspectj-autoproxy /> <bean id="loggingAdvise" class="com.jasamedika.medifirst2000.logging.LoggingAdvise"
|
||||
/> -->
|
||||
|
||||
<!-- For Bean Spring Security -->
|
||||
<!-- <bean id="springSecurityFilterChain" class="org.springframework.web.filter.DelegatingFilterProxy"/> -->
|
||||
</beans>
|
||||
|
||||
@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||
<component name="AdditionalModuleElements">
|
||||
<content url="file://$MODULE_DIR$" dumb="true">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
</component>
|
||||
</module>
|
||||
@ -1,29 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.util;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* The Class AgeCalculatorTest.
|
||||
*
|
||||
* @author Roberto
|
||||
*/
|
||||
public class AgeCalculatorTest {
|
||||
|
||||
//@Test
|
||||
public void testGetAge() throws ParseException {
|
||||
// SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
|
||||
// String dateInString = "11-05-1989 10:20:56";
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy");
|
||||
String dateInString = "11-05-1989";
|
||||
Date birthDate = sdf.parse(dateInString);
|
||||
assertEquals(AgeCalculator.calculateAge(birthDate).getDays(), 0);
|
||||
assertEquals(AgeCalculator.calculateAge(birthDate).getMonths(), 0);
|
||||
assertEquals(AgeCalculator.calculateAge(birthDate).getYears(), 27);
|
||||
}
|
||||
}
|
||||
@ -1,22 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.util;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* The Class DateUtilTest.
|
||||
*
|
||||
* @author Roberto
|
||||
*/
|
||||
public class CommonUtilTest {
|
||||
|
||||
@Test
|
||||
public void testCheckEquality() {
|
||||
|
||||
String object1 = "harkit";
|
||||
String object2 = "Harkit";
|
||||
assertFalse(CommonUtil.checkEquality(object1, object2));
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,29 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.util;
|
||||
|
||||
import org.junit.Test;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* The Class CurrencyUtilTest.
|
||||
*
|
||||
* @author Roberto
|
||||
*/
|
||||
public class CurrencyUtilTest {
|
||||
|
||||
@Test
|
||||
public void testGetPriceInINA() {
|
||||
|
||||
double input = 10000000;
|
||||
assertNotNull(CurrencyUtil.getPriceInINA(input));
|
||||
assertEquals(CurrencyUtil.getPriceInINA(input), "Rp. 10.000.000,00");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetPriceInUSD() {
|
||||
|
||||
double input = 100.25;
|
||||
assertNotNull(CurrencyUtil.getPriceInUSD(input));
|
||||
assertEquals(CurrencyUtil.getPriceInUSD(input), "$100.25");
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,62 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.util;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* The Class DateUtilTest.
|
||||
*
|
||||
* @author Roberto
|
||||
*/
|
||||
public class DateUtilTest {
|
||||
|
||||
// @Test
|
||||
// public void testGetAge() throws ParseException {
|
||||
// SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
|
||||
// String dateInString = "30-06-1976 10:20:56";
|
||||
// Date birthDate = sdf.parse(dateInString);
|
||||
// int result = DateUtil.getAge(birthDate);
|
||||
// assertEquals(result, 40);
|
||||
// }
|
||||
|
||||
// @Test
|
||||
// public void testGetMonthOf2Date() throws ParseException {
|
||||
// SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
|
||||
// String dateInString1 = "30-06-2016 10:20:56";
|
||||
// Date date1 = sdf.parse(dateInString1);
|
||||
// String dateInString2 = "30-05-2016 10:20:56";
|
||||
// Date date2 = sdf.parse(dateInString2);
|
||||
// int result = DateUtil.getMonthOf2Date(date1, date2);
|
||||
// assertEquals(result, 1);
|
||||
// }
|
||||
|
||||
// @Test
|
||||
// public void testFromExcelDateToDate() throws Exception {
|
||||
// String date = "06-2016";
|
||||
//
|
||||
// SimpleDateFormat formatter = new SimpleDateFormat("MM-yyyy");
|
||||
// assertEquals(date, formatter.format(DateUtil.fromExcelDateToDate(date)));
|
||||
// }
|
||||
|
||||
// @Test
|
||||
// public void testGetFirstDate() throws Exception {
|
||||
// SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
|
||||
// System.out.println(DateUtil.getFirstLastDateOfMonth(new Date(), true));
|
||||
// System.out.println(DateUtil.getFirstLastDateOfMonth(new Date(), false));
|
||||
// assertEquals("01-03-2017", formatter.format(DateUtil.getFirstLastDateOfMonth(new Date(), true)));
|
||||
// }
|
||||
|
||||
// @Test
|
||||
// public void testGetLastDate() throws Exception {
|
||||
// SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
|
||||
// System.out.println(DateUtil.getFirstLastDateOfMonth(new Date(), true));
|
||||
// System.out.println(DateUtil.getFirstLastDateOfMonth(new Date(), false));
|
||||
// assertEquals("31-03-2017", formatter.format(DateUtil.getFirstLastDateOfMonth(new Date(), false)));
|
||||
// }
|
||||
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.util;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* The Class DateUtilTest.
|
||||
*
|
||||
* @author Roberto
|
||||
*/
|
||||
public class IndonesiaNumberToWordsTest {
|
||||
|
||||
@Test
|
||||
public void testConvert() {
|
||||
long input = 92803;
|
||||
String result = IndonesianNumberToWords.convert(input);
|
||||
assertEquals(result, "sembilan puluh dua ribu delapan ratus tiga");
|
||||
}
|
||||
}
|
||||
@ -1,39 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.util;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* The Class PasswordUtilTest.
|
||||
*
|
||||
* @author Roberto
|
||||
*/
|
||||
public class PasswordUtilTest {
|
||||
|
||||
@Test
|
||||
public void testGeneratePassword() throws NoSuchAlgorithmException,
|
||||
UnsupportedEncodingException {
|
||||
PasswordUtil passwordUtil = new PasswordUtil();
|
||||
String password = "admin";
|
||||
String encryptedPassword = passwordUtil.encryptPassword(password);
|
||||
System.out.println("encryptedPassword (" + password + ") = "
|
||||
+ encryptedPassword);
|
||||
assertNotNull(encryptedPassword);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPasswordEquals() throws
|
||||
IOException {
|
||||
PasswordUtil passwordUtil = new PasswordUtil();
|
||||
String password = "admin";
|
||||
String hashPassword = "9NEWRrb+A0sJ+41H+acQEy7rdY8=$GCZZyCy+Cs4=";
|
||||
assertTrue(passwordUtil.isPasswordEqual(password, hashPassword));
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,30 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.util;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.text.ParseException;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* The Class RegexUtilTest.
|
||||
*
|
||||
* @author Roberto
|
||||
*/
|
||||
public class RegexUtilTest {
|
||||
|
||||
@Test
|
||||
public void testValidateIndonesiaPhoneNumber() throws ParseException {
|
||||
assertTrue(StringUtil.validateIndonesiaPhoneNumber("082112345678"));
|
||||
assertTrue(StringUtil.validateIndonesiaPhoneNumber("0821 1234567"));
|
||||
assertTrue(StringUtil.validateIndonesiaPhoneNumber("021 1234567"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testValidateExampleNoRegistration() throws ParseException {
|
||||
assertTrue(StringUtil.validateNoRegistrationExample("REG000001"));
|
||||
assertTrue(StringUtil.validateNoRegistrationExample("REG000021"));
|
||||
assertTrue(StringUtil.validateNoRegistrationExample("REG123456"));
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,24 +0,0 @@
|
||||
package com.jasamedika.medifirst2000.util;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.text.ParseException;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* The Class AgeCalculatorTest.
|
||||
*
|
||||
* @author Roberto
|
||||
*/
|
||||
public class StringUtilTest {
|
||||
|
||||
@Test
|
||||
public void testNumberFormat() throws ParseException {
|
||||
|
||||
assertEquals(StringUtil.formatNumber("10", 4), "0010");
|
||||
assertEquals(StringUtil.formatNumber("6", 2), "06");
|
||||
|
||||
assertEquals(StringUtil.formatNumber("16", 5), "00016");
|
||||
}
|
||||
}
|
||||
@ -106,7 +106,6 @@
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>${commons-io.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- For testing REST -->
|
||||
|
||||
@ -1,70 +1,49 @@
|
||||
package com.jasamedika.medifirst2000.interceptor;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.*;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.*;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.json.JSONArray;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.web.method.HandlerMethod;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.NotifikasiMessageObjekModulDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.KelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.LoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToKelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToLoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.notification.MessageSubscriber;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToKelompokUserService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToLoginUserService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
||||
import com.jasamedika.medifirst2000.service.ObjekModulAplikasiService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Interceptor class for All annotation method controller @AppPermission
|
||||
*
|
||||
* @author Roberto
|
||||
*
|
||||
* direka ulang oleh Syamsu
|
||||
* @author Roberto, direka ulang oleh Syamsu
|
||||
*/
|
||||
|
||||
public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
private static final String[] PRINT_PATTERN = {"/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_", "/print-" };
|
||||
|
||||
private static final String[] ADD_PATTERN = {"/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-"};
|
||||
|
||||
private static final String[] UPDATE_PATTERN = {"/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-"};
|
||||
private static final String[] PRINT_PATTERN = { "/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_",
|
||||
"/print-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = {"/delete_", "/delete-", "/hapus_", "/hapus-"};
|
||||
private static final String[] ADD_PATTERN = { "/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-" };
|
||||
|
||||
private final Logger LOG = LoggerFactory.getLogger(AppInterceptor.class);
|
||||
private static final String[] UPDATE_PATTERN = { "/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = { "/delete_", "/delete-", "/hapus_", "/hapus-" };
|
||||
|
||||
@Autowired
|
||||
private TokenAuthenticationService tokenAuthenticationService;
|
||||
@ -74,101 +53,55 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToKelompokUserService mapObjekModulToKelompokUserService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToLoginUserService mapObjekModulToLoginUserService;
|
||||
|
||||
@Autowired
|
||||
private ObjekModulAplikasiService<ObjekModulAplikasiVO> objekModulAplikasiService;
|
||||
|
||||
|
||||
@Autowired
|
||||
MessagePublisher<String, Object> messagePublisher;
|
||||
|
||||
@Autowired
|
||||
MessageSubscriber messageSubscriber;
|
||||
|
||||
@Autowired
|
||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulDao notifikasiModulMessageDao;
|
||||
|
||||
@Autowired
|
||||
RuanganDao ruanganDao;
|
||||
|
||||
List<LoginUser> loginUser;
|
||||
|
||||
String namaUser;
|
||||
|
||||
// private int headerActionToAction(String action){
|
||||
// if ("save".equals(action)){
|
||||
// return AppPermission.ADD;
|
||||
// } else if ("edit".equals(action)){
|
||||
// return AppPermission.UPDATE;
|
||||
// } else if ("delete".equals(action)){
|
||||
// return AppPermission.DELETE;
|
||||
// } else if ("print".equals(action)){
|
||||
// return AppPermission.PRINT;
|
||||
// } else {
|
||||
// return AppPermission.VIEW;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
private boolean contains(String source, String[] matchers){
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers)){
|
||||
|
||||
private boolean contains(String source, String[] matchers) {
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers))
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i=0;i<matchers.length; i++){
|
||||
if (source.contains(matchers[i])){
|
||||
for (String matcher : matchers)
|
||||
if (source.contains(matcher))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private String filterUrlForm(String urlForm){
|
||||
|
||||
|
||||
private String filterUrlForm(String urlForm) {
|
||||
String[] hasil = urlForm.split("/");
|
||||
System.out.println(hasil.length);
|
||||
StringBuilder potongan = new StringBuilder();
|
||||
for (int i=0; i<hasil.length && i<3; i++){
|
||||
for (int i = 0; i < hasil.length && i < 3; i++)
|
||||
potongan.append(hasil[i]).append("/");
|
||||
}
|
||||
// String current = urlForm;
|
||||
// int pos = 0;
|
||||
// int cpos = -1;
|
||||
// for (int i=0; i<4; i++){
|
||||
// pos = current.indexOf('/',pos+1);
|
||||
// if (pos > 0){
|
||||
// cpos = pos;
|
||||
// }else{
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// String oye = urlForm.substring(0, cpos);
|
||||
return potongan.toString();
|
||||
}
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, boolean supervisi) throws Exception {
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
boolean supervisi) throws Exception {
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
LOG.info("Empty login user");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Empty login user");
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
@ -176,132 +109,92 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
int result = -1;
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
KelompokUser role = user.getKelompokUser();
|
||||
int result = -2;
|
||||
|
||||
if (role != null) {
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
result = -1;
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, int action) throws Exception {
|
||||
// Alter modified Syamsu
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi)){
|
||||
LOG.warn(AlamatUrlForm + " : Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar objek modul aplikasi..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
}
|
||||
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false)) {
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
int action) throws Exception {
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService
|
||||
.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi))
|
||||
return true;
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false))
|
||||
return false;
|
||||
}
|
||||
|
||||
int resultUser = checkUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultUser == 0){
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
return false;
|
||||
} else if (resultUser == 1){
|
||||
} else if (resultUser == 1) {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
int resultKelompokUser = checkKelompokUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultKelompokUser == -2){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no role to gain access restricted area", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no role to gain access restricted area");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == -1){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar Map objek modul to kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no access to module application", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no access to module application");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultKelompokUser == -2) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == -1) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
@ -310,113 +203,54 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* return true untuk valid permission request ke controller method
|
||||
*/
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||
////// Syamsu /////
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||
HandlerMethod hm;
|
||||
Method method = null;
|
||||
// int methodApp = AppPermission.VIEW;
|
||||
|
||||
Method method;
|
||||
response.setHeader("Access-Control-Expose-Headers", "RequireSupervisor" + ","
|
||||
+ Constants.MessageInfo.ERROR_MESSAGE + "," + Constants.MessageInfo.INFO_MESSAGE);
|
||||
|
||||
////// Syamsu /////
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "": request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
|
||||
// Buat Om, Kang, Aa Reza terkait Security Role
|
||||
//String KdRuangan = null;
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? "": request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
int action = AppPermission.VIEW;
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm)){
|
||||
//LOG.warn("Sementara defaultnya di loloskan semuanya di AppInterceptor jika tidak ada header 'AlamatUrlForm' ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan)){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada header 'KdRuangan' atau header 'KdRuangan'nya 0 ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
//String headerAction = request.getHeader(Constants.HttpHeader.ACTION) == null ? "" : request.getHeader(Constants.HttpHeader.ACTION);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm))
|
||||
return true;
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan))
|
||||
return true;
|
||||
String URI = request.getRequestURI();
|
||||
String methodHttp = request.getMethod();
|
||||
|
||||
try {
|
||||
// Alter modified Syamsu
|
||||
if (handler instanceof org.springframework.web.method.HandlerMethod) {
|
||||
hm = (HandlerMethod) handler;
|
||||
method = hm.getMethod();
|
||||
} else {
|
||||
return checkAuthSecure(request, response, AlamatUrlForm, true);
|
||||
}
|
||||
|
||||
// AlamatUrlForm // Alter modified Syamsu
|
||||
boolean usingAnno = method != null && method.isAnnotationPresent(AppPermission.class);
|
||||
|
||||
boolean postM = "POST".equals(methodHttp);
|
||||
boolean signInOut = !URI.contains("auth/sign-in") && !URI.contains("auth/sign-out");
|
||||
boolean getM = "GET".equals(methodHttp);
|
||||
boolean cetak = contains (URI, PRINT_PATTERN);
|
||||
|
||||
/*(URI.contains("/lap_") || URI.contains("/lap-") || URI.contains("/lap")
|
||||
|| URI.contains("/cetak_") || URI.contains("/print_") || URI.contains("/cetak-")
|
||||
|| URI.contains("/print-"));*/
|
||||
|
||||
boolean simpan = contains (URI, ADD_PATTERN);
|
||||
|
||||
/*(URI.contains("/save_") || URI.contains("/add_") || URI.contains("/simpan_")
|
||||
|| URI.contains("/save-") || URI.contains("/add-") || URI.contains("/simpan-"));*/
|
||||
|
||||
boolean ubah = contains (URI, UPDATE_PATTERN);
|
||||
|
||||
/*(URI.contains("/update_") || URI.contains("/edit_") || URI.contains("/ubah_")
|
||||
|| URI.contains("/update-") || URI.contains("/edit-") || URI.contains("/ubah-"));*/
|
||||
|
||||
boolean hapus = contains (URI, DELETE_PATTERN);
|
||||
|
||||
/*(URI.contains("/delete_") || URI.contains("/hapus_") || URI.contains("/delete-")
|
||||
|| URI.contains("/hapus-")); */
|
||||
|
||||
boolean cetak = contains(URI, PRINT_PATTERN);
|
||||
boolean simpan = contains(URI, ADD_PATTERN);
|
||||
boolean ubah = contains(URI, UPDATE_PATTERN);
|
||||
boolean hapus = contains(URI, DELETE_PATTERN);
|
||||
if (usingAnno) {
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
if (AppPermission.SPECIALS == action /* && "#/home".equals(AlamatUrlForm) */) {
|
||||
if (AppPermission.SPECIALS == action)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (getM && cetak) {
|
||||
|
||||
action = AppPermission.PRINT;
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
}
|
||||
|
||||
if ((usingAnno || postM) && signInOut) {
|
||||
|
||||
if (simpan) {
|
||||
action = AppPermission.ADD;
|
||||
} else if (ubah) {
|
||||
@ -426,345 +260,104 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
} else if (cetak) {
|
||||
action = AppPermission.PRINT;
|
||||
}
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.out.println("Not Found " + request.getRequestURL());
|
||||
|
||||
LOG.info("Error accured unauthorized");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Something wrong happened");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) throws Exception {}
|
||||
|
||||
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex) throws Exception {
|
||||
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex)
|
||||
throws Exception {
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String idRuanganTujuan = request.getHeader(Constants.HttpHeader.KD_RUANGAN_T) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_T);
|
||||
|
||||
String idRuanganTujuanA = request.getHeader(Constants.HttpHeader.KD_RUANGAN_A) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_A);
|
||||
|
||||
String tglKirim = request.getHeader(Constants.HttpHeader.TGL_KIRIM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.TGL_KIRIM);
|
||||
|
||||
boolean notHttpOK = response.getStatus() >= HttpServletResponse.SC_BAD_REQUEST;
|
||||
boolean notLewatMenu = CommonUtil.isNullOrEmpty(AlamatUrlForm) || CommonUtil.isNullOrEmpty(KdRuangan);
|
||||
|
||||
Integer ruanganAsalId = 0;
|
||||
|
||||
try {
|
||||
ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
}catch(Exception e){
|
||||
ex = e;
|
||||
}
|
||||
|
||||
|
||||
Integer ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
boolean adaError = CommonUtil.isNotNullOrEmpty(ex);
|
||||
if (notHttpOK || notLewatMenu || adaError){
|
||||
if (notHttpOK || notLewatMenu || adaError)
|
||||
return;
|
||||
}
|
||||
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(authentication)){
|
||||
if (CommonUtil.isNullOrEmpty(authentication))
|
||||
return;
|
||||
}
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
if (CommonUtil.isNullOrEmpty(loginUser))
|
||||
return;
|
||||
}
|
||||
|
||||
String potongan = filterUrlForm(AlamatUrlForm);
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasiVOs = objekModulAplikasiService.findByAlamatUrlForm(potongan);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs)){
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
String URI = request.getRequestURI();
|
||||
|
||||
Integer objekModulAplikasId = objekModulAplikasiVOs.get(0).getId();
|
||||
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs)) {
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService
|
||||
.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
Integer notifMessagingId = notifMessagingVOs.get(0).getId();
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(tglKirim)) {
|
||||
|
||||
|
||||
List<Integer> ruanganTujuansId = new ArrayList<>();
|
||||
System.out.println("--");
|
||||
|
||||
if (!"".equals(idRuanganTujuan)){
|
||||
if (!"".equals(idRuanganTujuan)) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!"".equals(idRuanganTujuanA) && ruanganTujuansId.isEmpty()) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuanA);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
|
||||
MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
||||
|
||||
Pegawai pegawai = loginUser.get(0).getPegawai();
|
||||
Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
||||
|
||||
|
||||
if (ruanganTujuansId.size() > 0){
|
||||
try{
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
LOG.info(DateUtil.now()+" send notif dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
||||
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
if (!ruanganTujuansId.isEmpty())
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService,
|
||||
notifMessagingId, ruanganTujuansId);
|
||||
} else {
|
||||
JSONArray tglKirims = new JSONArray(tglKirim);
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
for (int i=0; i<tglKirims.length(); i++){
|
||||
for (int i = 0; i < tglKirims.length(); i++) {
|
||||
String ctglKirim = tglKirims.optString(i, "");
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i,0);
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
Date date = myFormat.parse(ctglKirim);
|
||||
|
||||
NotifMessagingSchedulerVO vo = new NotifMessagingSchedulerVO();
|
||||
|
||||
vo.setTglKirim(date);
|
||||
vo.setTerkirim(false);
|
||||
vo.setNotifMessagingId(notifMessagingId);
|
||||
vo.setRuanganIdAsal(ruanganAsalId);
|
||||
vo.setRuanganIdTujuan(cRuanganTujuanId);
|
||||
vo.setPegawaiId(loginUser.get(0).getPegawai().getId());
|
||||
|
||||
vo.setKdProfile((short)0);
|
||||
vo.setKdProfile((short) 0);
|
||||
vo.setKodeExternal("");
|
||||
vo.setNamaExternal("");
|
||||
vo.setReportDisplay("");
|
||||
vo.setStatusEnabled(true);
|
||||
|
||||
notifMessagingSchedulerService.add(vo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// <T extends BaseMasterVO> T convertToVO(T t, Object o){
|
||||
// BeanUtils.copyProperties(t, o);
|
||||
// return t;
|
||||
// }
|
||||
|
||||
// try{
|
||||
//
|
||||
//
|
||||
// String AlamatUrlForm =
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "" :
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
// String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN)
|
||||
// == null ? "" : request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
//
|
||||
// Authentication authentication =
|
||||
// tokenAuthenticationService.getAuthentication(request);
|
||||
//
|
||||
// namaUser = authentication.getName();
|
||||
// loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
//
|
||||
//
|
||||
// if (loginUser.isEmpty()) {
|
||||
// publisher.BroadcastMessage(KdRuangan, namaUser, AlamatUrlForm);
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//// String routingKeyAndQueueName = "ruanganId." + KdRuangan;
|
||||
////
|
||||
//// publisher.sendRabbitMQNotification("127.0.0.1", "ruanganId." +
|
||||
// KdRuangan, "Kd Ruangan : " + KdRuangan + ", AlamatUrlForm : " +
|
||||
// AlamatUrlForm);
|
||||
////
|
||||
//// subscriber.startRabbitMQNotification("127.0.0.1",
|
||||
// routingKeyAndQueueName);
|
||||
//// subscriber.listenRabbitMQNotification(routingKeyAndQueueName,
|
||||
// subscriber.getDefaultConsumer(), false);
|
||||
//// subscriber.stopRabbitMQNotification();
|
||||
//
|
||||
// }catch(Exception e){
|
||||
// //e.printStackTrace();
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// //String urlSocket = messagePublisher.GetSettingDataFixed("UrlRabbitMQMessaging"); sementara kunci dulu.
|
||||
//
|
||||
// String urlSocket = "127.0.0.1";
|
||||
//
|
||||
// List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
||||
//
|
||||
// if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// Integer ruanganIdtemp = 0;
|
||||
// boolean connect = false;
|
||||
//
|
||||
// for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
|
||||
// Ruangan ruangan = vo.getRuangan();
|
||||
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
||||
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
||||
// String customURLObjekModul = vo.getCustomURLObjekModul();
|
||||
// String titleNotifikasi = vo.getTitleNotifikasi();
|
||||
// String pesanNotifikasi = vo.getPesanNotifikasi();
|
||||
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
||||
//
|
||||
// if (ruangan.getId() == ruanganId){
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
||||
//
|
||||
// if (ruanganIdtemp != ruangan.getId()){
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
||||
// connect = true;
|
||||
// ruanganIdtemp = ruangan.getId();
|
||||
// }
|
||||
//
|
||||
// Map<String, Object> map = new HashMap<>();
|
||||
// map.put("title", titleNotifikasi);
|
||||
// map.put("dariRuangan", dariRuangan);
|
||||
// map.put("ruanganId", ruangan.getId());
|
||||
// map.put("ruangan", convertToVO(new RuanganVO(), ruangan));
|
||||
// map.put("modulAplikasi", convertToVO(new ModulAplikasiVO(), modulAplikasi));
|
||||
// map.put("objekModulAplikasi", convertToVO(new ObjekModulAplikasiVO(), objekModulAplikasi));
|
||||
// map.put("titleNotifikasi", titleNotifikasi);
|
||||
// map.put("pesanNotifikasi", pesanNotifikasi);
|
||||
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
||||
// map.put("fromPegawai", loginUser.get(0).getPegawai());
|
||||
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
|
||||
//
|
||||
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
||||
//
|
||||
// //messagePublisher.BroadcastMessage(map);
|
||||
// }
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
|
||||
|
||||
// private static final TypeAdapterFactory FACTORY = new TypeAdapterFactory() {
|
||||
// @Override
|
||||
// @SuppressWarnings("unchecked")
|
||||
// public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
||||
// return (HibernateProxy.class.isAssignableFrom(type.getRawType())
|
||||
// ? (TypeAdapter<T>) new HibernateProxyTypeAdapter((TypeAdapter)gson.getAdapter(TypeToken.get(type.getRawType().getSuperclass())))
|
||||
// : null);
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// private static final class HibernateProxyTypeAdapter extends TypeAdapter<HibernateProxy> {
|
||||
//
|
||||
// private final TypeAdapter<Object> delegate;
|
||||
//
|
||||
// private HibernateProxyTypeAdapter(TypeAdapter<Object> delegate) {
|
||||
// this.delegate = delegate;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public HibernateProxy read(JsonReader r) throws IOException {
|
||||
// throw new UnsupportedOperationException("Not supported");
|
||||
// }
|
||||
//
|
||||
// @SuppressWarnings({"rawtypes", "unchecked"})
|
||||
// @Override
|
||||
// public void write(JsonWriter out, HibernateProxy value) throws IOException {
|
||||
// if (value == null) {
|
||||
// out.nullValue();
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// delegate.write(out, ((HibernateProxy) value).getHibernateLazyInitializer().getImplementation());
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* else if (method.isAnnotationPresent(AppMenuPermision.class)){
|
||||
*
|
||||
* Authentication authentication =
|
||||
* tokenAuthenticationService.getAuthentication(request);
|
||||
*
|
||||
* String namaUser = authentication.getName();
|
||||
*
|
||||
* List<LoginUser> loginUser =
|
||||
* loginUserDao.findByNamaUser(namaUser);
|
||||
*
|
||||
* if (loginUser.isEmpty()) { // untuk testing false
|
||||
* response.addHeader("Access-Control-Expose-Headers",
|
||||
* "content-type");
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "User " +
|
||||
* namaUser + " can not access current menu ");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; }
|
||||
*
|
||||
* // get user login if (!loginUser.isEmpty()) { LoginUser user =
|
||||
* loginUser.get(0); }else{ LOG.info("User {} is unauthorized",
|
||||
* namaUser);
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
* "User is unauthorized");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; } }
|
||||
*/
|
||||
@ -0,0 +1,35 @@
|
||||
package com.jasamedika.medifirst2000.entities;
|
||||
|
||||
import com.jasamedika.medifirst2000.base.BaseActive;
|
||||
import com.jasamedika.medifirst2000.helper.Caption;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.hibernate.validator.constraints.NotBlank;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.Table;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Salman
|
||||
* @version 1.0.0
|
||||
* @since 31/01/2024
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@Entity
|
||||
@Table(name = "jenis_log_m")
|
||||
public class JenisLog extends BaseActive implements Serializable {
|
||||
private static final long serialVersionUID = -5796583173860610757L;
|
||||
|
||||
@Id
|
||||
@Column(name = "id", columnDefinition = "bigserial")
|
||||
protected Long id;
|
||||
|
||||
@Column(nullable = false)
|
||||
@NotBlank
|
||||
@Caption("Jenis Log")
|
||||
private String jenisLog;
|
||||
}
|
||||
@ -1,125 +1,55 @@
|
||||
package com.jasamedika.medifirst2000.entities;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.ManyToOne;
|
||||
import javax.persistence.Table;
|
||||
import javax.persistence.Temporal;
|
||||
import javax.persistence.TemporalType;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import org.hibernate.annotations.GenericGenerator;
|
||||
|
||||
import com.jasamedika.medifirst2000.base.BaseMaster;
|
||||
import com.jasamedika.medifirst2000.helper.Caption;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.Date;
|
||||
|
||||
import static javax.persistence.FetchType.LAZY;
|
||||
import static javax.persistence.GenerationType.SEQUENCE;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Entity
|
||||
@Table(name = "logginguser_t")
|
||||
public class UserLogging extends BaseMaster {
|
||||
private static final long serialVersionUID = -5155757628971170710L;
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "public.logginguser_t_id_seq")
|
||||
@javax.persistence.SequenceGenerator(name = "public.logginguser_t_id_seq", sequenceName = "public.logginguser_t_id_seq", allocationSize = 1)
|
||||
@GeneratedValue(strategy = SEQUENCE, generator = "public.logginguser_t_id_seq")
|
||||
@SequenceGenerator(name = "public.logginguser_t_id_seq", sequenceName = "public.logginguser_t_id_seq", allocationSize = 1)
|
||||
@Column(name = "id")
|
||||
protected Integer id;
|
||||
|
||||
@Column(name = "tanggal", nullable = true)
|
||||
@Column(name = "tanggal")
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
@Caption(value = "Tanggal")
|
||||
private Date tanggal;
|
||||
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = LAZY)
|
||||
@JoinColumn(name = "objectloginuserfk")
|
||||
@Caption(value = "User Login")
|
||||
private LoginUser loginUser;
|
||||
|
||||
@Column(name = "objectloginuserfk", insertable = false, updatable = false, nullable = true)
|
||||
@Column(name = "objectloginuserfk", insertable = false, updatable = false)
|
||||
private Integer loginUserId;
|
||||
|
||||
@Column(name = "jenislog", nullable = true, length = 500)
|
||||
@Column(name = "jenislog", length = 500)
|
||||
@Caption(value = "Jenis Log")
|
||||
private String jenisLog;
|
||||
|
||||
@Column(name = "noreff", nullable = true, columnDefinition = "CHAR(32)")
|
||||
@Column(name = "noreff", columnDefinition = "CHAR(32)")
|
||||
@Caption(value = "No Referensi")
|
||||
private String noReff;
|
||||
|
||||
@Column(name = "referensi", nullable = true, length = 100)
|
||||
@Column(name = "referensi", length = 100)
|
||||
@Caption(value = "Referensi")
|
||||
private String referensi;
|
||||
|
||||
@Column(name = "keterangan", nullable = true, length = 200)
|
||||
@Column(name = "keterangan", length = 200)
|
||||
@Caption(value = "Keterangan")
|
||||
private String keterangan;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Date getTanggal() {
|
||||
return tanggal;
|
||||
}
|
||||
|
||||
public void setTanggal(Date tanggal) {
|
||||
this.tanggal = tanggal;
|
||||
}
|
||||
|
||||
public LoginUser getLoginUser() {
|
||||
return loginUser;
|
||||
}
|
||||
|
||||
public void setLoginUser(LoginUser loginUser) {
|
||||
this.loginUser = loginUser;
|
||||
}
|
||||
|
||||
public Integer getLoginUserId() {
|
||||
return loginUserId;
|
||||
}
|
||||
|
||||
public void setLoginUserId(Integer loginUserId) {
|
||||
this.loginUserId = loginUserId;
|
||||
}
|
||||
|
||||
public String getJenisLog() {
|
||||
return jenisLog;
|
||||
}
|
||||
|
||||
public void setJenisLog(String jenisLog) {
|
||||
this.jenisLog = jenisLog;
|
||||
}
|
||||
|
||||
public String getNoReff() {
|
||||
return noReff;
|
||||
}
|
||||
|
||||
public void setNoReff(String noReff) {
|
||||
this.noReff = noReff;
|
||||
}
|
||||
|
||||
public String getReferensi() {
|
||||
return referensi;
|
||||
}
|
||||
|
||||
public void setReferensi(String referensi) {
|
||||
this.referensi = referensi;
|
||||
}
|
||||
|
||||
public String getKeterangan() {
|
||||
return keterangan;
|
||||
}
|
||||
|
||||
public void setKeterangan(String keterangan) {
|
||||
this.keterangan = keterangan;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
package com.jasamedika.medifirst2000.vo;
|
||||
|
||||
import com.jasamedika.medifirst2000.helper.Caption;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.hibernate.validator.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* @author Salman
|
||||
* @version 1.0.0
|
||||
* @since 31/01/2024
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
public class JenisLogVO {
|
||||
protected Long id;
|
||||
|
||||
@NotBlank
|
||||
@Caption("Jenis Log")
|
||||
private String jenisLog;
|
||||
}
|
||||
@ -106,7 +106,6 @@
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>${commons-io.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- For testing REST -->
|
||||
|
||||
@ -1,70 +1,49 @@
|
||||
package com.jasamedika.medifirst2000.interceptor;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.*;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.*;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.json.JSONArray;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.web.method.HandlerMethod;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.NotifikasiMessageObjekModulDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.KelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.LoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToKelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToLoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.notification.MessageSubscriber;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToKelompokUserService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToLoginUserService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
||||
import com.jasamedika.medifirst2000.service.ObjekModulAplikasiService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Interceptor class for All annotation method controller @AppPermission
|
||||
*
|
||||
* @author Roberto
|
||||
*
|
||||
* direka ulang oleh Syamsu
|
||||
* @author Roberto, direka ulang oleh Syamsu
|
||||
*/
|
||||
|
||||
public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
private static final String[] PRINT_PATTERN = {"/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_", "/print-" };
|
||||
|
||||
private static final String[] ADD_PATTERN = {"/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-"};
|
||||
|
||||
private static final String[] UPDATE_PATTERN = {"/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-"};
|
||||
private static final String[] PRINT_PATTERN = { "/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_",
|
||||
"/print-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = {"/delete_", "/delete-", "/hapus_", "/hapus-"};
|
||||
private static final String[] ADD_PATTERN = { "/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-" };
|
||||
|
||||
private final Logger LOG = LoggerFactory.getLogger(AppInterceptor.class);
|
||||
private static final String[] UPDATE_PATTERN = { "/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = { "/delete_", "/delete-", "/hapus_", "/hapus-" };
|
||||
|
||||
@Autowired
|
||||
private TokenAuthenticationService tokenAuthenticationService;
|
||||
@ -74,101 +53,55 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToKelompokUserService mapObjekModulToKelompokUserService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToLoginUserService mapObjekModulToLoginUserService;
|
||||
|
||||
@Autowired
|
||||
private ObjekModulAplikasiService<ObjekModulAplikasiVO> objekModulAplikasiService;
|
||||
|
||||
|
||||
@Autowired
|
||||
MessagePublisher<String, Object> messagePublisher;
|
||||
|
||||
@Autowired
|
||||
MessageSubscriber messageSubscriber;
|
||||
|
||||
@Autowired
|
||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulDao notifikasiModulMessageDao;
|
||||
|
||||
@Autowired
|
||||
RuanganDao ruanganDao;
|
||||
|
||||
List<LoginUser> loginUser;
|
||||
|
||||
String namaUser;
|
||||
|
||||
// private int headerActionToAction(String action){
|
||||
// if ("save".equals(action)){
|
||||
// return AppPermission.ADD;
|
||||
// } else if ("edit".equals(action)){
|
||||
// return AppPermission.UPDATE;
|
||||
// } else if ("delete".equals(action)){
|
||||
// return AppPermission.DELETE;
|
||||
// } else if ("print".equals(action)){
|
||||
// return AppPermission.PRINT;
|
||||
// } else {
|
||||
// return AppPermission.VIEW;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
private boolean contains(String source, String[] matchers){
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers)){
|
||||
|
||||
private boolean contains(String source, String[] matchers) {
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers))
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i=0;i<matchers.length; i++){
|
||||
if (source.contains(matchers[i])){
|
||||
for (String matcher : matchers)
|
||||
if (source.contains(matcher))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private String filterUrlForm(String urlForm){
|
||||
|
||||
|
||||
private String filterUrlForm(String urlForm) {
|
||||
String[] hasil = urlForm.split("/");
|
||||
System.out.println(hasil.length);
|
||||
StringBuilder potongan = new StringBuilder();
|
||||
for (int i=0; i<hasil.length && i<3; i++){
|
||||
for (int i = 0; i < hasil.length && i < 3; i++)
|
||||
potongan.append(hasil[i]).append("/");
|
||||
}
|
||||
// String current = urlForm;
|
||||
// int pos = 0;
|
||||
// int cpos = -1;
|
||||
// for (int i=0; i<4; i++){
|
||||
// pos = current.indexOf('/',pos+1);
|
||||
// if (pos > 0){
|
||||
// cpos = pos;
|
||||
// }else{
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// String oye = urlForm.substring(0, cpos);
|
||||
return potongan.toString();
|
||||
}
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, boolean supervisi) throws Exception {
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
boolean supervisi) throws Exception {
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
LOG.info("Empty login user");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Empty login user");
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
@ -176,132 +109,92 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
int result = -1;
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
KelompokUser role = user.getKelompokUser();
|
||||
int result = -2;
|
||||
|
||||
if (role != null) {
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
result = -1;
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, int action) throws Exception {
|
||||
// Alter modified Syamsu
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi)){
|
||||
LOG.warn(AlamatUrlForm + " : Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar objek modul aplikasi..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
}
|
||||
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false)) {
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
int action) throws Exception {
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService
|
||||
.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi))
|
||||
return true;
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false))
|
||||
return false;
|
||||
}
|
||||
|
||||
int resultUser = checkUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultUser == 0){
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
return false;
|
||||
} else if (resultUser == 1){
|
||||
} else if (resultUser == 1) {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
int resultKelompokUser = checkKelompokUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultKelompokUser == -2){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no role to gain access restricted area", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no role to gain access restricted area");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == -1){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar Map objek modul to kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no access to module application", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no access to module application");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultKelompokUser == -2) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == -1) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
@ -310,113 +203,54 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* return true untuk valid permission request ke controller method
|
||||
*/
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||
////// Syamsu /////
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||
HandlerMethod hm;
|
||||
Method method = null;
|
||||
// int methodApp = AppPermission.VIEW;
|
||||
|
||||
Method method;
|
||||
response.setHeader("Access-Control-Expose-Headers", "RequireSupervisor" + ","
|
||||
+ Constants.MessageInfo.ERROR_MESSAGE + "," + Constants.MessageInfo.INFO_MESSAGE);
|
||||
|
||||
////// Syamsu /////
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "": request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
|
||||
// Buat Om, Kang, Aa Reza terkait Security Role
|
||||
//String KdRuangan = null;
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? "": request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
int action = AppPermission.VIEW;
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm)){
|
||||
//LOG.warn("Sementara defaultnya di loloskan semuanya di AppInterceptor jika tidak ada header 'AlamatUrlForm' ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan)){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada header 'KdRuangan' atau header 'KdRuangan'nya 0 ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
//String headerAction = request.getHeader(Constants.HttpHeader.ACTION) == null ? "" : request.getHeader(Constants.HttpHeader.ACTION);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm))
|
||||
return true;
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan))
|
||||
return true;
|
||||
String URI = request.getRequestURI();
|
||||
String methodHttp = request.getMethod();
|
||||
|
||||
try {
|
||||
// Alter modified Syamsu
|
||||
if (handler instanceof org.springframework.web.method.HandlerMethod) {
|
||||
hm = (HandlerMethod) handler;
|
||||
method = hm.getMethod();
|
||||
} else {
|
||||
return checkAuthSecure(request, response, AlamatUrlForm, true);
|
||||
}
|
||||
|
||||
// AlamatUrlForm // Alter modified Syamsu
|
||||
boolean usingAnno = method != null && method.isAnnotationPresent(AppPermission.class);
|
||||
|
||||
boolean postM = "POST".equals(methodHttp);
|
||||
boolean signInOut = !URI.contains("auth/sign-in") && !URI.contains("auth/sign-out");
|
||||
boolean getM = "GET".equals(methodHttp);
|
||||
boolean cetak = contains (URI, PRINT_PATTERN);
|
||||
|
||||
/*(URI.contains("/lap_") || URI.contains("/lap-") || URI.contains("/lap")
|
||||
|| URI.contains("/cetak_") || URI.contains("/print_") || URI.contains("/cetak-")
|
||||
|| URI.contains("/print-"));*/
|
||||
|
||||
boolean simpan = contains (URI, ADD_PATTERN);
|
||||
|
||||
/*(URI.contains("/save_") || URI.contains("/add_") || URI.contains("/simpan_")
|
||||
|| URI.contains("/save-") || URI.contains("/add-") || URI.contains("/simpan-"));*/
|
||||
|
||||
boolean ubah = contains (URI, UPDATE_PATTERN);
|
||||
|
||||
/*(URI.contains("/update_") || URI.contains("/edit_") || URI.contains("/ubah_")
|
||||
|| URI.contains("/update-") || URI.contains("/edit-") || URI.contains("/ubah-"));*/
|
||||
|
||||
boolean hapus = contains (URI, DELETE_PATTERN);
|
||||
|
||||
/*(URI.contains("/delete_") || URI.contains("/hapus_") || URI.contains("/delete-")
|
||||
|| URI.contains("/hapus-")); */
|
||||
|
||||
boolean cetak = contains(URI, PRINT_PATTERN);
|
||||
boolean simpan = contains(URI, ADD_PATTERN);
|
||||
boolean ubah = contains(URI, UPDATE_PATTERN);
|
||||
boolean hapus = contains(URI, DELETE_PATTERN);
|
||||
if (usingAnno) {
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
if (AppPermission.SPECIALS == action /* && "#/home".equals(AlamatUrlForm) */) {
|
||||
if (AppPermission.SPECIALS == action)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (getM && cetak) {
|
||||
|
||||
action = AppPermission.PRINT;
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
}
|
||||
|
||||
if ((usingAnno || postM) && signInOut) {
|
||||
|
||||
if (simpan) {
|
||||
action = AppPermission.ADD;
|
||||
} else if (ubah) {
|
||||
@ -426,345 +260,105 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
} else if (cetak) {
|
||||
action = AppPermission.PRINT;
|
||||
}
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.out.println("Not Found " + request.getRequestURL());
|
||||
|
||||
LOG.info("Error accured unauthorized");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Something wrong happened");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) throws Exception {}
|
||||
|
||||
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex) throws Exception {
|
||||
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex)
|
||||
throws Exception {
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String idRuanganTujuan = request.getHeader(Constants.HttpHeader.KD_RUANGAN_T) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_T);
|
||||
|
||||
String idRuanganTujuanA = request.getHeader(Constants.HttpHeader.KD_RUANGAN_A) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_A);
|
||||
|
||||
String tglKirim = request.getHeader(Constants.HttpHeader.TGL_KIRIM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.TGL_KIRIM);
|
||||
|
||||
boolean notHttpOK = response.getStatus() >= HttpServletResponse.SC_BAD_REQUEST;
|
||||
boolean notLewatMenu = CommonUtil.isNullOrEmpty(AlamatUrlForm) || CommonUtil.isNullOrEmpty(KdRuangan);
|
||||
|
||||
Integer ruanganAsalId = 0;
|
||||
|
||||
try {
|
||||
ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
}catch(Exception e){
|
||||
ex = e;
|
||||
}
|
||||
|
||||
|
||||
Integer ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
boolean adaError = CommonUtil.isNotNullOrEmpty(ex);
|
||||
if (notHttpOK || notLewatMenu || adaError){
|
||||
if (notHttpOK || notLewatMenu || adaError)
|
||||
return;
|
||||
}
|
||||
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(authentication)){
|
||||
if (CommonUtil.isNullOrEmpty(authentication))
|
||||
return;
|
||||
}
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
if (CommonUtil.isNullOrEmpty(loginUser))
|
||||
return;
|
||||
}
|
||||
|
||||
String potongan = filterUrlForm(AlamatUrlForm);
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasiVOs = objekModulAplikasiService.findByAlamatUrlForm(potongan);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs)){
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
String URI = request.getRequestURI();
|
||||
|
||||
Integer objekModulAplikasId = objekModulAplikasiVOs.get(0).getId();
|
||||
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs)) {
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService
|
||||
.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
Integer notifMessagingId = notifMessagingVOs.get(0).getId();
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(tglKirim)) {
|
||||
|
||||
|
||||
List<Integer> ruanganTujuansId = new ArrayList<>();
|
||||
System.out.println("--");
|
||||
|
||||
if (!"".equals(idRuanganTujuan)){
|
||||
if (!"".equals(idRuanganTujuan)) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!"".equals(idRuanganTujuanA) && ruanganTujuansId.isEmpty()) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuanA);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
|
||||
MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
||||
|
||||
Pegawai pegawai = loginUser.get(0).getPegawai();
|
||||
Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
||||
|
||||
|
||||
if (ruanganTujuansId.size() > 0){
|
||||
try{
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
LOG.info(DateUtil.now()+" send notif dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
||||
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
if (!ruanganTujuansId.isEmpty())
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService,
|
||||
notifMessagingId, ruanganTujuansId);
|
||||
} else {
|
||||
JSONArray tglKirims = new JSONArray(tglKirim);
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
for (int i=0; i<tglKirims.length(); i++){
|
||||
for (int i = 0; i < tglKirims.length(); i++) {
|
||||
String ctglKirim = tglKirims.optString(i, "");
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i,0);
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
Date date = myFormat.parse(ctglKirim);
|
||||
|
||||
NotifMessagingSchedulerVO vo = new NotifMessagingSchedulerVO();
|
||||
|
||||
vo.setTglKirim(date);
|
||||
vo.setTerkirim(false);
|
||||
vo.setNotifMessagingId(notifMessagingId);
|
||||
vo.setRuanganIdAsal(ruanganAsalId);
|
||||
vo.setRuanganIdTujuan(cRuanganTujuanId);
|
||||
vo.setPegawaiId(loginUser.get(0).getPegawai().getId());
|
||||
|
||||
vo.setKdProfile((short)0);
|
||||
vo.setKdProfile((short) 0);
|
||||
vo.setKodeExternal("");
|
||||
vo.setNamaExternal("");
|
||||
vo.setReportDisplay("");
|
||||
vo.setStatusEnabled(true);
|
||||
|
||||
notifMessagingSchedulerService.add(vo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// <T extends BaseMasterVO> T convertToVO(T t, Object o){
|
||||
// BeanUtils.copyProperties(t, o);
|
||||
// return t;
|
||||
// }
|
||||
|
||||
// try{
|
||||
//
|
||||
//
|
||||
// String AlamatUrlForm =
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "" :
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
// String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN)
|
||||
// == null ? "" : request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
//
|
||||
// Authentication authentication =
|
||||
// tokenAuthenticationService.getAuthentication(request);
|
||||
//
|
||||
// namaUser = authentication.getName();
|
||||
// loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
//
|
||||
//
|
||||
// if (loginUser.isEmpty()) {
|
||||
// publisher.BroadcastMessage(KdRuangan, namaUser, AlamatUrlForm);
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//// String routingKeyAndQueueName = "ruanganId." + KdRuangan;
|
||||
////
|
||||
//// publisher.sendRabbitMQNotification("127.0.0.1", "ruanganId." +
|
||||
// KdRuangan, "Kd Ruangan : " + KdRuangan + ", AlamatUrlForm : " +
|
||||
// AlamatUrlForm);
|
||||
////
|
||||
//// subscriber.startRabbitMQNotification("127.0.0.1",
|
||||
// routingKeyAndQueueName);
|
||||
//// subscriber.listenRabbitMQNotification(routingKeyAndQueueName,
|
||||
// subscriber.getDefaultConsumer(), false);
|
||||
//// subscriber.stopRabbitMQNotification();
|
||||
//
|
||||
// }catch(Exception e){
|
||||
// //e.printStackTrace();
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// //String urlSocket = messagePublisher.GetSettingDataFixed("UrlRabbitMQMessaging"); sementara kunci dulu.
|
||||
//
|
||||
// String urlSocket = "127.0.0.1";
|
||||
//
|
||||
// List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
||||
//
|
||||
// if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// Integer ruanganIdtemp = 0;
|
||||
// boolean connect = false;
|
||||
//
|
||||
// for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
|
||||
// Ruangan ruangan = vo.getRuangan();
|
||||
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
||||
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
||||
// String customURLObjekModul = vo.getCustomURLObjekModul();
|
||||
// String titleNotifikasi = vo.getTitleNotifikasi();
|
||||
// String pesanNotifikasi = vo.getPesanNotifikasi();
|
||||
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
||||
//
|
||||
// if (ruangan.getId() == ruanganId){
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
||||
//
|
||||
// if (ruanganIdtemp != ruangan.getId()){
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
||||
// connect = true;
|
||||
// ruanganIdtemp = ruangan.getId();
|
||||
// }
|
||||
//
|
||||
// Map<String, Object> map = new HashMap<>();
|
||||
// map.put("title", titleNotifikasi);
|
||||
// map.put("dariRuangan", dariRuangan);
|
||||
// map.put("ruanganId", ruangan.getId());
|
||||
// map.put("ruangan", convertToVO(new RuanganVO(), ruangan));
|
||||
// map.put("modulAplikasi", convertToVO(new ModulAplikasiVO(), modulAplikasi));
|
||||
// map.put("objekModulAplikasi", convertToVO(new ObjekModulAplikasiVO(), objekModulAplikasi));
|
||||
// map.put("titleNotifikasi", titleNotifikasi);
|
||||
// map.put("pesanNotifikasi", pesanNotifikasi);
|
||||
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
||||
// map.put("fromPegawai", loginUser.get(0).getPegawai());
|
||||
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
|
||||
//
|
||||
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
||||
//
|
||||
// //messagePublisher.BroadcastMessage(map);
|
||||
// }
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
|
||||
|
||||
// private static final TypeAdapterFactory FACTORY = new TypeAdapterFactory() {
|
||||
// @Override
|
||||
// @SuppressWarnings("unchecked")
|
||||
// public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
||||
// return (HibernateProxy.class.isAssignableFrom(type.getRawType())
|
||||
// ? (TypeAdapter<T>) new HibernateProxyTypeAdapter((TypeAdapter)gson.getAdapter(TypeToken.get(type.getRawType().getSuperclass())))
|
||||
// : null);
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// private static final class HibernateProxyTypeAdapter extends TypeAdapter<HibernateProxy> {
|
||||
//
|
||||
// private final TypeAdapter<Object> delegate;
|
||||
//
|
||||
// private HibernateProxyTypeAdapter(TypeAdapter<Object> delegate) {
|
||||
// this.delegate = delegate;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public HibernateProxy read(JsonReader r) throws IOException {
|
||||
// throw new UnsupportedOperationException("Not supported");
|
||||
// }
|
||||
//
|
||||
// @SuppressWarnings({"rawtypes", "unchecked"})
|
||||
// @Override
|
||||
// public void write(JsonWriter out, HibernateProxy value) throws IOException {
|
||||
// if (value == null) {
|
||||
// out.nullValue();
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// delegate.write(out, ((HibernateProxy) value).getHibernateLazyInitializer().getImplementation());
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* else if (method.isAnnotationPresent(AppMenuPermision.class)){
|
||||
*
|
||||
* Authentication authentication =
|
||||
* tokenAuthenticationService.getAuthentication(request);
|
||||
*
|
||||
* String namaUser = authentication.getName();
|
||||
*
|
||||
* List<LoginUser> loginUser =
|
||||
* loginUserDao.findByNamaUser(namaUser);
|
||||
*
|
||||
* if (loginUser.isEmpty()) { // untuk testing false
|
||||
* response.addHeader("Access-Control-Expose-Headers",
|
||||
* "content-type");
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "User " +
|
||||
* namaUser + " can not access current menu ");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; }
|
||||
*
|
||||
* // get user login if (!loginUser.isEmpty()) { LoginUser user =
|
||||
* loginUser.get(0); }else{ LOG.info("User {} is unauthorized",
|
||||
* namaUser);
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
* "User is unauthorized");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; } }
|
||||
*/
|
||||
@ -106,7 +106,6 @@
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>${commons-io.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- For testing REST -->
|
||||
|
||||
@ -1,70 +1,49 @@
|
||||
package com.jasamedika.medifirst2000.interceptor;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.*;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.*;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.json.JSONArray;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.web.method.HandlerMethod;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.NotifikasiMessageObjekModulDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.KelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.LoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToKelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToLoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.notification.MessageSubscriber;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToKelompokUserService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToLoginUserService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
||||
import com.jasamedika.medifirst2000.service.ObjekModulAplikasiService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Interceptor class for All annotation method controller @AppPermission
|
||||
*
|
||||
* @author Roberto
|
||||
*
|
||||
* direka ulang oleh Syamsu
|
||||
* @author Roberto, direka ulang oleh Syamsu
|
||||
*/
|
||||
|
||||
public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
private static final String[] PRINT_PATTERN = {"/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_", "/print-" };
|
||||
|
||||
private static final String[] ADD_PATTERN = {"/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-"};
|
||||
|
||||
private static final String[] UPDATE_PATTERN = {"/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-"};
|
||||
private static final String[] PRINT_PATTERN = { "/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_",
|
||||
"/print-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = {"/delete_", "/delete-", "/hapus_", "/hapus-"};
|
||||
private static final String[] ADD_PATTERN = { "/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-" };
|
||||
|
||||
private final Logger LOG = LoggerFactory.getLogger(AppInterceptor.class);
|
||||
private static final String[] UPDATE_PATTERN = { "/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = { "/delete_", "/delete-", "/hapus_", "/hapus-" };
|
||||
|
||||
@Autowired
|
||||
private TokenAuthenticationService tokenAuthenticationService;
|
||||
@ -74,101 +53,55 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToKelompokUserService mapObjekModulToKelompokUserService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToLoginUserService mapObjekModulToLoginUserService;
|
||||
|
||||
@Autowired
|
||||
private ObjekModulAplikasiService<ObjekModulAplikasiVO> objekModulAplikasiService;
|
||||
|
||||
|
||||
@Autowired
|
||||
MessagePublisher<String, Object> messagePublisher;
|
||||
|
||||
@Autowired
|
||||
MessageSubscriber messageSubscriber;
|
||||
|
||||
@Autowired
|
||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulDao notifikasiModulMessageDao;
|
||||
|
||||
@Autowired
|
||||
RuanganDao ruanganDao;
|
||||
|
||||
List<LoginUser> loginUser;
|
||||
|
||||
String namaUser;
|
||||
|
||||
// private int headerActionToAction(String action){
|
||||
// if ("save".equals(action)){
|
||||
// return AppPermission.ADD;
|
||||
// } else if ("edit".equals(action)){
|
||||
// return AppPermission.UPDATE;
|
||||
// } else if ("delete".equals(action)){
|
||||
// return AppPermission.DELETE;
|
||||
// } else if ("print".equals(action)){
|
||||
// return AppPermission.PRINT;
|
||||
// } else {
|
||||
// return AppPermission.VIEW;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
private boolean contains(String source, String[] matchers){
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers)){
|
||||
|
||||
private boolean contains(String source, String[] matchers) {
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers))
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i=0;i<matchers.length; i++){
|
||||
if (source.contains(matchers[i])){
|
||||
for (String matcher : matchers)
|
||||
if (source.contains(matcher))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private String filterUrlForm(String urlForm){
|
||||
|
||||
|
||||
private String filterUrlForm(String urlForm) {
|
||||
String[] hasil = urlForm.split("/");
|
||||
System.out.println(hasil.length);
|
||||
StringBuilder potongan = new StringBuilder();
|
||||
for (int i=0; i<hasil.length && i<3; i++){
|
||||
for (int i = 0; i < hasil.length && i < 3; i++)
|
||||
potongan.append(hasil[i]).append("/");
|
||||
}
|
||||
// String current = urlForm;
|
||||
// int pos = 0;
|
||||
// int cpos = -1;
|
||||
// for (int i=0; i<4; i++){
|
||||
// pos = current.indexOf('/',pos+1);
|
||||
// if (pos > 0){
|
||||
// cpos = pos;
|
||||
// }else{
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// String oye = urlForm.substring(0, cpos);
|
||||
return potongan.toString();
|
||||
}
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, boolean supervisi) throws Exception {
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
boolean supervisi) throws Exception {
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
LOG.info("Empty login user");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Empty login user");
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
@ -176,132 +109,92 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
int result = -1;
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
KelompokUser role = user.getKelompokUser();
|
||||
int result = -2;
|
||||
|
||||
if (role != null) {
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
result = -1;
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, int action) throws Exception {
|
||||
// Alter modified Syamsu
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi)){
|
||||
LOG.warn(AlamatUrlForm + " : Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar objek modul aplikasi..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
}
|
||||
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false)) {
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
int action) throws Exception {
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService
|
||||
.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi))
|
||||
return true;
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false))
|
||||
return false;
|
||||
}
|
||||
|
||||
int resultUser = checkUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultUser == 0){
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
return false;
|
||||
} else if (resultUser == 1){
|
||||
} else if (resultUser == 1) {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
int resultKelompokUser = checkKelompokUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultKelompokUser == -2){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no role to gain access restricted area", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no role to gain access restricted area");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == -1){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar Map objek modul to kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no access to module application", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no access to module application");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultKelompokUser == -2) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == -1) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
@ -310,113 +203,54 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* return true untuk valid permission request ke controller method
|
||||
*/
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||
////// Syamsu /////
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||
HandlerMethod hm;
|
||||
Method method = null;
|
||||
// int methodApp = AppPermission.VIEW;
|
||||
|
||||
Method method;
|
||||
response.setHeader("Access-Control-Expose-Headers", "RequireSupervisor" + ","
|
||||
+ Constants.MessageInfo.ERROR_MESSAGE + "," + Constants.MessageInfo.INFO_MESSAGE);
|
||||
|
||||
////// Syamsu /////
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "": request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
|
||||
// Buat Om, Kang, Aa Reza terkait Security Role
|
||||
//String KdRuangan = null;
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? "": request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
int action = AppPermission.VIEW;
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm)){
|
||||
//LOG.warn("Sementara defaultnya di loloskan semuanya di AppInterceptor jika tidak ada header 'AlamatUrlForm' ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan)){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada header 'KdRuangan' atau header 'KdRuangan'nya 0 ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
//String headerAction = request.getHeader(Constants.HttpHeader.ACTION) == null ? "" : request.getHeader(Constants.HttpHeader.ACTION);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm))
|
||||
return true;
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan))
|
||||
return true;
|
||||
String URI = request.getRequestURI();
|
||||
String methodHttp = request.getMethod();
|
||||
|
||||
try {
|
||||
// Alter modified Syamsu
|
||||
if (handler instanceof org.springframework.web.method.HandlerMethod) {
|
||||
hm = (HandlerMethod) handler;
|
||||
method = hm.getMethod();
|
||||
} else {
|
||||
return checkAuthSecure(request, response, AlamatUrlForm, true);
|
||||
}
|
||||
|
||||
// AlamatUrlForm // Alter modified Syamsu
|
||||
boolean usingAnno = method != null && method.isAnnotationPresent(AppPermission.class);
|
||||
|
||||
boolean postM = "POST".equals(methodHttp);
|
||||
boolean signInOut = !URI.contains("auth/sign-in") && !URI.contains("auth/sign-out");
|
||||
boolean getM = "GET".equals(methodHttp);
|
||||
boolean cetak = contains (URI, PRINT_PATTERN);
|
||||
|
||||
/*(URI.contains("/lap_") || URI.contains("/lap-") || URI.contains("/lap")
|
||||
|| URI.contains("/cetak_") || URI.contains("/print_") || URI.contains("/cetak-")
|
||||
|| URI.contains("/print-"));*/
|
||||
|
||||
boolean simpan = contains (URI, ADD_PATTERN);
|
||||
|
||||
/*(URI.contains("/save_") || URI.contains("/add_") || URI.contains("/simpan_")
|
||||
|| URI.contains("/save-") || URI.contains("/add-") || URI.contains("/simpan-"));*/
|
||||
|
||||
boolean ubah = contains (URI, UPDATE_PATTERN);
|
||||
|
||||
/*(URI.contains("/update_") || URI.contains("/edit_") || URI.contains("/ubah_")
|
||||
|| URI.contains("/update-") || URI.contains("/edit-") || URI.contains("/ubah-"));*/
|
||||
|
||||
boolean hapus = contains (URI, DELETE_PATTERN);
|
||||
|
||||
/*(URI.contains("/delete_") || URI.contains("/hapus_") || URI.contains("/delete-")
|
||||
|| URI.contains("/hapus-")); */
|
||||
|
||||
boolean cetak = contains(URI, PRINT_PATTERN);
|
||||
boolean simpan = contains(URI, ADD_PATTERN);
|
||||
boolean ubah = contains(URI, UPDATE_PATTERN);
|
||||
boolean hapus = contains(URI, DELETE_PATTERN);
|
||||
if (usingAnno) {
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
if (AppPermission.SPECIALS == action /* && "#/home".equals(AlamatUrlForm) */) {
|
||||
if (AppPermission.SPECIALS == action)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (getM && cetak) {
|
||||
|
||||
action = AppPermission.PRINT;
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
}
|
||||
|
||||
if ((usingAnno || postM) && signInOut) {
|
||||
|
||||
if (simpan) {
|
||||
action = AppPermission.ADD;
|
||||
} else if (ubah) {
|
||||
@ -426,345 +260,104 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
} else if (cetak) {
|
||||
action = AppPermission.PRINT;
|
||||
}
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.out.println("Not Found " + request.getRequestURL());
|
||||
|
||||
LOG.info("Error accured unauthorized");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Something wrong happened");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) throws Exception {}
|
||||
|
||||
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex) throws Exception {
|
||||
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex)
|
||||
throws Exception {
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String idRuanganTujuan = request.getHeader(Constants.HttpHeader.KD_RUANGAN_T) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_T);
|
||||
|
||||
String idRuanganTujuanA = request.getHeader(Constants.HttpHeader.KD_RUANGAN_A) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_A);
|
||||
|
||||
String tglKirim = request.getHeader(Constants.HttpHeader.TGL_KIRIM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.TGL_KIRIM);
|
||||
|
||||
boolean notHttpOK = response.getStatus() >= HttpServletResponse.SC_BAD_REQUEST;
|
||||
boolean notLewatMenu = CommonUtil.isNullOrEmpty(AlamatUrlForm) || CommonUtil.isNullOrEmpty(KdRuangan);
|
||||
|
||||
Integer ruanganAsalId = 0;
|
||||
|
||||
try {
|
||||
ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
}catch(Exception e){
|
||||
ex = e;
|
||||
}
|
||||
|
||||
|
||||
Integer ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
boolean adaError = CommonUtil.isNotNullOrEmpty(ex);
|
||||
if (notHttpOK || notLewatMenu || adaError){
|
||||
if (notHttpOK || notLewatMenu || adaError)
|
||||
return;
|
||||
}
|
||||
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(authentication)){
|
||||
if (CommonUtil.isNullOrEmpty(authentication))
|
||||
return;
|
||||
}
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
if (CommonUtil.isNullOrEmpty(loginUser))
|
||||
return;
|
||||
}
|
||||
|
||||
String potongan = filterUrlForm(AlamatUrlForm);
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasiVOs = objekModulAplikasiService.findByAlamatUrlForm(potongan);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs)){
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
String URI = request.getRequestURI();
|
||||
|
||||
Integer objekModulAplikasId = objekModulAplikasiVOs.get(0).getId();
|
||||
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs)) {
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService
|
||||
.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
Integer notifMessagingId = notifMessagingVOs.get(0).getId();
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(tglKirim)) {
|
||||
|
||||
|
||||
List<Integer> ruanganTujuansId = new ArrayList<>();
|
||||
System.out.println("--");
|
||||
|
||||
if (!"".equals(idRuanganTujuan)){
|
||||
if (!"".equals(idRuanganTujuan)) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!"".equals(idRuanganTujuanA) && ruanganTujuansId.isEmpty()) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuanA);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
|
||||
MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
||||
|
||||
Pegawai pegawai = loginUser.get(0).getPegawai();
|
||||
Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
||||
|
||||
|
||||
if (ruanganTujuansId.size() > 0){
|
||||
try{
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
LOG.info(DateUtil.now()+" send notif dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
||||
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
if (!ruanganTujuansId.isEmpty())
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService,
|
||||
notifMessagingId, ruanganTujuansId);
|
||||
} else {
|
||||
JSONArray tglKirims = new JSONArray(tglKirim);
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
for (int i=0; i<tglKirims.length(); i++){
|
||||
for (int i = 0; i < tglKirims.length(); i++) {
|
||||
String ctglKirim = tglKirims.optString(i, "");
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i,0);
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
Date date = myFormat.parse(ctglKirim);
|
||||
|
||||
NotifMessagingSchedulerVO vo = new NotifMessagingSchedulerVO();
|
||||
|
||||
vo.setTglKirim(date);
|
||||
vo.setTerkirim(false);
|
||||
vo.setNotifMessagingId(notifMessagingId);
|
||||
vo.setRuanganIdAsal(ruanganAsalId);
|
||||
vo.setRuanganIdTujuan(cRuanganTujuanId);
|
||||
vo.setPegawaiId(loginUser.get(0).getPegawai().getId());
|
||||
|
||||
vo.setKdProfile((short)0);
|
||||
vo.setKdProfile((short) 0);
|
||||
vo.setKodeExternal("");
|
||||
vo.setNamaExternal("");
|
||||
vo.setReportDisplay("");
|
||||
vo.setStatusEnabled(true);
|
||||
|
||||
notifMessagingSchedulerService.add(vo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// <T extends BaseMasterVO> T convertToVO(T t, Object o){
|
||||
// BeanUtils.copyProperties(t, o);
|
||||
// return t;
|
||||
// }
|
||||
|
||||
// try{
|
||||
//
|
||||
//
|
||||
// String AlamatUrlForm =
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "" :
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
// String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN)
|
||||
// == null ? "" : request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
//
|
||||
// Authentication authentication =
|
||||
// tokenAuthenticationService.getAuthentication(request);
|
||||
//
|
||||
// namaUser = authentication.getName();
|
||||
// loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
//
|
||||
//
|
||||
// if (loginUser.isEmpty()) {
|
||||
// publisher.BroadcastMessage(KdRuangan, namaUser, AlamatUrlForm);
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//// String routingKeyAndQueueName = "ruanganId." + KdRuangan;
|
||||
////
|
||||
//// publisher.sendRabbitMQNotification("127.0.0.1", "ruanganId." +
|
||||
// KdRuangan, "Kd Ruangan : " + KdRuangan + ", AlamatUrlForm : " +
|
||||
// AlamatUrlForm);
|
||||
////
|
||||
//// subscriber.startRabbitMQNotification("127.0.0.1",
|
||||
// routingKeyAndQueueName);
|
||||
//// subscriber.listenRabbitMQNotification(routingKeyAndQueueName,
|
||||
// subscriber.getDefaultConsumer(), false);
|
||||
//// subscriber.stopRabbitMQNotification();
|
||||
//
|
||||
// }catch(Exception e){
|
||||
// //e.printStackTrace();
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// //String urlSocket = messagePublisher.GetSettingDataFixed("UrlRabbitMQMessaging"); sementara kunci dulu.
|
||||
//
|
||||
// String urlSocket = "127.0.0.1";
|
||||
//
|
||||
// List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
||||
//
|
||||
// if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// Integer ruanganIdtemp = 0;
|
||||
// boolean connect = false;
|
||||
//
|
||||
// for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
|
||||
// Ruangan ruangan = vo.getRuangan();
|
||||
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
||||
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
||||
// String customURLObjekModul = vo.getCustomURLObjekModul();
|
||||
// String titleNotifikasi = vo.getTitleNotifikasi();
|
||||
// String pesanNotifikasi = vo.getPesanNotifikasi();
|
||||
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
||||
//
|
||||
// if (ruangan.getId() == ruanganId){
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
||||
//
|
||||
// if (ruanganIdtemp != ruangan.getId()){
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
||||
// connect = true;
|
||||
// ruanganIdtemp = ruangan.getId();
|
||||
// }
|
||||
//
|
||||
// Map<String, Object> map = new HashMap<>();
|
||||
// map.put("title", titleNotifikasi);
|
||||
// map.put("dariRuangan", dariRuangan);
|
||||
// map.put("ruanganId", ruangan.getId());
|
||||
// map.put("ruangan", convertToVO(new RuanganVO(), ruangan));
|
||||
// map.put("modulAplikasi", convertToVO(new ModulAplikasiVO(), modulAplikasi));
|
||||
// map.put("objekModulAplikasi", convertToVO(new ObjekModulAplikasiVO(), objekModulAplikasi));
|
||||
// map.put("titleNotifikasi", titleNotifikasi);
|
||||
// map.put("pesanNotifikasi", pesanNotifikasi);
|
||||
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
||||
// map.put("fromPegawai", loginUser.get(0).getPegawai());
|
||||
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
|
||||
//
|
||||
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
||||
//
|
||||
// //messagePublisher.BroadcastMessage(map);
|
||||
// }
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
|
||||
|
||||
// private static final TypeAdapterFactory FACTORY = new TypeAdapterFactory() {
|
||||
// @Override
|
||||
// @SuppressWarnings("unchecked")
|
||||
// public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
||||
// return (HibernateProxy.class.isAssignableFrom(type.getRawType())
|
||||
// ? (TypeAdapter<T>) new HibernateProxyTypeAdapter((TypeAdapter)gson.getAdapter(TypeToken.get(type.getRawType().getSuperclass())))
|
||||
// : null);
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// private static final class HibernateProxyTypeAdapter extends TypeAdapter<HibernateProxy> {
|
||||
//
|
||||
// private final TypeAdapter<Object> delegate;
|
||||
//
|
||||
// private HibernateProxyTypeAdapter(TypeAdapter<Object> delegate) {
|
||||
// this.delegate = delegate;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public HibernateProxy read(JsonReader r) throws IOException {
|
||||
// throw new UnsupportedOperationException("Not supported");
|
||||
// }
|
||||
//
|
||||
// @SuppressWarnings({"rawtypes", "unchecked"})
|
||||
// @Override
|
||||
// public void write(JsonWriter out, HibernateProxy value) throws IOException {
|
||||
// if (value == null) {
|
||||
// out.nullValue();
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// delegate.write(out, ((HibernateProxy) value).getHibernateLazyInitializer().getImplementation());
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* else if (method.isAnnotationPresent(AppMenuPermision.class)){
|
||||
*
|
||||
* Authentication authentication =
|
||||
* tokenAuthenticationService.getAuthentication(request);
|
||||
*
|
||||
* String namaUser = authentication.getName();
|
||||
*
|
||||
* List<LoginUser> loginUser =
|
||||
* loginUserDao.findByNamaUser(namaUser);
|
||||
*
|
||||
* if (loginUser.isEmpty()) { // untuk testing false
|
||||
* response.addHeader("Access-Control-Expose-Headers",
|
||||
* "content-type");
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "User " +
|
||||
* namaUser + " can not access current menu ");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; }
|
||||
*
|
||||
* // get user login if (!loginUser.isEmpty()) { LoginUser user =
|
||||
* loginUser.get(0); }else{ LOG.info("User {} is unauthorized",
|
||||
* namaUser);
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
* "User is unauthorized");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; } }
|
||||
*/
|
||||
@ -106,7 +106,6 @@
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>${commons-io.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- For testing REST -->
|
||||
|
||||
@ -1,70 +1,49 @@
|
||||
package com.jasamedika.medifirst2000.interceptor;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.*;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.*;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.json.JSONArray;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.web.method.HandlerMethod;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.NotifikasiMessageObjekModulDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.KelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.LoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToKelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToLoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.notification.MessageSubscriber;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToKelompokUserService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToLoginUserService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
||||
import com.jasamedika.medifirst2000.service.ObjekModulAplikasiService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Interceptor class for All annotation method controller @AppPermission
|
||||
*
|
||||
* @author Roberto
|
||||
*
|
||||
* direka ulang oleh Syamsu
|
||||
* @author Roberto, direka ulang oleh Syamsu
|
||||
*/
|
||||
|
||||
public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
private static final String[] PRINT_PATTERN = {"/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_", "/print-" };
|
||||
|
||||
private static final String[] ADD_PATTERN = {"/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-"};
|
||||
|
||||
private static final String[] UPDATE_PATTERN = {"/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-"};
|
||||
private static final String[] PRINT_PATTERN = { "/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_",
|
||||
"/print-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = {"/delete_", "/delete-", "/hapus_", "/hapus-"};
|
||||
private static final String[] ADD_PATTERN = { "/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-" };
|
||||
|
||||
private final Logger LOG = LoggerFactory.getLogger(AppInterceptor.class);
|
||||
private static final String[] UPDATE_PATTERN = { "/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = { "/delete_", "/delete-", "/hapus_", "/hapus-" };
|
||||
|
||||
@Autowired
|
||||
private TokenAuthenticationService tokenAuthenticationService;
|
||||
@ -74,101 +53,55 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToKelompokUserService mapObjekModulToKelompokUserService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToLoginUserService mapObjekModulToLoginUserService;
|
||||
|
||||
@Autowired
|
||||
private ObjekModulAplikasiService<ObjekModulAplikasiVO> objekModulAplikasiService;
|
||||
|
||||
|
||||
@Autowired
|
||||
MessagePublisher<String, Object> messagePublisher;
|
||||
|
||||
@Autowired
|
||||
MessageSubscriber messageSubscriber;
|
||||
|
||||
@Autowired
|
||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulDao notifikasiModulMessageDao;
|
||||
|
||||
@Autowired
|
||||
RuanganDao ruanganDao;
|
||||
|
||||
List<LoginUser> loginUser;
|
||||
|
||||
String namaUser;
|
||||
|
||||
// private int headerActionToAction(String action){
|
||||
// if ("save".equals(action)){
|
||||
// return AppPermission.ADD;
|
||||
// } else if ("edit".equals(action)){
|
||||
// return AppPermission.UPDATE;
|
||||
// } else if ("delete".equals(action)){
|
||||
// return AppPermission.DELETE;
|
||||
// } else if ("print".equals(action)){
|
||||
// return AppPermission.PRINT;
|
||||
// } else {
|
||||
// return AppPermission.VIEW;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
private boolean contains(String source, String[] matchers){
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers)){
|
||||
|
||||
private boolean contains(String source, String[] matchers) {
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers))
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i=0;i<matchers.length; i++){
|
||||
if (source.contains(matchers[i])){
|
||||
for (String matcher : matchers)
|
||||
if (source.contains(matcher))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private String filterUrlForm(String urlForm){
|
||||
|
||||
|
||||
private String filterUrlForm(String urlForm) {
|
||||
String[] hasil = urlForm.split("/");
|
||||
System.out.println(hasil.length);
|
||||
StringBuilder potongan = new StringBuilder();
|
||||
for (int i=0; i<hasil.length && i<3; i++){
|
||||
for (int i = 0; i < hasil.length && i < 3; i++)
|
||||
potongan.append(hasil[i]).append("/");
|
||||
}
|
||||
// String current = urlForm;
|
||||
// int pos = 0;
|
||||
// int cpos = -1;
|
||||
// for (int i=0; i<4; i++){
|
||||
// pos = current.indexOf('/',pos+1);
|
||||
// if (pos > 0){
|
||||
// cpos = pos;
|
||||
// }else{
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// String oye = urlForm.substring(0, cpos);
|
||||
return potongan.toString();
|
||||
}
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, boolean supervisi) throws Exception {
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
boolean supervisi) throws Exception {
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
LOG.info("Empty login user");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Empty login user");
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
@ -176,132 +109,92 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
int result = -1;
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
KelompokUser role = user.getKelompokUser();
|
||||
int result = -2;
|
||||
|
||||
if (role != null) {
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
result = -1;
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, int action) throws Exception {
|
||||
// Alter modified Syamsu
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi)){
|
||||
LOG.warn(AlamatUrlForm + " : Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar objek modul aplikasi..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
}
|
||||
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false)) {
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
int action) throws Exception {
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService
|
||||
.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi))
|
||||
return true;
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false))
|
||||
return false;
|
||||
}
|
||||
|
||||
int resultUser = checkUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultUser == 0){
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
return false;
|
||||
} else if (resultUser == 1){
|
||||
} else if (resultUser == 1) {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
int resultKelompokUser = checkKelompokUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultKelompokUser == -2){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no role to gain access restricted area", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no role to gain access restricted area");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == -1){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar Map objek modul to kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no access to module application", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no access to module application");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultKelompokUser == -2) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == -1) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
@ -310,113 +203,54 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* return true untuk valid permission request ke controller method
|
||||
*/
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||
////// Syamsu /////
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||
HandlerMethod hm;
|
||||
Method method = null;
|
||||
// int methodApp = AppPermission.VIEW;
|
||||
|
||||
Method method;
|
||||
response.setHeader("Access-Control-Expose-Headers", "RequireSupervisor" + ","
|
||||
+ Constants.MessageInfo.ERROR_MESSAGE + "," + Constants.MessageInfo.INFO_MESSAGE);
|
||||
|
||||
////// Syamsu /////
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "": request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
|
||||
// Buat Om, Kang, Aa Reza terkait Security Role
|
||||
//String KdRuangan = null;
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? "": request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
int action = AppPermission.VIEW;
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm)){
|
||||
//LOG.warn("Sementara defaultnya di loloskan semuanya di AppInterceptor jika tidak ada header 'AlamatUrlForm' ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan)){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada header 'KdRuangan' atau header 'KdRuangan'nya 0 ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
//String headerAction = request.getHeader(Constants.HttpHeader.ACTION) == null ? "" : request.getHeader(Constants.HttpHeader.ACTION);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm))
|
||||
return true;
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan))
|
||||
return true;
|
||||
String URI = request.getRequestURI();
|
||||
String methodHttp = request.getMethod();
|
||||
|
||||
try {
|
||||
// Alter modified Syamsu
|
||||
if (handler instanceof org.springframework.web.method.HandlerMethod) {
|
||||
hm = (HandlerMethod) handler;
|
||||
method = hm.getMethod();
|
||||
} else {
|
||||
return checkAuthSecure(request, response, AlamatUrlForm, true);
|
||||
}
|
||||
|
||||
// AlamatUrlForm // Alter modified Syamsu
|
||||
boolean usingAnno = method != null && method.isAnnotationPresent(AppPermission.class);
|
||||
|
||||
boolean postM = "POST".equals(methodHttp);
|
||||
boolean signInOut = !URI.contains("auth/sign-in") && !URI.contains("auth/sign-out");
|
||||
boolean getM = "GET".equals(methodHttp);
|
||||
boolean cetak = contains (URI, PRINT_PATTERN);
|
||||
|
||||
/*(URI.contains("/lap_") || URI.contains("/lap-") || URI.contains("/lap")
|
||||
|| URI.contains("/cetak_") || URI.contains("/print_") || URI.contains("/cetak-")
|
||||
|| URI.contains("/print-"));*/
|
||||
|
||||
boolean simpan = contains (URI, ADD_PATTERN);
|
||||
|
||||
/*(URI.contains("/save_") || URI.contains("/add_") || URI.contains("/simpan_")
|
||||
|| URI.contains("/save-") || URI.contains("/add-") || URI.contains("/simpan-"));*/
|
||||
|
||||
boolean ubah = contains (URI, UPDATE_PATTERN);
|
||||
|
||||
/*(URI.contains("/update_") || URI.contains("/edit_") || URI.contains("/ubah_")
|
||||
|| URI.contains("/update-") || URI.contains("/edit-") || URI.contains("/ubah-"));*/
|
||||
|
||||
boolean hapus = contains (URI, DELETE_PATTERN);
|
||||
|
||||
/*(URI.contains("/delete_") || URI.contains("/hapus_") || URI.contains("/delete-")
|
||||
|| URI.contains("/hapus-")); */
|
||||
|
||||
boolean cetak = contains(URI, PRINT_PATTERN);
|
||||
boolean simpan = contains(URI, ADD_PATTERN);
|
||||
boolean ubah = contains(URI, UPDATE_PATTERN);
|
||||
boolean hapus = contains(URI, DELETE_PATTERN);
|
||||
if (usingAnno) {
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
if (AppPermission.SPECIALS == action /* && "#/home".equals(AlamatUrlForm) */) {
|
||||
if (AppPermission.SPECIALS == action)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (getM && cetak) {
|
||||
|
||||
action = AppPermission.PRINT;
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
}
|
||||
|
||||
if ((usingAnno || postM) && signInOut) {
|
||||
|
||||
if (simpan) {
|
||||
action = AppPermission.ADD;
|
||||
} else if (ubah) {
|
||||
@ -426,345 +260,104 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
} else if (cetak) {
|
||||
action = AppPermission.PRINT;
|
||||
}
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.out.println("Not Found " + request.getRequestURL());
|
||||
|
||||
LOG.info("Error accured unauthorized");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Something wrong happened");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) throws Exception {}
|
||||
|
||||
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex) throws Exception {
|
||||
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex)
|
||||
throws Exception {
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String idRuanganTujuan = request.getHeader(Constants.HttpHeader.KD_RUANGAN_T) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_T);
|
||||
|
||||
String idRuanganTujuanA = request.getHeader(Constants.HttpHeader.KD_RUANGAN_A) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_A);
|
||||
|
||||
String tglKirim = request.getHeader(Constants.HttpHeader.TGL_KIRIM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.TGL_KIRIM);
|
||||
|
||||
boolean notHttpOK = response.getStatus() >= HttpServletResponse.SC_BAD_REQUEST;
|
||||
boolean notLewatMenu = CommonUtil.isNullOrEmpty(AlamatUrlForm) || CommonUtil.isNullOrEmpty(KdRuangan);
|
||||
|
||||
Integer ruanganAsalId = 0;
|
||||
|
||||
try {
|
||||
ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
}catch(Exception e){
|
||||
ex = e;
|
||||
}
|
||||
|
||||
|
||||
Integer ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
boolean adaError = CommonUtil.isNotNullOrEmpty(ex);
|
||||
if (notHttpOK || notLewatMenu || adaError){
|
||||
if (notHttpOK || notLewatMenu || adaError)
|
||||
return;
|
||||
}
|
||||
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(authentication)){
|
||||
if (CommonUtil.isNullOrEmpty(authentication))
|
||||
return;
|
||||
}
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
if (CommonUtil.isNullOrEmpty(loginUser))
|
||||
return;
|
||||
}
|
||||
|
||||
String potongan = filterUrlForm(AlamatUrlForm);
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasiVOs = objekModulAplikasiService.findByAlamatUrlForm(potongan);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs)){
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
String URI = request.getRequestURI();
|
||||
|
||||
Integer objekModulAplikasId = objekModulAplikasiVOs.get(0).getId();
|
||||
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs)) {
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService
|
||||
.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
Integer notifMessagingId = notifMessagingVOs.get(0).getId();
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(tglKirim)) {
|
||||
|
||||
|
||||
List<Integer> ruanganTujuansId = new ArrayList<>();
|
||||
System.out.println("--");
|
||||
|
||||
if (!"".equals(idRuanganTujuan)){
|
||||
if (!"".equals(idRuanganTujuan)) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!"".equals(idRuanganTujuanA) && ruanganTujuansId.isEmpty()) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuanA);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
|
||||
MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
||||
|
||||
Pegawai pegawai = loginUser.get(0).getPegawai();
|
||||
Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
||||
|
||||
|
||||
if (ruanganTujuansId.size() > 0){
|
||||
try{
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
LOG.info(DateUtil.now()+" send notif dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
||||
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
if (!ruanganTujuansId.isEmpty())
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService,
|
||||
notifMessagingId, ruanganTujuansId);
|
||||
} else {
|
||||
JSONArray tglKirims = new JSONArray(tglKirim);
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
for (int i=0; i<tglKirims.length(); i++){
|
||||
for (int i = 0; i < tglKirims.length(); i++) {
|
||||
String ctglKirim = tglKirims.optString(i, "");
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i,0);
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
Date date = myFormat.parse(ctglKirim);
|
||||
|
||||
NotifMessagingSchedulerVO vo = new NotifMessagingSchedulerVO();
|
||||
|
||||
vo.setTglKirim(date);
|
||||
vo.setTerkirim(false);
|
||||
vo.setNotifMessagingId(notifMessagingId);
|
||||
vo.setRuanganIdAsal(ruanganAsalId);
|
||||
vo.setRuanganIdTujuan(cRuanganTujuanId);
|
||||
vo.setPegawaiId(loginUser.get(0).getPegawai().getId());
|
||||
|
||||
vo.setKdProfile((short)0);
|
||||
vo.setKdProfile((short) 0);
|
||||
vo.setKodeExternal("");
|
||||
vo.setNamaExternal("");
|
||||
vo.setReportDisplay("");
|
||||
vo.setStatusEnabled(true);
|
||||
|
||||
notifMessagingSchedulerService.add(vo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// <T extends BaseMasterVO> T convertToVO(T t, Object o){
|
||||
// BeanUtils.copyProperties(t, o);
|
||||
// return t;
|
||||
// }
|
||||
|
||||
// try{
|
||||
//
|
||||
//
|
||||
// String AlamatUrlForm =
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "" :
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
// String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN)
|
||||
// == null ? "" : request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
//
|
||||
// Authentication authentication =
|
||||
// tokenAuthenticationService.getAuthentication(request);
|
||||
//
|
||||
// namaUser = authentication.getName();
|
||||
// loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
//
|
||||
//
|
||||
// if (loginUser.isEmpty()) {
|
||||
// publisher.BroadcastMessage(KdRuangan, namaUser, AlamatUrlForm);
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//// String routingKeyAndQueueName = "ruanganId." + KdRuangan;
|
||||
////
|
||||
//// publisher.sendRabbitMQNotification("127.0.0.1", "ruanganId." +
|
||||
// KdRuangan, "Kd Ruangan : " + KdRuangan + ", AlamatUrlForm : " +
|
||||
// AlamatUrlForm);
|
||||
////
|
||||
//// subscriber.startRabbitMQNotification("127.0.0.1",
|
||||
// routingKeyAndQueueName);
|
||||
//// subscriber.listenRabbitMQNotification(routingKeyAndQueueName,
|
||||
// subscriber.getDefaultConsumer(), false);
|
||||
//// subscriber.stopRabbitMQNotification();
|
||||
//
|
||||
// }catch(Exception e){
|
||||
// //e.printStackTrace();
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// //String urlSocket = messagePublisher.GetSettingDataFixed("UrlRabbitMQMessaging"); sementara kunci dulu.
|
||||
//
|
||||
// String urlSocket = "127.0.0.1";
|
||||
//
|
||||
// List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
||||
//
|
||||
// if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// Integer ruanganIdtemp = 0;
|
||||
// boolean connect = false;
|
||||
//
|
||||
// for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
|
||||
// Ruangan ruangan = vo.getRuangan();
|
||||
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
||||
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
||||
// String customURLObjekModul = vo.getCustomURLObjekModul();
|
||||
// String titleNotifikasi = vo.getTitleNotifikasi();
|
||||
// String pesanNotifikasi = vo.getPesanNotifikasi();
|
||||
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
||||
//
|
||||
// if (ruangan.getId() == ruanganId){
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
||||
//
|
||||
// if (ruanganIdtemp != ruangan.getId()){
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
||||
// connect = true;
|
||||
// ruanganIdtemp = ruangan.getId();
|
||||
// }
|
||||
//
|
||||
// Map<String, Object> map = new HashMap<>();
|
||||
// map.put("title", titleNotifikasi);
|
||||
// map.put("dariRuangan", dariRuangan);
|
||||
// map.put("ruanganId", ruangan.getId());
|
||||
// map.put("ruangan", convertToVO(new RuanganVO(), ruangan));
|
||||
// map.put("modulAplikasi", convertToVO(new ModulAplikasiVO(), modulAplikasi));
|
||||
// map.put("objekModulAplikasi", convertToVO(new ObjekModulAplikasiVO(), objekModulAplikasi));
|
||||
// map.put("titleNotifikasi", titleNotifikasi);
|
||||
// map.put("pesanNotifikasi", pesanNotifikasi);
|
||||
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
||||
// map.put("fromPegawai", loginUser.get(0).getPegawai());
|
||||
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
|
||||
//
|
||||
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
||||
//
|
||||
// //messagePublisher.BroadcastMessage(map);
|
||||
// }
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
|
||||
|
||||
// private static final TypeAdapterFactory FACTORY = new TypeAdapterFactory() {
|
||||
// @Override
|
||||
// @SuppressWarnings("unchecked")
|
||||
// public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
||||
// return (HibernateProxy.class.isAssignableFrom(type.getRawType())
|
||||
// ? (TypeAdapter<T>) new HibernateProxyTypeAdapter((TypeAdapter)gson.getAdapter(TypeToken.get(type.getRawType().getSuperclass())))
|
||||
// : null);
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// private static final class HibernateProxyTypeAdapter extends TypeAdapter<HibernateProxy> {
|
||||
//
|
||||
// private final TypeAdapter<Object> delegate;
|
||||
//
|
||||
// private HibernateProxyTypeAdapter(TypeAdapter<Object> delegate) {
|
||||
// this.delegate = delegate;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public HibernateProxy read(JsonReader r) throws IOException {
|
||||
// throw new UnsupportedOperationException("Not supported");
|
||||
// }
|
||||
//
|
||||
// @SuppressWarnings({"rawtypes", "unchecked"})
|
||||
// @Override
|
||||
// public void write(JsonWriter out, HibernateProxy value) throws IOException {
|
||||
// if (value == null) {
|
||||
// out.nullValue();
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// delegate.write(out, ((HibernateProxy) value).getHibernateLazyInitializer().getImplementation());
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* else if (method.isAnnotationPresent(AppMenuPermision.class)){
|
||||
*
|
||||
* Authentication authentication =
|
||||
* tokenAuthenticationService.getAuthentication(request);
|
||||
*
|
||||
* String namaUser = authentication.getName();
|
||||
*
|
||||
* List<LoginUser> loginUser =
|
||||
* loginUserDao.findByNamaUser(namaUser);
|
||||
*
|
||||
* if (loginUser.isEmpty()) { // untuk testing false
|
||||
* response.addHeader("Access-Control-Expose-Headers",
|
||||
* "content-type");
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "User " +
|
||||
* namaUser + " can not access current menu ");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; }
|
||||
*
|
||||
* // get user login if (!loginUser.isEmpty()) { LoginUser user =
|
||||
* loginUser.get(0); }else{ LOG.info("User {} is unauthorized",
|
||||
* namaUser);
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
* "User is unauthorized");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; } }
|
||||
*/
|
||||
@ -106,7 +106,6 @@
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>${commons-io.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- For testing REST -->
|
||||
|
||||
@ -1,70 +1,50 @@
|
||||
package com.jasamedika.medifirst2000.interceptor;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.*;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.*;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.json.JSONArray;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.web.method.HandlerMethod;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.NotifikasiMessageObjekModulDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.KelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.LoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToKelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToLoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.notification.MessageSubscriber;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToKelompokUserService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToLoginUserService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
||||
import com.jasamedika.medifirst2000.service.ObjekModulAplikasiService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Interceptor class for All annotation method controller @AppPermission
|
||||
*
|
||||
* @author Roberto
|
||||
*
|
||||
* direka ulang oleh Syamsu
|
||||
* @author Roberto, direka ulang oleh Syamsu
|
||||
*/
|
||||
|
||||
public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
private static final String[] PRINT_PATTERN = {"/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_", "/print-" };
|
||||
|
||||
private static final String[] ADD_PATTERN = {"/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-"};
|
||||
|
||||
private static final String[] UPDATE_PATTERN = {"/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-"};
|
||||
private static final String[] PRINT_PATTERN = { "/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_",
|
||||
"/print-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = {"/delete_", "/delete-", "/hapus_", "/hapus-"};
|
||||
private static final String[] ADD_PATTERN = { "/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-" };
|
||||
|
||||
private final Logger LOG = LoggerFactory.getLogger(AppInterceptor.class);
|
||||
private static final String[] UPDATE_PATTERN = { "/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = { "/delete_", "/delete-", "/hapus_", "/hapus-" };
|
||||
|
||||
@Autowired
|
||||
private TokenAuthenticationService tokenAuthenticationService;
|
||||
@ -74,101 +54,55 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToKelompokUserService mapObjekModulToKelompokUserService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToLoginUserService mapObjekModulToLoginUserService;
|
||||
|
||||
@Autowired
|
||||
private ObjekModulAplikasiService<ObjekModulAplikasiVO> objekModulAplikasiService;
|
||||
|
||||
|
||||
@Autowired
|
||||
MessagePublisher<String, Object> messagePublisher;
|
||||
|
||||
@Autowired
|
||||
MessageSubscriber messageSubscriber;
|
||||
|
||||
@Autowired
|
||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulDao notifikasiModulMessageDao;
|
||||
|
||||
@Autowired
|
||||
RuanganDao ruanganDao;
|
||||
|
||||
List<LoginUser> loginUser;
|
||||
|
||||
String namaUser;
|
||||
|
||||
// private int headerActionToAction(String action){
|
||||
// if ("save".equals(action)){
|
||||
// return AppPermission.ADD;
|
||||
// } else if ("edit".equals(action)){
|
||||
// return AppPermission.UPDATE;
|
||||
// } else if ("delete".equals(action)){
|
||||
// return AppPermission.DELETE;
|
||||
// } else if ("print".equals(action)){
|
||||
// return AppPermission.PRINT;
|
||||
// } else {
|
||||
// return AppPermission.VIEW;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
private boolean contains(String source, String[] matchers){
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers)){
|
||||
|
||||
private boolean contains(String source, String[] matchers) {
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers))
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i=0;i<matchers.length; i++){
|
||||
if (source.contains(matchers[i])){
|
||||
for (String matcher : matchers)
|
||||
if (source.contains(matcher))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private String filterUrlForm(String urlForm){
|
||||
|
||||
|
||||
private String filterUrlForm(String urlForm) {
|
||||
String[] hasil = urlForm.split("/");
|
||||
System.out.println(hasil.length);
|
||||
StringBuilder potongan = new StringBuilder();
|
||||
for (int i=0; i<hasil.length && i<3; i++){
|
||||
for (int i = 0; i < hasil.length && i < 3; i++)
|
||||
potongan.append(hasil[i]).append("/");
|
||||
}
|
||||
// String current = urlForm;
|
||||
// int pos = 0;
|
||||
// int cpos = -1;
|
||||
// for (int i=0; i<4; i++){
|
||||
// pos = current.indexOf('/',pos+1);
|
||||
// if (pos > 0){
|
||||
// cpos = pos;
|
||||
// }else{
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// String oye = urlForm.substring(0, cpos);
|
||||
return potongan.toString();
|
||||
}
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, boolean supervisi) throws Exception {
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
boolean supervisi) throws Exception {
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
LOG.info("Empty login user");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Empty login user");
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
@ -176,132 +110,92 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
int result = -1;
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
KelompokUser role = user.getKelompokUser();
|
||||
int result = -2;
|
||||
|
||||
if (role != null) {
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
result = -1;
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, int action) throws Exception {
|
||||
// Alter modified Syamsu
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi)){
|
||||
LOG.warn(AlamatUrlForm + " : Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar objek modul aplikasi..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
}
|
||||
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false)) {
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
int action) throws Exception {
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService
|
||||
.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi))
|
||||
return true;
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false))
|
||||
return false;
|
||||
}
|
||||
|
||||
int resultUser = checkUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultUser == 0){
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
return false;
|
||||
} else if (resultUser == 1){
|
||||
} else if (resultUser == 1) {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
int resultKelompokUser = checkKelompokUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultKelompokUser == -2){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no role to gain access restricted area", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no role to gain access restricted area");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == -1){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar Map objek modul to kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no access to module application", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no access to module application");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultKelompokUser == -2) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == -1) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
@ -310,113 +204,54 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* return true untuk valid permission request ke controller method
|
||||
*/
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||
////// Syamsu /////
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||
HandlerMethod hm;
|
||||
Method method = null;
|
||||
// int methodApp = AppPermission.VIEW;
|
||||
|
||||
Method method;
|
||||
response.setHeader("Access-Control-Expose-Headers", "RequireSupervisor" + ","
|
||||
+ Constants.MessageInfo.ERROR_MESSAGE + "," + Constants.MessageInfo.INFO_MESSAGE);
|
||||
|
||||
////// Syamsu /////
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "": request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
|
||||
// Buat Om, Kang, Aa Reza terkait Security Role
|
||||
//String KdRuangan = null;
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? "": request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
int action = AppPermission.VIEW;
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm)){
|
||||
//LOG.warn("Sementara defaultnya di loloskan semuanya di AppInterceptor jika tidak ada header 'AlamatUrlForm' ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan)){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada header 'KdRuangan' atau header 'KdRuangan'nya 0 ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
//String headerAction = request.getHeader(Constants.HttpHeader.ACTION) == null ? "" : request.getHeader(Constants.HttpHeader.ACTION);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm))
|
||||
return true;
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan))
|
||||
return true;
|
||||
String URI = request.getRequestURI();
|
||||
String methodHttp = request.getMethod();
|
||||
|
||||
try {
|
||||
// Alter modified Syamsu
|
||||
if (handler instanceof org.springframework.web.method.HandlerMethod) {
|
||||
hm = (HandlerMethod) handler;
|
||||
method = hm.getMethod();
|
||||
} else {
|
||||
return checkAuthSecure(request, response, AlamatUrlForm, true);
|
||||
}
|
||||
|
||||
// AlamatUrlForm // Alter modified Syamsu
|
||||
boolean usingAnno = method != null && method.isAnnotationPresent(AppPermission.class);
|
||||
|
||||
boolean postM = "POST".equals(methodHttp);
|
||||
boolean signInOut = !URI.contains("auth/sign-in") && !URI.contains("auth/sign-out");
|
||||
boolean getM = "GET".equals(methodHttp);
|
||||
boolean cetak = contains (URI, PRINT_PATTERN);
|
||||
|
||||
/*(URI.contains("/lap_") || URI.contains("/lap-") || URI.contains("/lap")
|
||||
|| URI.contains("/cetak_") || URI.contains("/print_") || URI.contains("/cetak-")
|
||||
|| URI.contains("/print-"));*/
|
||||
|
||||
boolean simpan = contains (URI, ADD_PATTERN);
|
||||
|
||||
/*(URI.contains("/save_") || URI.contains("/add_") || URI.contains("/simpan_")
|
||||
|| URI.contains("/save-") || URI.contains("/add-") || URI.contains("/simpan-"));*/
|
||||
|
||||
boolean ubah = contains (URI, UPDATE_PATTERN);
|
||||
|
||||
/*(URI.contains("/update_") || URI.contains("/edit_") || URI.contains("/ubah_")
|
||||
|| URI.contains("/update-") || URI.contains("/edit-") || URI.contains("/ubah-"));*/
|
||||
|
||||
boolean hapus = contains (URI, DELETE_PATTERN);
|
||||
|
||||
/*(URI.contains("/delete_") || URI.contains("/hapus_") || URI.contains("/delete-")
|
||||
|| URI.contains("/hapus-")); */
|
||||
|
||||
boolean cetak = contains(URI, PRINT_PATTERN);
|
||||
boolean simpan = contains(URI, ADD_PATTERN);
|
||||
boolean ubah = contains(URI, UPDATE_PATTERN);
|
||||
boolean hapus = contains(URI, DELETE_PATTERN);
|
||||
if (usingAnno) {
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
if (AppPermission.SPECIALS == action /* && "#/home".equals(AlamatUrlForm) */) {
|
||||
if (AppPermission.SPECIALS == action)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (getM && cetak) {
|
||||
|
||||
action = AppPermission.PRINT;
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
}
|
||||
|
||||
if ((usingAnno || postM) && signInOut) {
|
||||
|
||||
if (simpan) {
|
||||
action = AppPermission.ADD;
|
||||
} else if (ubah) {
|
||||
@ -426,345 +261,104 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
} else if (cetak) {
|
||||
action = AppPermission.PRINT;
|
||||
}
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.out.println("Not Found " + request.getRequestURL());
|
||||
|
||||
LOG.info("Error accured unauthorized");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Something wrong happened");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) throws Exception {}
|
||||
|
||||
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex) throws Exception {
|
||||
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex)
|
||||
throws Exception {
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String idRuanganTujuan = request.getHeader(Constants.HttpHeader.KD_RUANGAN_T) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_T);
|
||||
|
||||
String idRuanganTujuanA = request.getHeader(Constants.HttpHeader.KD_RUANGAN_A) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_A);
|
||||
|
||||
String tglKirim = request.getHeader(Constants.HttpHeader.TGL_KIRIM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.TGL_KIRIM);
|
||||
|
||||
boolean notHttpOK = response.getStatus() >= HttpServletResponse.SC_BAD_REQUEST;
|
||||
boolean notLewatMenu = CommonUtil.isNullOrEmpty(AlamatUrlForm) || CommonUtil.isNullOrEmpty(KdRuangan);
|
||||
|
||||
Integer ruanganAsalId = 0;
|
||||
|
||||
try {
|
||||
ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
}catch(Exception e){
|
||||
ex = e;
|
||||
}
|
||||
|
||||
|
||||
Integer ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
boolean adaError = CommonUtil.isNotNullOrEmpty(ex);
|
||||
if (notHttpOK || notLewatMenu || adaError){
|
||||
if (notHttpOK || notLewatMenu || adaError)
|
||||
return;
|
||||
}
|
||||
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(authentication)){
|
||||
if (CommonUtil.isNullOrEmpty(authentication))
|
||||
return;
|
||||
}
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
if (CommonUtil.isNullOrEmpty(loginUser))
|
||||
return;
|
||||
}
|
||||
|
||||
String potongan = filterUrlForm(AlamatUrlForm);
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasiVOs = objekModulAplikasiService.findByAlamatUrlForm(potongan);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs)){
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
String URI = request.getRequestURI();
|
||||
|
||||
Integer objekModulAplikasId = objekModulAplikasiVOs.get(0).getId();
|
||||
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs)) {
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService
|
||||
.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
Integer notifMessagingId = notifMessagingVOs.get(0).getId();
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(tglKirim)) {
|
||||
|
||||
|
||||
List<Integer> ruanganTujuansId = new ArrayList<>();
|
||||
System.out.println("--");
|
||||
|
||||
if (!"".equals(idRuanganTujuan)){
|
||||
if (!"".equals(idRuanganTujuan)) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!"".equals(idRuanganTujuanA) && ruanganTujuansId.isEmpty()) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuanA);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
|
||||
MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
||||
|
||||
Pegawai pegawai = loginUser.get(0).getPegawai();
|
||||
Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
||||
|
||||
|
||||
if (ruanganTujuansId.size() > 0){
|
||||
try{
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
LOG.info(DateUtil.now()+" send notif dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
||||
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
if (!ruanganTujuansId.isEmpty())
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService,
|
||||
notifMessagingId, ruanganTujuansId);
|
||||
} else {
|
||||
JSONArray tglKirims = new JSONArray(tglKirim);
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
for (int i=0; i<tglKirims.length(); i++){
|
||||
for (int i = 0; i < tglKirims.length(); i++) {
|
||||
String ctglKirim = tglKirims.optString(i, "");
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i,0);
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
Date date = myFormat.parse(ctglKirim);
|
||||
|
||||
NotifMessagingSchedulerVO vo = new NotifMessagingSchedulerVO();
|
||||
|
||||
vo.setTglKirim(date);
|
||||
vo.setTerkirim(false);
|
||||
vo.setNotifMessagingId(notifMessagingId);
|
||||
vo.setRuanganIdAsal(ruanganAsalId);
|
||||
vo.setRuanganIdTujuan(cRuanganTujuanId);
|
||||
vo.setPegawaiId(loginUser.get(0).getPegawai().getId());
|
||||
|
||||
vo.setKdProfile((short)0);
|
||||
vo.setKdProfile((short) 0);
|
||||
vo.setKodeExternal("");
|
||||
vo.setNamaExternal("");
|
||||
vo.setReportDisplay("");
|
||||
vo.setStatusEnabled(true);
|
||||
|
||||
notifMessagingSchedulerService.add(vo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// <T extends BaseMasterVO> T convertToVO(T t, Object o){
|
||||
// BeanUtils.copyProperties(t, o);
|
||||
// return t;
|
||||
// }
|
||||
|
||||
// try{
|
||||
//
|
||||
//
|
||||
// String AlamatUrlForm =
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "" :
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
// String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN)
|
||||
// == null ? "" : request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
//
|
||||
// Authentication authentication =
|
||||
// tokenAuthenticationService.getAuthentication(request);
|
||||
//
|
||||
// namaUser = authentication.getName();
|
||||
// loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
//
|
||||
//
|
||||
// if (loginUser.isEmpty()) {
|
||||
// publisher.BroadcastMessage(KdRuangan, namaUser, AlamatUrlForm);
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//// String routingKeyAndQueueName = "ruanganId." + KdRuangan;
|
||||
////
|
||||
//// publisher.sendRabbitMQNotification("127.0.0.1", "ruanganId." +
|
||||
// KdRuangan, "Kd Ruangan : " + KdRuangan + ", AlamatUrlForm : " +
|
||||
// AlamatUrlForm);
|
||||
////
|
||||
//// subscriber.startRabbitMQNotification("127.0.0.1",
|
||||
// routingKeyAndQueueName);
|
||||
//// subscriber.listenRabbitMQNotification(routingKeyAndQueueName,
|
||||
// subscriber.getDefaultConsumer(), false);
|
||||
//// subscriber.stopRabbitMQNotification();
|
||||
//
|
||||
// }catch(Exception e){
|
||||
// //e.printStackTrace();
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// //String urlSocket = messagePublisher.GetSettingDataFixed("UrlRabbitMQMessaging"); sementara kunci dulu.
|
||||
//
|
||||
// String urlSocket = "127.0.0.1";
|
||||
//
|
||||
// List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
||||
//
|
||||
// if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// Integer ruanganIdtemp = 0;
|
||||
// boolean connect = false;
|
||||
//
|
||||
// for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
|
||||
// Ruangan ruangan = vo.getRuangan();
|
||||
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
||||
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
||||
// String customURLObjekModul = vo.getCustomURLObjekModul();
|
||||
// String titleNotifikasi = vo.getTitleNotifikasi();
|
||||
// String pesanNotifikasi = vo.getPesanNotifikasi();
|
||||
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
||||
//
|
||||
// if (ruangan.getId() == ruanganId){
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
||||
//
|
||||
// if (ruanganIdtemp != ruangan.getId()){
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
||||
// connect = true;
|
||||
// ruanganIdtemp = ruangan.getId();
|
||||
// }
|
||||
//
|
||||
// Map<String, Object> map = new HashMap<>();
|
||||
// map.put("title", titleNotifikasi);
|
||||
// map.put("dariRuangan", dariRuangan);
|
||||
// map.put("ruanganId", ruangan.getId());
|
||||
// map.put("ruangan", convertToVO(new RuanganVO(), ruangan));
|
||||
// map.put("modulAplikasi", convertToVO(new ModulAplikasiVO(), modulAplikasi));
|
||||
// map.put("objekModulAplikasi", convertToVO(new ObjekModulAplikasiVO(), objekModulAplikasi));
|
||||
// map.put("titleNotifikasi", titleNotifikasi);
|
||||
// map.put("pesanNotifikasi", pesanNotifikasi);
|
||||
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
||||
// map.put("fromPegawai", loginUser.get(0).getPegawai());
|
||||
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
|
||||
//
|
||||
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
||||
//
|
||||
// //messagePublisher.BroadcastMessage(map);
|
||||
// }
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
|
||||
|
||||
// private static final TypeAdapterFactory FACTORY = new TypeAdapterFactory() {
|
||||
// @Override
|
||||
// @SuppressWarnings("unchecked")
|
||||
// public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
||||
// return (HibernateProxy.class.isAssignableFrom(type.getRawType())
|
||||
// ? (TypeAdapter<T>) new HibernateProxyTypeAdapter((TypeAdapter)gson.getAdapter(TypeToken.get(type.getRawType().getSuperclass())))
|
||||
// : null);
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// private static final class HibernateProxyTypeAdapter extends TypeAdapter<HibernateProxy> {
|
||||
//
|
||||
// private final TypeAdapter<Object> delegate;
|
||||
//
|
||||
// private HibernateProxyTypeAdapter(TypeAdapter<Object> delegate) {
|
||||
// this.delegate = delegate;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public HibernateProxy read(JsonReader r) throws IOException {
|
||||
// throw new UnsupportedOperationException("Not supported");
|
||||
// }
|
||||
//
|
||||
// @SuppressWarnings({"rawtypes", "unchecked"})
|
||||
// @Override
|
||||
// public void write(JsonWriter out, HibernateProxy value) throws IOException {
|
||||
// if (value == null) {
|
||||
// out.nullValue();
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// delegate.write(out, ((HibernateProxy) value).getHibernateLazyInitializer().getImplementation());
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* else if (method.isAnnotationPresent(AppMenuPermision.class)){
|
||||
*
|
||||
* Authentication authentication =
|
||||
* tokenAuthenticationService.getAuthentication(request);
|
||||
*
|
||||
* String namaUser = authentication.getName();
|
||||
*
|
||||
* List<LoginUser> loginUser =
|
||||
* loginUserDao.findByNamaUser(namaUser);
|
||||
*
|
||||
* if (loginUser.isEmpty()) { // untuk testing false
|
||||
* response.addHeader("Access-Control-Expose-Headers",
|
||||
* "content-type");
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "User " +
|
||||
* namaUser + " can not access current menu ");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; }
|
||||
*
|
||||
* // get user login if (!loginUser.isEmpty()) { LoginUser user =
|
||||
* loginUser.get(0); }else{ LOG.info("User {} is unauthorized",
|
||||
* namaUser);
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
* "User is unauthorized");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; } }
|
||||
*/
|
||||
@ -106,7 +106,6 @@
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>${commons-io.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- For testing REST -->
|
||||
|
||||
@ -1,70 +1,49 @@
|
||||
package com.jasamedika.medifirst2000.interceptor;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.*;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.*;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.json.JSONArray;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.web.method.HandlerMethod;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.NotifikasiMessageObjekModulDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.KelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.LoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToKelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToLoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.notification.MessageSubscriber;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToKelompokUserService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToLoginUserService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
||||
import com.jasamedika.medifirst2000.service.ObjekModulAplikasiService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Interceptor class for All annotation method controller @AppPermission
|
||||
*
|
||||
* @author Roberto
|
||||
*
|
||||
* direka ulang oleh Syamsu
|
||||
* @author Roberto, direka ulang oleh Syamsu
|
||||
*/
|
||||
|
||||
public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
private static final String[] PRINT_PATTERN = {"/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_", "/print-" };
|
||||
|
||||
private static final String[] ADD_PATTERN = {"/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-"};
|
||||
|
||||
private static final String[] UPDATE_PATTERN = {"/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-"};
|
||||
private static final String[] PRINT_PATTERN = { "/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_",
|
||||
"/print-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = {"/delete_", "/delete-", "/hapus_", "/hapus-"};
|
||||
private static final String[] ADD_PATTERN = { "/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-" };
|
||||
|
||||
private final Logger LOG = LoggerFactory.getLogger(AppInterceptor.class);
|
||||
private static final String[] UPDATE_PATTERN = { "/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = { "/delete_", "/delete-", "/hapus_", "/hapus-" };
|
||||
|
||||
@Autowired
|
||||
private TokenAuthenticationService tokenAuthenticationService;
|
||||
@ -74,101 +53,55 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToKelompokUserService mapObjekModulToKelompokUserService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToLoginUserService mapObjekModulToLoginUserService;
|
||||
|
||||
@Autowired
|
||||
private ObjekModulAplikasiService<ObjekModulAplikasiVO> objekModulAplikasiService;
|
||||
|
||||
|
||||
@Autowired
|
||||
MessagePublisher<String, Object> messagePublisher;
|
||||
|
||||
@Autowired
|
||||
MessageSubscriber messageSubscriber;
|
||||
|
||||
@Autowired
|
||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulDao notifikasiModulMessageDao;
|
||||
|
||||
@Autowired
|
||||
RuanganDao ruanganDao;
|
||||
|
||||
List<LoginUser> loginUser;
|
||||
|
||||
String namaUser;
|
||||
|
||||
// private int headerActionToAction(String action){
|
||||
// if ("save".equals(action)){
|
||||
// return AppPermission.ADD;
|
||||
// } else if ("edit".equals(action)){
|
||||
// return AppPermission.UPDATE;
|
||||
// } else if ("delete".equals(action)){
|
||||
// return AppPermission.DELETE;
|
||||
// } else if ("print".equals(action)){
|
||||
// return AppPermission.PRINT;
|
||||
// } else {
|
||||
// return AppPermission.VIEW;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
private boolean contains(String source, String[] matchers){
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers)){
|
||||
|
||||
private boolean contains(String source, String[] matchers) {
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers))
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i=0;i<matchers.length; i++){
|
||||
if (source.contains(matchers[i])){
|
||||
for (String matcher : matchers)
|
||||
if (source.contains(matcher))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private String filterUrlForm(String urlForm){
|
||||
|
||||
|
||||
private String filterUrlForm(String urlForm) {
|
||||
String[] hasil = urlForm.split("/");
|
||||
System.out.println(hasil.length);
|
||||
StringBuilder potongan = new StringBuilder();
|
||||
for (int i=0; i<hasil.length && i<3; i++){
|
||||
for (int i = 0; i < hasil.length && i < 3; i++)
|
||||
potongan.append(hasil[i]).append("/");
|
||||
}
|
||||
// String current = urlForm;
|
||||
// int pos = 0;
|
||||
// int cpos = -1;
|
||||
// for (int i=0; i<4; i++){
|
||||
// pos = current.indexOf('/',pos+1);
|
||||
// if (pos > 0){
|
||||
// cpos = pos;
|
||||
// }else{
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// String oye = urlForm.substring(0, cpos);
|
||||
return potongan.toString();
|
||||
}
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, boolean supervisi) throws Exception {
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
boolean supervisi) throws Exception {
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
LOG.info("Empty login user");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Empty login user");
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
@ -176,132 +109,92 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
int result = -1;
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
KelompokUser role = user.getKelompokUser();
|
||||
int result = -2;
|
||||
|
||||
if (role != null) {
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
result = -1;
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, int action) throws Exception {
|
||||
// Alter modified Syamsu
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi)){
|
||||
LOG.warn(AlamatUrlForm + " : Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar objek modul aplikasi..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
}
|
||||
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false)) {
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
int action) throws Exception {
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService
|
||||
.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi))
|
||||
return true;
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false))
|
||||
return false;
|
||||
}
|
||||
|
||||
int resultUser = checkUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultUser == 0){
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
return false;
|
||||
} else if (resultUser == 1){
|
||||
} else if (resultUser == 1) {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
int resultKelompokUser = checkKelompokUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultKelompokUser == -2){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no role to gain access restricted area", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no role to gain access restricted area");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == -1){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar Map objek modul to kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no access to module application", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no access to module application");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultKelompokUser == -2) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == -1) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
@ -310,113 +203,54 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* return true untuk valid permission request ke controller method
|
||||
*/
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||
////// Syamsu /////
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||
HandlerMethod hm;
|
||||
Method method = null;
|
||||
// int methodApp = AppPermission.VIEW;
|
||||
|
||||
Method method;
|
||||
response.setHeader("Access-Control-Expose-Headers", "RequireSupervisor" + ","
|
||||
+ Constants.MessageInfo.ERROR_MESSAGE + "," + Constants.MessageInfo.INFO_MESSAGE);
|
||||
|
||||
////// Syamsu /////
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "": request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
|
||||
// Buat Om, Kang, Aa Reza terkait Security Role
|
||||
//String KdRuangan = null;
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? "": request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
int action = AppPermission.VIEW;
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm)){
|
||||
//LOG.warn("Sementara defaultnya di loloskan semuanya di AppInterceptor jika tidak ada header 'AlamatUrlForm' ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan)){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada header 'KdRuangan' atau header 'KdRuangan'nya 0 ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
//String headerAction = request.getHeader(Constants.HttpHeader.ACTION) == null ? "" : request.getHeader(Constants.HttpHeader.ACTION);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm))
|
||||
return true;
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan))
|
||||
return true;
|
||||
String URI = request.getRequestURI();
|
||||
String methodHttp = request.getMethod();
|
||||
|
||||
try {
|
||||
// Alter modified Syamsu
|
||||
if (handler instanceof org.springframework.web.method.HandlerMethod) {
|
||||
hm = (HandlerMethod) handler;
|
||||
method = hm.getMethod();
|
||||
} else {
|
||||
return checkAuthSecure(request, response, AlamatUrlForm, true);
|
||||
}
|
||||
|
||||
// AlamatUrlForm // Alter modified Syamsu
|
||||
boolean usingAnno = method != null && method.isAnnotationPresent(AppPermission.class);
|
||||
|
||||
boolean postM = "POST".equals(methodHttp);
|
||||
boolean signInOut = !URI.contains("auth/sign-in") && !URI.contains("auth/sign-out");
|
||||
boolean getM = "GET".equals(methodHttp);
|
||||
boolean cetak = contains (URI, PRINT_PATTERN);
|
||||
|
||||
/*(URI.contains("/lap_") || URI.contains("/lap-") || URI.contains("/lap")
|
||||
|| URI.contains("/cetak_") || URI.contains("/print_") || URI.contains("/cetak-")
|
||||
|| URI.contains("/print-"));*/
|
||||
|
||||
boolean simpan = contains (URI, ADD_PATTERN);
|
||||
|
||||
/*(URI.contains("/save_") || URI.contains("/add_") || URI.contains("/simpan_")
|
||||
|| URI.contains("/save-") || URI.contains("/add-") || URI.contains("/simpan-"));*/
|
||||
|
||||
boolean ubah = contains (URI, UPDATE_PATTERN);
|
||||
|
||||
/*(URI.contains("/update_") || URI.contains("/edit_") || URI.contains("/ubah_")
|
||||
|| URI.contains("/update-") || URI.contains("/edit-") || URI.contains("/ubah-"));*/
|
||||
|
||||
boolean hapus = contains (URI, DELETE_PATTERN);
|
||||
|
||||
/*(URI.contains("/delete_") || URI.contains("/hapus_") || URI.contains("/delete-")
|
||||
|| URI.contains("/hapus-")); */
|
||||
|
||||
boolean cetak = contains(URI, PRINT_PATTERN);
|
||||
boolean simpan = contains(URI, ADD_PATTERN);
|
||||
boolean ubah = contains(URI, UPDATE_PATTERN);
|
||||
boolean hapus = contains(URI, DELETE_PATTERN);
|
||||
if (usingAnno) {
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
if (AppPermission.SPECIALS == action /* && "#/home".equals(AlamatUrlForm) */) {
|
||||
if (AppPermission.SPECIALS == action)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (getM && cetak) {
|
||||
|
||||
action = AppPermission.PRINT;
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
}
|
||||
|
||||
if ((usingAnno || postM) && signInOut) {
|
||||
|
||||
if (simpan) {
|
||||
action = AppPermission.ADD;
|
||||
} else if (ubah) {
|
||||
@ -426,345 +260,104 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
} else if (cetak) {
|
||||
action = AppPermission.PRINT;
|
||||
}
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.out.println("Not Found " + request.getRequestURL());
|
||||
|
||||
LOG.info("Error accured unauthorized");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Something wrong happened");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) throws Exception {}
|
||||
|
||||
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex) throws Exception {
|
||||
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex)
|
||||
throws Exception {
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String idRuanganTujuan = request.getHeader(Constants.HttpHeader.KD_RUANGAN_T) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_T);
|
||||
|
||||
String idRuanganTujuanA = request.getHeader(Constants.HttpHeader.KD_RUANGAN_A) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_A);
|
||||
|
||||
String tglKirim = request.getHeader(Constants.HttpHeader.TGL_KIRIM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.TGL_KIRIM);
|
||||
|
||||
boolean notHttpOK = response.getStatus() >= HttpServletResponse.SC_BAD_REQUEST;
|
||||
boolean notLewatMenu = CommonUtil.isNullOrEmpty(AlamatUrlForm) || CommonUtil.isNullOrEmpty(KdRuangan);
|
||||
|
||||
Integer ruanganAsalId = 0;
|
||||
|
||||
try {
|
||||
ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
}catch(Exception e){
|
||||
ex = e;
|
||||
}
|
||||
|
||||
|
||||
Integer ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
boolean adaError = CommonUtil.isNotNullOrEmpty(ex);
|
||||
if (notHttpOK || notLewatMenu || adaError){
|
||||
if (notHttpOK || notLewatMenu || adaError)
|
||||
return;
|
||||
}
|
||||
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(authentication)){
|
||||
if (CommonUtil.isNullOrEmpty(authentication))
|
||||
return;
|
||||
}
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
if (CommonUtil.isNullOrEmpty(loginUser))
|
||||
return;
|
||||
}
|
||||
|
||||
String potongan = filterUrlForm(AlamatUrlForm);
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasiVOs = objekModulAplikasiService.findByAlamatUrlForm(potongan);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs)){
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
String URI = request.getRequestURI();
|
||||
|
||||
Integer objekModulAplikasId = objekModulAplikasiVOs.get(0).getId();
|
||||
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs)) {
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService
|
||||
.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
Integer notifMessagingId = notifMessagingVOs.get(0).getId();
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(tglKirim)) {
|
||||
|
||||
|
||||
List<Integer> ruanganTujuansId = new ArrayList<>();
|
||||
System.out.println("--");
|
||||
|
||||
if (!"".equals(idRuanganTujuan)){
|
||||
if (!"".equals(idRuanganTujuan)) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!"".equals(idRuanganTujuanA) && ruanganTujuansId.isEmpty()) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuanA);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
|
||||
MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
||||
|
||||
Pegawai pegawai = loginUser.get(0).getPegawai();
|
||||
Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
||||
|
||||
|
||||
if (ruanganTujuansId.size() > 0){
|
||||
try{
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
LOG.info(DateUtil.now()+" send notif dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
||||
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
if (!ruanganTujuansId.isEmpty())
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService,
|
||||
notifMessagingId, ruanganTujuansId);
|
||||
} else {
|
||||
JSONArray tglKirims = new JSONArray(tglKirim);
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
for (int i=0; i<tglKirims.length(); i++){
|
||||
for (int i = 0; i < tglKirims.length(); i++) {
|
||||
String ctglKirim = tglKirims.optString(i, "");
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i,0);
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
Date date = myFormat.parse(ctglKirim);
|
||||
|
||||
NotifMessagingSchedulerVO vo = new NotifMessagingSchedulerVO();
|
||||
|
||||
vo.setTglKirim(date);
|
||||
vo.setTerkirim(false);
|
||||
vo.setNotifMessagingId(notifMessagingId);
|
||||
vo.setRuanganIdAsal(ruanganAsalId);
|
||||
vo.setRuanganIdTujuan(cRuanganTujuanId);
|
||||
vo.setPegawaiId(loginUser.get(0).getPegawai().getId());
|
||||
|
||||
vo.setKdProfile((short)0);
|
||||
vo.setKdProfile((short) 0);
|
||||
vo.setKodeExternal("");
|
||||
vo.setNamaExternal("");
|
||||
vo.setReportDisplay("");
|
||||
vo.setStatusEnabled(true);
|
||||
|
||||
notifMessagingSchedulerService.add(vo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// <T extends BaseMasterVO> T convertToVO(T t, Object o){
|
||||
// BeanUtils.copyProperties(t, o);
|
||||
// return t;
|
||||
// }
|
||||
|
||||
// try{
|
||||
//
|
||||
//
|
||||
// String AlamatUrlForm =
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "" :
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
// String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN)
|
||||
// == null ? "" : request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
//
|
||||
// Authentication authentication =
|
||||
// tokenAuthenticationService.getAuthentication(request);
|
||||
//
|
||||
// namaUser = authentication.getName();
|
||||
// loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
//
|
||||
//
|
||||
// if (loginUser.isEmpty()) {
|
||||
// publisher.BroadcastMessage(KdRuangan, namaUser, AlamatUrlForm);
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//// String routingKeyAndQueueName = "ruanganId." + KdRuangan;
|
||||
////
|
||||
//// publisher.sendRabbitMQNotification("127.0.0.1", "ruanganId." +
|
||||
// KdRuangan, "Kd Ruangan : " + KdRuangan + ", AlamatUrlForm : " +
|
||||
// AlamatUrlForm);
|
||||
////
|
||||
//// subscriber.startRabbitMQNotification("127.0.0.1",
|
||||
// routingKeyAndQueueName);
|
||||
//// subscriber.listenRabbitMQNotification(routingKeyAndQueueName,
|
||||
// subscriber.getDefaultConsumer(), false);
|
||||
//// subscriber.stopRabbitMQNotification();
|
||||
//
|
||||
// }catch(Exception e){
|
||||
// //e.printStackTrace();
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// //String urlSocket = messagePublisher.GetSettingDataFixed("UrlRabbitMQMessaging"); sementara kunci dulu.
|
||||
//
|
||||
// String urlSocket = "127.0.0.1";
|
||||
//
|
||||
// List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
||||
//
|
||||
// if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// Integer ruanganIdtemp = 0;
|
||||
// boolean connect = false;
|
||||
//
|
||||
// for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
|
||||
// Ruangan ruangan = vo.getRuangan();
|
||||
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
||||
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
||||
// String customURLObjekModul = vo.getCustomURLObjekModul();
|
||||
// String titleNotifikasi = vo.getTitleNotifikasi();
|
||||
// String pesanNotifikasi = vo.getPesanNotifikasi();
|
||||
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
||||
//
|
||||
// if (ruangan.getId() == ruanganId){
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
||||
//
|
||||
// if (ruanganIdtemp != ruangan.getId()){
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
||||
// connect = true;
|
||||
// ruanganIdtemp = ruangan.getId();
|
||||
// }
|
||||
//
|
||||
// Map<String, Object> map = new HashMap<>();
|
||||
// map.put("title", titleNotifikasi);
|
||||
// map.put("dariRuangan", dariRuangan);
|
||||
// map.put("ruanganId", ruangan.getId());
|
||||
// map.put("ruangan", convertToVO(new RuanganVO(), ruangan));
|
||||
// map.put("modulAplikasi", convertToVO(new ModulAplikasiVO(), modulAplikasi));
|
||||
// map.put("objekModulAplikasi", convertToVO(new ObjekModulAplikasiVO(), objekModulAplikasi));
|
||||
// map.put("titleNotifikasi", titleNotifikasi);
|
||||
// map.put("pesanNotifikasi", pesanNotifikasi);
|
||||
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
||||
// map.put("fromPegawai", loginUser.get(0).getPegawai());
|
||||
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
|
||||
//
|
||||
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
||||
//
|
||||
// //messagePublisher.BroadcastMessage(map);
|
||||
// }
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
|
||||
|
||||
// private static final TypeAdapterFactory FACTORY = new TypeAdapterFactory() {
|
||||
// @Override
|
||||
// @SuppressWarnings("unchecked")
|
||||
// public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
||||
// return (HibernateProxy.class.isAssignableFrom(type.getRawType())
|
||||
// ? (TypeAdapter<T>) new HibernateProxyTypeAdapter((TypeAdapter)gson.getAdapter(TypeToken.get(type.getRawType().getSuperclass())))
|
||||
// : null);
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// private static final class HibernateProxyTypeAdapter extends TypeAdapter<HibernateProxy> {
|
||||
//
|
||||
// private final TypeAdapter<Object> delegate;
|
||||
//
|
||||
// private HibernateProxyTypeAdapter(TypeAdapter<Object> delegate) {
|
||||
// this.delegate = delegate;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public HibernateProxy read(JsonReader r) throws IOException {
|
||||
// throw new UnsupportedOperationException("Not supported");
|
||||
// }
|
||||
//
|
||||
// @SuppressWarnings({"rawtypes", "unchecked"})
|
||||
// @Override
|
||||
// public void write(JsonWriter out, HibernateProxy value) throws IOException {
|
||||
// if (value == null) {
|
||||
// out.nullValue();
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// delegate.write(out, ((HibernateProxy) value).getHibernateLazyInitializer().getImplementation());
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* else if (method.isAnnotationPresent(AppMenuPermision.class)){
|
||||
*
|
||||
* Authentication authentication =
|
||||
* tokenAuthenticationService.getAuthentication(request);
|
||||
*
|
||||
* String namaUser = authentication.getName();
|
||||
*
|
||||
* List<LoginUser> loginUser =
|
||||
* loginUserDao.findByNamaUser(namaUser);
|
||||
*
|
||||
* if (loginUser.isEmpty()) { // untuk testing false
|
||||
* response.addHeader("Access-Control-Expose-Headers",
|
||||
* "content-type");
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "User " +
|
||||
* namaUser + " can not access current menu ");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; }
|
||||
*
|
||||
* // get user login if (!loginUser.isEmpty()) { LoginUser user =
|
||||
* loginUser.get(0); }else{ LOG.info("User {} is unauthorized",
|
||||
* namaUser);
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
* "User is unauthorized");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; } }
|
||||
*/
|
||||
}
|
||||
@ -102,7 +102,6 @@
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>${commons-io.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- For testing REST -->
|
||||
@ -202,6 +201,16 @@
|
||||
<groupId>net.sf.jasperreports</groupId>
|
||||
<artifactId>jasperreports</artifactId>
|
||||
<version>6.11.0</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>com.lowagie</groupId>
|
||||
<artifactId>itext</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.olap4j</groupId>
|
||||
<artifactId>olap4j</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
|
||||
@ -1,70 +1,49 @@
|
||||
package com.jasamedika.medifirst2000.interceptor;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.*;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.*;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.json.JSONArray;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.web.method.HandlerMethod;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.NotifikasiMessageObjekModulDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.KelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.LoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToKelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToLoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.notification.MessageSubscriber;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToKelompokUserService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToLoginUserService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
||||
import com.jasamedika.medifirst2000.service.ObjekModulAplikasiService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Interceptor class for All annotation method controller @AppPermission
|
||||
*
|
||||
* @author Roberto
|
||||
*
|
||||
* direka ulang oleh Syamsu
|
||||
* @author Roberto, direka ulang oleh Syamsu
|
||||
*/
|
||||
|
||||
public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
private static final String[] PRINT_PATTERN = {"/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_", "/print-" };
|
||||
|
||||
private static final String[] ADD_PATTERN = {"/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-"};
|
||||
|
||||
private static final String[] UPDATE_PATTERN = {"/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-"};
|
||||
private static final String[] PRINT_PATTERN = { "/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_",
|
||||
"/print-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = {"/delete_", "/delete-", "/hapus_", "/hapus-"};
|
||||
private static final String[] ADD_PATTERN = { "/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-" };
|
||||
|
||||
private final Logger LOG = LoggerFactory.getLogger(AppInterceptor.class);
|
||||
private static final String[] UPDATE_PATTERN = { "/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = { "/delete_", "/delete-", "/hapus_", "/hapus-" };
|
||||
|
||||
@Autowired
|
||||
private TokenAuthenticationService tokenAuthenticationService;
|
||||
@ -74,101 +53,55 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToKelompokUserService mapObjekModulToKelompokUserService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToLoginUserService mapObjekModulToLoginUserService;
|
||||
|
||||
@Autowired
|
||||
private ObjekModulAplikasiService<ObjekModulAplikasiVO> objekModulAplikasiService;
|
||||
|
||||
|
||||
@Autowired
|
||||
MessagePublisher<String, Object> messagePublisher;
|
||||
|
||||
@Autowired
|
||||
MessageSubscriber messageSubscriber;
|
||||
|
||||
@Autowired
|
||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulDao notifikasiModulMessageDao;
|
||||
|
||||
@Autowired
|
||||
RuanganDao ruanganDao;
|
||||
|
||||
List<LoginUser> loginUser;
|
||||
|
||||
String namaUser;
|
||||
|
||||
// private int headerActionToAction(String action){
|
||||
// if ("save".equals(action)){
|
||||
// return AppPermission.ADD;
|
||||
// } else if ("edit".equals(action)){
|
||||
// return AppPermission.UPDATE;
|
||||
// } else if ("delete".equals(action)){
|
||||
// return AppPermission.DELETE;
|
||||
// } else if ("print".equals(action)){
|
||||
// return AppPermission.PRINT;
|
||||
// } else {
|
||||
// return AppPermission.VIEW;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
private boolean contains(String source, String[] matchers){
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers)){
|
||||
|
||||
private boolean contains(String source, String[] matchers) {
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers))
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i=0;i<matchers.length; i++){
|
||||
if (source.contains(matchers[i])){
|
||||
for (String matcher : matchers)
|
||||
if (source.contains(matcher))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private String filterUrlForm(String urlForm){
|
||||
|
||||
|
||||
private String filterUrlForm(String urlForm) {
|
||||
String[] hasil = urlForm.split("/");
|
||||
System.out.println(hasil.length);
|
||||
StringBuilder potongan = new StringBuilder();
|
||||
for (int i=0; i<hasil.length && i<3; i++){
|
||||
for (int i = 0; i < hasil.length && i < 3; i++)
|
||||
potongan.append(hasil[i]).append("/");
|
||||
}
|
||||
// String current = urlForm;
|
||||
// int pos = 0;
|
||||
// int cpos = -1;
|
||||
// for (int i=0; i<4; i++){
|
||||
// pos = current.indexOf('/',pos+1);
|
||||
// if (pos > 0){
|
||||
// cpos = pos;
|
||||
// }else{
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// String oye = urlForm.substring(0, cpos);
|
||||
return potongan.toString();
|
||||
}
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, boolean supervisi) throws Exception {
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
boolean supervisi) throws Exception {
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
LOG.info("Empty login user");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Empty login user");
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
@ -176,132 +109,92 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
int result = -1;
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
KelompokUser role = user.getKelompokUser();
|
||||
int result = -2;
|
||||
|
||||
if (role != null) {
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
result = -1;
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, int action) throws Exception {
|
||||
// Alter modified Syamsu
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi)){
|
||||
LOG.warn(AlamatUrlForm + " : Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar objek modul aplikasi..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
}
|
||||
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false)) {
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
int action) throws Exception {
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService
|
||||
.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi))
|
||||
return true;
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false))
|
||||
return false;
|
||||
}
|
||||
|
||||
int resultUser = checkUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultUser == 0){
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
return false;
|
||||
} else if (resultUser == 1){
|
||||
} else if (resultUser == 1) {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
int resultKelompokUser = checkKelompokUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultKelompokUser == -2){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no role to gain access restricted area", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no role to gain access restricted area");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == -1){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar Map objek modul to kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no access to module application", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no access to module application");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultKelompokUser == -2) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == -1) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
@ -310,113 +203,54 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* return true untuk valid permission request ke controller method
|
||||
*/
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||
////// Syamsu /////
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||
HandlerMethod hm;
|
||||
Method method = null;
|
||||
// int methodApp = AppPermission.VIEW;
|
||||
|
||||
Method method;
|
||||
response.setHeader("Access-Control-Expose-Headers", "RequireSupervisor" + ","
|
||||
+ Constants.MessageInfo.ERROR_MESSAGE + "," + Constants.MessageInfo.INFO_MESSAGE);
|
||||
|
||||
////// Syamsu /////
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "": request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
|
||||
// Buat Om, Kang, Aa Reza terkait Security Role
|
||||
//String KdRuangan = null;
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? "": request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
int action = AppPermission.VIEW;
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm)){
|
||||
//LOG.warn("Sementara defaultnya di loloskan semuanya di AppInterceptor jika tidak ada header 'AlamatUrlForm' ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan)){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada header 'KdRuangan' atau header 'KdRuangan'nya 0 ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
//String headerAction = request.getHeader(Constants.HttpHeader.ACTION) == null ? "" : request.getHeader(Constants.HttpHeader.ACTION);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm))
|
||||
return true;
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan))
|
||||
return true;
|
||||
String URI = request.getRequestURI();
|
||||
String methodHttp = request.getMethod();
|
||||
|
||||
try {
|
||||
// Alter modified Syamsu
|
||||
if (handler instanceof org.springframework.web.method.HandlerMethod) {
|
||||
hm = (HandlerMethod) handler;
|
||||
method = hm.getMethod();
|
||||
} else {
|
||||
return checkAuthSecure(request, response, AlamatUrlForm, true);
|
||||
}
|
||||
|
||||
// AlamatUrlForm // Alter modified Syamsu
|
||||
boolean usingAnno = method != null && method.isAnnotationPresent(AppPermission.class);
|
||||
|
||||
boolean postM = "POST".equals(methodHttp);
|
||||
boolean signInOut = !URI.contains("auth/sign-in") && !URI.contains("auth/sign-out");
|
||||
boolean getM = "GET".equals(methodHttp);
|
||||
boolean cetak = contains (URI, PRINT_PATTERN);
|
||||
|
||||
/*(URI.contains("/lap_") || URI.contains("/lap-") || URI.contains("/lap")
|
||||
|| URI.contains("/cetak_") || URI.contains("/print_") || URI.contains("/cetak-")
|
||||
|| URI.contains("/print-"));*/
|
||||
|
||||
boolean simpan = contains (URI, ADD_PATTERN);
|
||||
|
||||
/*(URI.contains("/save_") || URI.contains("/add_") || URI.contains("/simpan_")
|
||||
|| URI.contains("/save-") || URI.contains("/add-") || URI.contains("/simpan-"));*/
|
||||
|
||||
boolean ubah = contains (URI, UPDATE_PATTERN);
|
||||
|
||||
/*(URI.contains("/update_") || URI.contains("/edit_") || URI.contains("/ubah_")
|
||||
|| URI.contains("/update-") || URI.contains("/edit-") || URI.contains("/ubah-"));*/
|
||||
|
||||
boolean hapus = contains (URI, DELETE_PATTERN);
|
||||
|
||||
/*(URI.contains("/delete_") || URI.contains("/hapus_") || URI.contains("/delete-")
|
||||
|| URI.contains("/hapus-")); */
|
||||
|
||||
boolean cetak = contains(URI, PRINT_PATTERN);
|
||||
boolean simpan = contains(URI, ADD_PATTERN);
|
||||
boolean ubah = contains(URI, UPDATE_PATTERN);
|
||||
boolean hapus = contains(URI, DELETE_PATTERN);
|
||||
if (usingAnno) {
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
if (AppPermission.SPECIALS == action /* && "#/home".equals(AlamatUrlForm) */) {
|
||||
if (AppPermission.SPECIALS == action)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (getM && cetak) {
|
||||
|
||||
action = AppPermission.PRINT;
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
}
|
||||
|
||||
if ((usingAnno || postM) && signInOut) {
|
||||
|
||||
if (simpan) {
|
||||
action = AppPermission.ADD;
|
||||
} else if (ubah) {
|
||||
@ -426,345 +260,104 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
} else if (cetak) {
|
||||
action = AppPermission.PRINT;
|
||||
}
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.out.println("Not Found " + request.getRequestURL());
|
||||
|
||||
LOG.info("Error accured unauthorized");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Something wrong happened");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) throws Exception {}
|
||||
|
||||
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex) throws Exception {
|
||||
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex)
|
||||
throws Exception {
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String idRuanganTujuan = request.getHeader(Constants.HttpHeader.KD_RUANGAN_T) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_T);
|
||||
|
||||
String idRuanganTujuanA = request.getHeader(Constants.HttpHeader.KD_RUANGAN_A) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_A);
|
||||
|
||||
String tglKirim = request.getHeader(Constants.HttpHeader.TGL_KIRIM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.TGL_KIRIM);
|
||||
|
||||
boolean notHttpOK = response.getStatus() >= HttpServletResponse.SC_BAD_REQUEST;
|
||||
boolean notLewatMenu = CommonUtil.isNullOrEmpty(AlamatUrlForm) || CommonUtil.isNullOrEmpty(KdRuangan);
|
||||
|
||||
Integer ruanganAsalId = 0;
|
||||
|
||||
try {
|
||||
ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
}catch(Exception e){
|
||||
ex = e;
|
||||
}
|
||||
|
||||
|
||||
Integer ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
boolean adaError = CommonUtil.isNotNullOrEmpty(ex);
|
||||
if (notHttpOK || notLewatMenu || adaError){
|
||||
if (notHttpOK || notLewatMenu || adaError)
|
||||
return;
|
||||
}
|
||||
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(authentication)){
|
||||
if (CommonUtil.isNullOrEmpty(authentication))
|
||||
return;
|
||||
}
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
if (CommonUtil.isNullOrEmpty(loginUser))
|
||||
return;
|
||||
}
|
||||
|
||||
String potongan = filterUrlForm(AlamatUrlForm);
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasiVOs = objekModulAplikasiService.findByAlamatUrlForm(potongan);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs)){
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
String URI = request.getRequestURI();
|
||||
|
||||
Integer objekModulAplikasId = objekModulAplikasiVOs.get(0).getId();
|
||||
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs)) {
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService
|
||||
.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
Integer notifMessagingId = notifMessagingVOs.get(0).getId();
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(tglKirim)) {
|
||||
|
||||
|
||||
List<Integer> ruanganTujuansId = new ArrayList<>();
|
||||
System.out.println("--");
|
||||
|
||||
if (!"".equals(idRuanganTujuan)){
|
||||
if (!"".equals(idRuanganTujuan)) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!"".equals(idRuanganTujuanA) && ruanganTujuansId.isEmpty()) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuanA);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
|
||||
MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
||||
|
||||
Pegawai pegawai = loginUser.get(0).getPegawai();
|
||||
Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
||||
|
||||
|
||||
if (ruanganTujuansId.size() > 0){
|
||||
try{
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
LOG.info(DateUtil.now()+" send notif dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
||||
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
if (!ruanganTujuansId.isEmpty())
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService,
|
||||
notifMessagingId, ruanganTujuansId);
|
||||
} else {
|
||||
JSONArray tglKirims = new JSONArray(tglKirim);
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
for (int i=0; i<tglKirims.length(); i++){
|
||||
for (int i = 0; i < tglKirims.length(); i++) {
|
||||
String ctglKirim = tglKirims.optString(i, "");
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i,0);
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
Date date = myFormat.parse(ctglKirim);
|
||||
|
||||
NotifMessagingSchedulerVO vo = new NotifMessagingSchedulerVO();
|
||||
|
||||
vo.setTglKirim(date);
|
||||
vo.setTerkirim(false);
|
||||
vo.setNotifMessagingId(notifMessagingId);
|
||||
vo.setRuanganIdAsal(ruanganAsalId);
|
||||
vo.setRuanganIdTujuan(cRuanganTujuanId);
|
||||
vo.setPegawaiId(loginUser.get(0).getPegawai().getId());
|
||||
|
||||
vo.setKdProfile((short)0);
|
||||
vo.setKdProfile((short) 0);
|
||||
vo.setKodeExternal("");
|
||||
vo.setNamaExternal("");
|
||||
vo.setReportDisplay("");
|
||||
vo.setStatusEnabled(true);
|
||||
|
||||
notifMessagingSchedulerService.add(vo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// <T extends BaseMasterVO> T convertToVO(T t, Object o){
|
||||
// BeanUtils.copyProperties(t, o);
|
||||
// return t;
|
||||
// }
|
||||
|
||||
// try{
|
||||
//
|
||||
//
|
||||
// String AlamatUrlForm =
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "" :
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
// String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN)
|
||||
// == null ? "" : request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
//
|
||||
// Authentication authentication =
|
||||
// tokenAuthenticationService.getAuthentication(request);
|
||||
//
|
||||
// namaUser = authentication.getName();
|
||||
// loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
//
|
||||
//
|
||||
// if (loginUser.isEmpty()) {
|
||||
// publisher.BroadcastMessage(KdRuangan, namaUser, AlamatUrlForm);
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//// String routingKeyAndQueueName = "ruanganId." + KdRuangan;
|
||||
////
|
||||
//// publisher.sendRabbitMQNotification("127.0.0.1", "ruanganId." +
|
||||
// KdRuangan, "Kd Ruangan : " + KdRuangan + ", AlamatUrlForm : " +
|
||||
// AlamatUrlForm);
|
||||
////
|
||||
//// subscriber.startRabbitMQNotification("127.0.0.1",
|
||||
// routingKeyAndQueueName);
|
||||
//// subscriber.listenRabbitMQNotification(routingKeyAndQueueName,
|
||||
// subscriber.getDefaultConsumer(), false);
|
||||
//// subscriber.stopRabbitMQNotification();
|
||||
//
|
||||
// }catch(Exception e){
|
||||
// //e.printStackTrace();
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// //String urlSocket = messagePublisher.GetSettingDataFixed("UrlRabbitMQMessaging"); sementara kunci dulu.
|
||||
//
|
||||
// String urlSocket = "127.0.0.1";
|
||||
//
|
||||
// List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
||||
//
|
||||
// if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// Integer ruanganIdtemp = 0;
|
||||
// boolean connect = false;
|
||||
//
|
||||
// for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
|
||||
// Ruangan ruangan = vo.getRuangan();
|
||||
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
||||
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
||||
// String customURLObjekModul = vo.getCustomURLObjekModul();
|
||||
// String titleNotifikasi = vo.getTitleNotifikasi();
|
||||
// String pesanNotifikasi = vo.getPesanNotifikasi();
|
||||
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
||||
//
|
||||
// if (ruangan.getId() == ruanganId){
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
||||
//
|
||||
// if (ruanganIdtemp != ruangan.getId()){
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
||||
// connect = true;
|
||||
// ruanganIdtemp = ruangan.getId();
|
||||
// }
|
||||
//
|
||||
// Map<String, Object> map = new HashMap<>();
|
||||
// map.put("title", titleNotifikasi);
|
||||
// map.put("dariRuangan", dariRuangan);
|
||||
// map.put("ruanganId", ruangan.getId());
|
||||
// map.put("ruangan", convertToVO(new RuanganVO(), ruangan));
|
||||
// map.put("modulAplikasi", convertToVO(new ModulAplikasiVO(), modulAplikasi));
|
||||
// map.put("objekModulAplikasi", convertToVO(new ObjekModulAplikasiVO(), objekModulAplikasi));
|
||||
// map.put("titleNotifikasi", titleNotifikasi);
|
||||
// map.put("pesanNotifikasi", pesanNotifikasi);
|
||||
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
||||
// map.put("fromPegawai", loginUser.get(0).getPegawai());
|
||||
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
|
||||
//
|
||||
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
||||
//
|
||||
// //messagePublisher.BroadcastMessage(map);
|
||||
// }
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
|
||||
|
||||
// private static final TypeAdapterFactory FACTORY = new TypeAdapterFactory() {
|
||||
// @Override
|
||||
// @SuppressWarnings("unchecked")
|
||||
// public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
||||
// return (HibernateProxy.class.isAssignableFrom(type.getRawType())
|
||||
// ? (TypeAdapter<T>) new HibernateProxyTypeAdapter((TypeAdapter)gson.getAdapter(TypeToken.get(type.getRawType().getSuperclass())))
|
||||
// : null);
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// private static final class HibernateProxyTypeAdapter extends TypeAdapter<HibernateProxy> {
|
||||
//
|
||||
// private final TypeAdapter<Object> delegate;
|
||||
//
|
||||
// private HibernateProxyTypeAdapter(TypeAdapter<Object> delegate) {
|
||||
// this.delegate = delegate;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public HibernateProxy read(JsonReader r) throws IOException {
|
||||
// throw new UnsupportedOperationException("Not supported");
|
||||
// }
|
||||
//
|
||||
// @SuppressWarnings({"rawtypes", "unchecked"})
|
||||
// @Override
|
||||
// public void write(JsonWriter out, HibernateProxy value) throws IOException {
|
||||
// if (value == null) {
|
||||
// out.nullValue();
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// delegate.write(out, ((HibernateProxy) value).getHibernateLazyInitializer().getImplementation());
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* else if (method.isAnnotationPresent(AppMenuPermision.class)){
|
||||
*
|
||||
* Authentication authentication =
|
||||
* tokenAuthenticationService.getAuthentication(request);
|
||||
*
|
||||
* String namaUser = authentication.getName();
|
||||
*
|
||||
* List<LoginUser> loginUser =
|
||||
* loginUserDao.findByNamaUser(namaUser);
|
||||
*
|
||||
* if (loginUser.isEmpty()) { // untuk testing false
|
||||
* response.addHeader("Access-Control-Expose-Headers",
|
||||
* "content-type");
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "User " +
|
||||
* namaUser + " can not access current menu ");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; }
|
||||
*
|
||||
* // get user login if (!loginUser.isEmpty()) { LoginUser user =
|
||||
* loginUser.get(0); }else{ LOG.info("User {} is unauthorized",
|
||||
* namaUser);
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
* "User is unauthorized");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; } }
|
||||
*/
|
||||
@ -106,7 +106,6 @@
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>${commons-io.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- For testing REST -->
|
||||
|
||||
@ -1,70 +1,50 @@
|
||||
package com.jasamedika.medifirst2000.interceptor;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.*;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.*;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.json.JSONArray;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.web.method.HandlerMethod;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.NotifikasiMessageObjekModulDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.KelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.LoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToKelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToLoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.notification.MessageSubscriber;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToKelompokUserService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToLoginUserService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
||||
import com.jasamedika.medifirst2000.service.ObjekModulAplikasiService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Interceptor class for All annotation method controller @AppPermission
|
||||
*
|
||||
* @author Roberto
|
||||
*
|
||||
* direka ulang oleh Syamsu
|
||||
* @author Roberto, direka ulang oleh Syamsu
|
||||
*/
|
||||
|
||||
public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
private static final String[] PRINT_PATTERN = {"/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_", "/print-" };
|
||||
|
||||
private static final String[] ADD_PATTERN = {"/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-"};
|
||||
|
||||
private static final String[] UPDATE_PATTERN = {"/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-"};
|
||||
private static final String[] PRINT_PATTERN = { "/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_",
|
||||
"/print-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = {"/delete_", "/delete-", "/hapus_", "/hapus-"};
|
||||
private static final String[] ADD_PATTERN = { "/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-" };
|
||||
|
||||
private final Logger LOG = LoggerFactory.getLogger(AppInterceptor.class);
|
||||
private static final String[] UPDATE_PATTERN = { "/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = { "/delete_", "/delete-", "/hapus_", "/hapus-" };
|
||||
|
||||
@Autowired
|
||||
private TokenAuthenticationService tokenAuthenticationService;
|
||||
@ -74,101 +54,55 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToKelompokUserService mapObjekModulToKelompokUserService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToLoginUserService mapObjekModulToLoginUserService;
|
||||
|
||||
@Autowired
|
||||
private ObjekModulAplikasiService<ObjekModulAplikasiVO> objekModulAplikasiService;
|
||||
|
||||
|
||||
@Autowired
|
||||
MessagePublisher<String, Object> messagePublisher;
|
||||
|
||||
@Autowired
|
||||
MessageSubscriber messageSubscriber;
|
||||
|
||||
@Autowired
|
||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulDao notifikasiModulMessageDao;
|
||||
|
||||
@Autowired
|
||||
RuanganDao ruanganDao;
|
||||
|
||||
List<LoginUser> loginUser;
|
||||
|
||||
String namaUser;
|
||||
|
||||
// private int headerActionToAction(String action){
|
||||
// if ("save".equals(action)){
|
||||
// return AppPermission.ADD;
|
||||
// } else if ("edit".equals(action)){
|
||||
// return AppPermission.UPDATE;
|
||||
// } else if ("delete".equals(action)){
|
||||
// return AppPermission.DELETE;
|
||||
// } else if ("print".equals(action)){
|
||||
// return AppPermission.PRINT;
|
||||
// } else {
|
||||
// return AppPermission.VIEW;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
private boolean contains(String source, String[] matchers){
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers)){
|
||||
|
||||
private boolean contains(String source, String[] matchers) {
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers))
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i=0;i<matchers.length; i++){
|
||||
if (source.contains(matchers[i])){
|
||||
for (String matcher : matchers)
|
||||
if (source.contains(matcher))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private String filterUrlForm(String urlForm){
|
||||
|
||||
|
||||
private String filterUrlForm(String urlForm) {
|
||||
String[] hasil = urlForm.split("/");
|
||||
System.out.println(hasil.length);
|
||||
StringBuilder potongan = new StringBuilder();
|
||||
for (int i=0; i<hasil.length && i<3; i++){
|
||||
for (int i = 0; i < hasil.length && i < 3; i++)
|
||||
potongan.append(hasil[i]).append("/");
|
||||
}
|
||||
// String current = urlForm;
|
||||
// int pos = 0;
|
||||
// int cpos = -1;
|
||||
// for (int i=0; i<4; i++){
|
||||
// pos = current.indexOf('/',pos+1);
|
||||
// if (pos > 0){
|
||||
// cpos = pos;
|
||||
// }else{
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// String oye = urlForm.substring(0, cpos);
|
||||
return potongan.toString();
|
||||
}
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, boolean supervisi) throws Exception {
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
boolean supervisi) throws Exception {
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
LOG.info("Empty login user");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Empty login user");
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
@ -176,132 +110,92 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
int result = -1;
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
KelompokUser role = user.getKelompokUser();
|
||||
int result = -2;
|
||||
|
||||
if (role != null) {
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
result = -1;
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, int action) throws Exception {
|
||||
// Alter modified Syamsu
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi)){
|
||||
LOG.warn(AlamatUrlForm + " : Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar objek modul aplikasi..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
}
|
||||
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false)) {
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
int action) throws Exception {
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService
|
||||
.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi))
|
||||
return true;
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false))
|
||||
return false;
|
||||
}
|
||||
|
||||
int resultUser = checkUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultUser == 0){
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
return false;
|
||||
} else if (resultUser == 1){
|
||||
} else if (resultUser == 1) {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
int resultKelompokUser = checkKelompokUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultKelompokUser == -2){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no role to gain access restricted area", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no role to gain access restricted area");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == -1){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar Map objek modul to kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no access to module application", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no access to module application");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultKelompokUser == -2) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == -1) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
@ -310,113 +204,54 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* return true untuk valid permission request ke controller method
|
||||
*/
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||
////// Syamsu /////
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||
HandlerMethod hm;
|
||||
Method method = null;
|
||||
// int methodApp = AppPermission.VIEW;
|
||||
|
||||
Method method;
|
||||
response.setHeader("Access-Control-Expose-Headers", "RequireSupervisor" + ","
|
||||
+ Constants.MessageInfo.ERROR_MESSAGE + "," + Constants.MessageInfo.INFO_MESSAGE);
|
||||
|
||||
////// Syamsu /////
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "": request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
|
||||
// Buat Om, Kang, Aa Reza terkait Security Role
|
||||
//String KdRuangan = null;
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? "": request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
int action = AppPermission.VIEW;
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm)){
|
||||
//LOG.warn("Sementara defaultnya di loloskan semuanya di AppInterceptor jika tidak ada header 'AlamatUrlForm' ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan)){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada header 'KdRuangan' atau header 'KdRuangan'nya 0 ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
//String headerAction = request.getHeader(Constants.HttpHeader.ACTION) == null ? "" : request.getHeader(Constants.HttpHeader.ACTION);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm))
|
||||
return true;
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan))
|
||||
return true;
|
||||
String URI = request.getRequestURI();
|
||||
String methodHttp = request.getMethod();
|
||||
|
||||
try {
|
||||
// Alter modified Syamsu
|
||||
if (handler instanceof org.springframework.web.method.HandlerMethod) {
|
||||
hm = (HandlerMethod) handler;
|
||||
method = hm.getMethod();
|
||||
} else {
|
||||
return checkAuthSecure(request, response, AlamatUrlForm, true);
|
||||
}
|
||||
|
||||
// AlamatUrlForm // Alter modified Syamsu
|
||||
boolean usingAnno = method != null && method.isAnnotationPresent(AppPermission.class);
|
||||
|
||||
boolean postM = "POST".equals(methodHttp);
|
||||
boolean signInOut = !URI.contains("auth/sign-in") && !URI.contains("auth/sign-out");
|
||||
boolean getM = "GET".equals(methodHttp);
|
||||
boolean cetak = contains (URI, PRINT_PATTERN);
|
||||
|
||||
/*(URI.contains("/lap_") || URI.contains("/lap-") || URI.contains("/lap")
|
||||
|| URI.contains("/cetak_") || URI.contains("/print_") || URI.contains("/cetak-")
|
||||
|| URI.contains("/print-"));*/
|
||||
|
||||
boolean simpan = contains (URI, ADD_PATTERN);
|
||||
|
||||
/*(URI.contains("/save_") || URI.contains("/add_") || URI.contains("/simpan_")
|
||||
|| URI.contains("/save-") || URI.contains("/add-") || URI.contains("/simpan-"));*/
|
||||
|
||||
boolean ubah = contains (URI, UPDATE_PATTERN);
|
||||
|
||||
/*(URI.contains("/update_") || URI.contains("/edit_") || URI.contains("/ubah_")
|
||||
|| URI.contains("/update-") || URI.contains("/edit-") || URI.contains("/ubah-"));*/
|
||||
|
||||
boolean hapus = contains (URI, DELETE_PATTERN);
|
||||
|
||||
/*(URI.contains("/delete_") || URI.contains("/hapus_") || URI.contains("/delete-")
|
||||
|| URI.contains("/hapus-")); */
|
||||
|
||||
boolean cetak = contains(URI, PRINT_PATTERN);
|
||||
boolean simpan = contains(URI, ADD_PATTERN);
|
||||
boolean ubah = contains(URI, UPDATE_PATTERN);
|
||||
boolean hapus = contains(URI, DELETE_PATTERN);
|
||||
if (usingAnno) {
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
if (AppPermission.SPECIALS == action /* && "#/home".equals(AlamatUrlForm) */) {
|
||||
if (AppPermission.SPECIALS == action)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (getM && cetak) {
|
||||
|
||||
action = AppPermission.PRINT;
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
}
|
||||
|
||||
if ((usingAnno || postM) && signInOut) {
|
||||
|
||||
if (simpan) {
|
||||
action = AppPermission.ADD;
|
||||
} else if (ubah) {
|
||||
@ -426,345 +261,104 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
} else if (cetak) {
|
||||
action = AppPermission.PRINT;
|
||||
}
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.out.println("Not Found " + request.getRequestURL());
|
||||
|
||||
LOG.info("Error accured unauthorized");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Something wrong happened");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) throws Exception {}
|
||||
|
||||
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex) throws Exception {
|
||||
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex)
|
||||
throws Exception {
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String idRuanganTujuan = request.getHeader(Constants.HttpHeader.KD_RUANGAN_T) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_T);
|
||||
|
||||
String idRuanganTujuanA = request.getHeader(Constants.HttpHeader.KD_RUANGAN_A) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_A);
|
||||
|
||||
String tglKirim = request.getHeader(Constants.HttpHeader.TGL_KIRIM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.TGL_KIRIM);
|
||||
|
||||
boolean notHttpOK = response.getStatus() >= HttpServletResponse.SC_BAD_REQUEST;
|
||||
boolean notLewatMenu = CommonUtil.isNullOrEmpty(AlamatUrlForm) || CommonUtil.isNullOrEmpty(KdRuangan);
|
||||
|
||||
Integer ruanganAsalId = 0;
|
||||
|
||||
try {
|
||||
ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
}catch(Exception e){
|
||||
ex = e;
|
||||
}
|
||||
|
||||
|
||||
Integer ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
boolean adaError = CommonUtil.isNotNullOrEmpty(ex);
|
||||
if (notHttpOK || notLewatMenu || adaError){
|
||||
if (notHttpOK || notLewatMenu || adaError)
|
||||
return;
|
||||
}
|
||||
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(authentication)){
|
||||
if (CommonUtil.isNullOrEmpty(authentication))
|
||||
return;
|
||||
}
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
if (CommonUtil.isNullOrEmpty(loginUser))
|
||||
return;
|
||||
}
|
||||
|
||||
String potongan = filterUrlForm(AlamatUrlForm);
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasiVOs = objekModulAplikasiService.findByAlamatUrlForm(potongan);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs)){
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
String URI = request.getRequestURI();
|
||||
|
||||
Integer objekModulAplikasId = objekModulAplikasiVOs.get(0).getId();
|
||||
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs)) {
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService
|
||||
.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
Integer notifMessagingId = notifMessagingVOs.get(0).getId();
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(tglKirim)) {
|
||||
|
||||
|
||||
List<Integer> ruanganTujuansId = new ArrayList<>();
|
||||
System.out.println("--");
|
||||
|
||||
if (!"".equals(idRuanganTujuan)){
|
||||
if (!"".equals(idRuanganTujuan)) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!"".equals(idRuanganTujuanA) && ruanganTujuansId.isEmpty()) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuanA);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
|
||||
MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
||||
|
||||
Pegawai pegawai = loginUser.get(0).getPegawai();
|
||||
Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
||||
|
||||
|
||||
if (ruanganTujuansId.size() > 0){
|
||||
try{
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
LOG.info(DateUtil.now()+" send notif dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
||||
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
if (!ruanganTujuansId.isEmpty())
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService,
|
||||
notifMessagingId, ruanganTujuansId);
|
||||
} else {
|
||||
JSONArray tglKirims = new JSONArray(tglKirim);
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
for (int i=0; i<tglKirims.length(); i++){
|
||||
for (int i = 0; i < tglKirims.length(); i++) {
|
||||
String ctglKirim = tglKirims.optString(i, "");
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i,0);
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
Date date = myFormat.parse(ctglKirim);
|
||||
|
||||
NotifMessagingSchedulerVO vo = new NotifMessagingSchedulerVO();
|
||||
|
||||
vo.setTglKirim(date);
|
||||
vo.setTerkirim(false);
|
||||
vo.setNotifMessagingId(notifMessagingId);
|
||||
vo.setRuanganIdAsal(ruanganAsalId);
|
||||
vo.setRuanganIdTujuan(cRuanganTujuanId);
|
||||
vo.setPegawaiId(loginUser.get(0).getPegawai().getId());
|
||||
|
||||
vo.setKdProfile((short)0);
|
||||
vo.setKdProfile((short) 0);
|
||||
vo.setKodeExternal("");
|
||||
vo.setNamaExternal("");
|
||||
vo.setReportDisplay("");
|
||||
vo.setStatusEnabled(true);
|
||||
|
||||
notifMessagingSchedulerService.add(vo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// <T extends BaseMasterVO> T convertToVO(T t, Object o){
|
||||
// BeanUtils.copyProperties(t, o);
|
||||
// return t;
|
||||
// }
|
||||
|
||||
// try{
|
||||
//
|
||||
//
|
||||
// String AlamatUrlForm =
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "" :
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
// String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN)
|
||||
// == null ? "" : request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
//
|
||||
// Authentication authentication =
|
||||
// tokenAuthenticationService.getAuthentication(request);
|
||||
//
|
||||
// namaUser = authentication.getName();
|
||||
// loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
//
|
||||
//
|
||||
// if (loginUser.isEmpty()) {
|
||||
// publisher.BroadcastMessage(KdRuangan, namaUser, AlamatUrlForm);
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//// String routingKeyAndQueueName = "ruanganId." + KdRuangan;
|
||||
////
|
||||
//// publisher.sendRabbitMQNotification("127.0.0.1", "ruanganId." +
|
||||
// KdRuangan, "Kd Ruangan : " + KdRuangan + ", AlamatUrlForm : " +
|
||||
// AlamatUrlForm);
|
||||
////
|
||||
//// subscriber.startRabbitMQNotification("127.0.0.1",
|
||||
// routingKeyAndQueueName);
|
||||
//// subscriber.listenRabbitMQNotification(routingKeyAndQueueName,
|
||||
// subscriber.getDefaultConsumer(), false);
|
||||
//// subscriber.stopRabbitMQNotification();
|
||||
//
|
||||
// }catch(Exception e){
|
||||
// //e.printStackTrace();
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// //String urlSocket = messagePublisher.GetSettingDataFixed("UrlRabbitMQMessaging"); sementara kunci dulu.
|
||||
//
|
||||
// String urlSocket = "127.0.0.1";
|
||||
//
|
||||
// List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
||||
//
|
||||
// if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// Integer ruanganIdtemp = 0;
|
||||
// boolean connect = false;
|
||||
//
|
||||
// for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
|
||||
// Ruangan ruangan = vo.getRuangan();
|
||||
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
||||
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
||||
// String customURLObjekModul = vo.getCustomURLObjekModul();
|
||||
// String titleNotifikasi = vo.getTitleNotifikasi();
|
||||
// String pesanNotifikasi = vo.getPesanNotifikasi();
|
||||
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
||||
//
|
||||
// if (ruangan.getId() == ruanganId){
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
||||
//
|
||||
// if (ruanganIdtemp != ruangan.getId()){
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
||||
// connect = true;
|
||||
// ruanganIdtemp = ruangan.getId();
|
||||
// }
|
||||
//
|
||||
// Map<String, Object> map = new HashMap<>();
|
||||
// map.put("title", titleNotifikasi);
|
||||
// map.put("dariRuangan", dariRuangan);
|
||||
// map.put("ruanganId", ruangan.getId());
|
||||
// map.put("ruangan", convertToVO(new RuanganVO(), ruangan));
|
||||
// map.put("modulAplikasi", convertToVO(new ModulAplikasiVO(), modulAplikasi));
|
||||
// map.put("objekModulAplikasi", convertToVO(new ObjekModulAplikasiVO(), objekModulAplikasi));
|
||||
// map.put("titleNotifikasi", titleNotifikasi);
|
||||
// map.put("pesanNotifikasi", pesanNotifikasi);
|
||||
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
||||
// map.put("fromPegawai", loginUser.get(0).getPegawai());
|
||||
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
|
||||
//
|
||||
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
||||
//
|
||||
// //messagePublisher.BroadcastMessage(map);
|
||||
// }
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
|
||||
|
||||
// private static final TypeAdapterFactory FACTORY = new TypeAdapterFactory() {
|
||||
// @Override
|
||||
// @SuppressWarnings("unchecked")
|
||||
// public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
||||
// return (HibernateProxy.class.isAssignableFrom(type.getRawType())
|
||||
// ? (TypeAdapter<T>) new HibernateProxyTypeAdapter((TypeAdapter)gson.getAdapter(TypeToken.get(type.getRawType().getSuperclass())))
|
||||
// : null);
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// private static final class HibernateProxyTypeAdapter extends TypeAdapter<HibernateProxy> {
|
||||
//
|
||||
// private final TypeAdapter<Object> delegate;
|
||||
//
|
||||
// private HibernateProxyTypeAdapter(TypeAdapter<Object> delegate) {
|
||||
// this.delegate = delegate;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public HibernateProxy read(JsonReader r) throws IOException {
|
||||
// throw new UnsupportedOperationException("Not supported");
|
||||
// }
|
||||
//
|
||||
// @SuppressWarnings({"rawtypes", "unchecked"})
|
||||
// @Override
|
||||
// public void write(JsonWriter out, HibernateProxy value) throws IOException {
|
||||
// if (value == null) {
|
||||
// out.nullValue();
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// delegate.write(out, ((HibernateProxy) value).getHibernateLazyInitializer().getImplementation());
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* else if (method.isAnnotationPresent(AppMenuPermision.class)){
|
||||
*
|
||||
* Authentication authentication =
|
||||
* tokenAuthenticationService.getAuthentication(request);
|
||||
*
|
||||
* String namaUser = authentication.getName();
|
||||
*
|
||||
* List<LoginUser> loginUser =
|
||||
* loginUserDao.findByNamaUser(namaUser);
|
||||
*
|
||||
* if (loginUser.isEmpty()) { // untuk testing false
|
||||
* response.addHeader("Access-Control-Expose-Headers",
|
||||
* "content-type");
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "User " +
|
||||
* namaUser + " can not access current menu ");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; }
|
||||
*
|
||||
* // get user login if (!loginUser.isEmpty()) { LoginUser user =
|
||||
* loginUser.get(0); }else{ LOG.info("User {} is unauthorized",
|
||||
* namaUser);
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
* "User is unauthorized");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; } }
|
||||
*/
|
||||
@ -210,6 +210,16 @@
|
||||
<groupId>net.sf.jasperreports</groupId>
|
||||
<artifactId>jasperreports</artifactId>
|
||||
<version>6.11.0</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>com.lowagie</groupId>
|
||||
<artifactId>itext</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.olap4j</groupId>
|
||||
<artifactId>olap4j</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
|
||||
@ -1,70 +1,49 @@
|
||||
package com.jasamedika.medifirst2000.interceptor;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.*;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.*;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.json.JSONArray;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.web.method.HandlerMethod;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Constants;
|
||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.NotifikasiMessageObjekModulDao;
|
||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
||||
import com.jasamedika.medifirst2000.entities.KelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.LoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToKelompokUser;
|
||||
import com.jasamedika.medifirst2000.entities.MapObjekModulToLoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
||||
import com.jasamedika.medifirst2000.notification.MessageSubscriber;
|
||||
import com.jasamedika.medifirst2000.security.model.AppPermission;
|
||||
import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToKelompokUserService;
|
||||
import com.jasamedika.medifirst2000.service.MapObjekModulToLoginUserService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
||||
import com.jasamedika.medifirst2000.service.ObjekModulAplikasiService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
||||
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiVO;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Interceptor class for All annotation method controller @AppPermission
|
||||
*
|
||||
* @author Roberto
|
||||
*
|
||||
* direka ulang oleh Syamsu
|
||||
* @author Roberto, direka ulang oleh Syamsu
|
||||
*/
|
||||
|
||||
public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
private static final String[] PRINT_PATTERN = {"/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_", "/print-" };
|
||||
|
||||
private static final String[] ADD_PATTERN = {"/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-"};
|
||||
|
||||
private static final String[] UPDATE_PATTERN = {"/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-"};
|
||||
private static final String[] PRINT_PATTERN = { "/lap_", "/lap-", "/lap", "/cetak_", "/cetak-", "/print_",
|
||||
"/print-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = {"/delete_", "/delete-", "/hapus_", "/hapus-"};
|
||||
private static final String[] ADD_PATTERN = { "/save_", "/save-", "/add_", "/add-", "/simpan_", "/simpan-" };
|
||||
|
||||
private final Logger LOG = LoggerFactory.getLogger(AppInterceptor.class);
|
||||
private static final String[] UPDATE_PATTERN = { "/update_", "/update-", "/edit_", "/edit-", "/ubah_", "/ubah-" };
|
||||
|
||||
private static final String[] DELETE_PATTERN = { "/delete_", "/delete-", "/hapus_", "/hapus-" };
|
||||
|
||||
@Autowired
|
||||
private TokenAuthenticationService tokenAuthenticationService;
|
||||
@ -74,101 +53,55 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToKelompokUserService mapObjekModulToKelompokUserService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private MapObjekModulToLoginUserService mapObjekModulToLoginUserService;
|
||||
|
||||
@Autowired
|
||||
private ObjekModulAplikasiService<ObjekModulAplikasiVO> objekModulAplikasiService;
|
||||
|
||||
|
||||
@Autowired
|
||||
MessagePublisher<String, Object> messagePublisher;
|
||||
|
||||
@Autowired
|
||||
MessageSubscriber messageSubscriber;
|
||||
|
||||
@Autowired
|
||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
||||
|
||||
|
||||
@Autowired
|
||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
||||
|
||||
@Autowired
|
||||
NotifikasiMessageObjekModulDao notifikasiModulMessageDao;
|
||||
|
||||
@Autowired
|
||||
RuanganDao ruanganDao;
|
||||
|
||||
List<LoginUser> loginUser;
|
||||
|
||||
String namaUser;
|
||||
|
||||
// private int headerActionToAction(String action){
|
||||
// if ("save".equals(action)){
|
||||
// return AppPermission.ADD;
|
||||
// } else if ("edit".equals(action)){
|
||||
// return AppPermission.UPDATE;
|
||||
// } else if ("delete".equals(action)){
|
||||
// return AppPermission.DELETE;
|
||||
// } else if ("print".equals(action)){
|
||||
// return AppPermission.PRINT;
|
||||
// } else {
|
||||
// return AppPermission.VIEW;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
private boolean contains(String source, String[] matchers){
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers)){
|
||||
|
||||
private boolean contains(String source, String[] matchers) {
|
||||
if (CommonUtil.isNullOrEmpty(source) || ArrayUtils.isEmpty(matchers))
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i=0;i<matchers.length; i++){
|
||||
if (source.contains(matchers[i])){
|
||||
for (String matcher : matchers)
|
||||
if (source.contains(matcher))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private String filterUrlForm(String urlForm){
|
||||
|
||||
|
||||
private String filterUrlForm(String urlForm) {
|
||||
String[] hasil = urlForm.split("/");
|
||||
System.out.println(hasil.length);
|
||||
StringBuilder potongan = new StringBuilder();
|
||||
for (int i=0; i<hasil.length && i<3; i++){
|
||||
for (int i = 0; i < hasil.length && i < 3; i++)
|
||||
potongan.append(hasil[i]).append("/");
|
||||
}
|
||||
// String current = urlForm;
|
||||
// int pos = 0;
|
||||
// int cpos = -1;
|
||||
// for (int i=0; i<4; i++){
|
||||
// pos = current.indexOf('/',pos+1);
|
||||
// if (pos > 0){
|
||||
// cpos = pos;
|
||||
// }else{
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// String oye = urlForm.substring(0, cpos);
|
||||
return potongan.toString();
|
||||
}
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, boolean supervisi) throws Exception {
|
||||
|
||||
private boolean checkAuthSecure(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
boolean supervisi) throws Exception {
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
LOG.info("Empty login user");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Empty login user");
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
@ -176,132 +109,92 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
int result = -1;
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
|
||||
MapObjekModulToLoginUser modul = mapObjekModulToLoginUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), user.getId());
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action){
|
||||
|
||||
|
||||
private int checkKelompokUserPermision(LoginUser user, ObjekModulAplikasiVO objekModulAplikasiVO, int action) {
|
||||
KelompokUser role = user.getKelompokUser();
|
||||
int result = -2;
|
||||
|
||||
if (role != null) {
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
MapObjekModulToKelompokUser modul = mapObjekModulToKelompokUserService
|
||||
.findByObjekModulAplikasi(objekModulAplikasiVO.getId(), role.getId());
|
||||
result = -1;
|
||||
if (modul != null) {
|
||||
LOG.info("Module security match");
|
||||
result = 0;
|
||||
switch (action) {
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak()){
|
||||
result = 1;
|
||||
}
|
||||
break;
|
||||
case AppPermission.ADD:
|
||||
if (modul.getSimpan())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.UPDATE:
|
||||
if (modul.getEdit())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.DELETE:
|
||||
if (modul.getHapus())
|
||||
result = 1;
|
||||
break;
|
||||
case AppPermission.PRINT:
|
||||
if (modul.getCetak())
|
||||
result = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm, int action) throws Exception {
|
||||
// Alter modified Syamsu
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi)){
|
||||
LOG.warn(AlamatUrlForm + " : Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar objek modul aplikasi..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
}
|
||||
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false)) {
|
||||
private boolean checkPermission(HttpServletRequest request, HttpServletResponse response, String AlamatUrlForm,
|
||||
int action) throws Exception {
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasi = objekModulAplikasiService
|
||||
.findByAlamatUrlForm(filterUrlForm(AlamatUrlForm));
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasi))
|
||||
return true;
|
||||
if (!checkAuthSecure(request, response, AlamatUrlForm, false))
|
||||
return false;
|
||||
}
|
||||
|
||||
int resultUser = checkUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultUser == 0){
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
return false;
|
||||
} else if (resultUser == 1){
|
||||
} else if (resultUser == 1) {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
int resultKelompokUser = checkKelompokUserPermision(loginUser.get(0), objekModulAplikasi.get(0), action);
|
||||
|
||||
if (resultKelompokUser == -2){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no role to gain access restricted area", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no role to gain access restricted area");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == -1){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada di dalam daftar Map objek modul to kelompok user..");
|
||||
return true; // Defaultnya diloloskan semuanya...
|
||||
// LOG.info("User {} has no access to module application", namaUser);
|
||||
// response.setHeader("RequireSupervisor", "false");
|
||||
// response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
// "User " + namaUser + " has no access to module application");
|
||||
// response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
// return false;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
LOG.info("User {} has need superVisor for action in {} module application", namaUser, action);
|
||||
if (resultKelompokUser == -2) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == -1) {
|
||||
return true;
|
||||
} else if (resultKelompokUser == 0) {
|
||||
response.setHeader("RequireSupervisor", "true");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Action requires supervisor");
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
@ -310,113 +203,54 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
response.setHeader(Constants.MessageInfo.INFO_MESSAGE, "Supervise execution success");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* return true untuk valid permission request ke controller method
|
||||
*/
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||
////// Syamsu /////
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||
HandlerMethod hm;
|
||||
Method method = null;
|
||||
// int methodApp = AppPermission.VIEW;
|
||||
|
||||
Method method;
|
||||
response.setHeader("Access-Control-Expose-Headers", "RequireSupervisor" + ","
|
||||
+ Constants.MessageInfo.ERROR_MESSAGE + "," + Constants.MessageInfo.INFO_MESSAGE);
|
||||
|
||||
////// Syamsu /////
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "": request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
|
||||
// Buat Om, Kang, Aa Reza terkait Security Role
|
||||
//String KdRuangan = null;
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? "": request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
int action = AppPermission.VIEW;
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm)){
|
||||
//LOG.warn("Sementara defaultnya di loloskan semuanya di AppInterceptor jika tidak ada header 'AlamatUrlForm' ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan)){
|
||||
LOG.warn("Sementara defaultnya diloloskan semuanya di AppInterceptor jika tidak ada header 'KdRuangan' atau header 'KdRuangan'nya 0 ..");
|
||||
return true; // Lewatin dulu sementara;
|
||||
}
|
||||
|
||||
//String headerAction = request.getHeader(Constants.HttpHeader.ACTION) == null ? "" : request.getHeader(Constants.HttpHeader.ACTION);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(AlamatUrlForm))
|
||||
return true;
|
||||
if (CommonUtil.isNullOrEmpty(KdRuangan) || "0".equals(KdRuangan))
|
||||
return true;
|
||||
String URI = request.getRequestURI();
|
||||
String methodHttp = request.getMethod();
|
||||
|
||||
try {
|
||||
// Alter modified Syamsu
|
||||
if (handler instanceof org.springframework.web.method.HandlerMethod) {
|
||||
hm = (HandlerMethod) handler;
|
||||
method = hm.getMethod();
|
||||
} else {
|
||||
return checkAuthSecure(request, response, AlamatUrlForm, true);
|
||||
}
|
||||
|
||||
// AlamatUrlForm // Alter modified Syamsu
|
||||
boolean usingAnno = method != null && method.isAnnotationPresent(AppPermission.class);
|
||||
|
||||
boolean postM = "POST".equals(methodHttp);
|
||||
boolean signInOut = !URI.contains("auth/sign-in") && !URI.contains("auth/sign-out");
|
||||
boolean getM = "GET".equals(methodHttp);
|
||||
boolean cetak = contains (URI, PRINT_PATTERN);
|
||||
|
||||
/*(URI.contains("/lap_") || URI.contains("/lap-") || URI.contains("/lap")
|
||||
|| URI.contains("/cetak_") || URI.contains("/print_") || URI.contains("/cetak-")
|
||||
|| URI.contains("/print-"));*/
|
||||
|
||||
boolean simpan = contains (URI, ADD_PATTERN);
|
||||
|
||||
/*(URI.contains("/save_") || URI.contains("/add_") || URI.contains("/simpan_")
|
||||
|| URI.contains("/save-") || URI.contains("/add-") || URI.contains("/simpan-"));*/
|
||||
|
||||
boolean ubah = contains (URI, UPDATE_PATTERN);
|
||||
|
||||
/*(URI.contains("/update_") || URI.contains("/edit_") || URI.contains("/ubah_")
|
||||
|| URI.contains("/update-") || URI.contains("/edit-") || URI.contains("/ubah-"));*/
|
||||
|
||||
boolean hapus = contains (URI, DELETE_PATTERN);
|
||||
|
||||
/*(URI.contains("/delete_") || URI.contains("/hapus_") || URI.contains("/delete-")
|
||||
|| URI.contains("/hapus-")); */
|
||||
|
||||
boolean cetak = contains(URI, PRINT_PATTERN);
|
||||
boolean simpan = contains(URI, ADD_PATTERN);
|
||||
boolean ubah = contains(URI, UPDATE_PATTERN);
|
||||
boolean hapus = contains(URI, DELETE_PATTERN);
|
||||
if (usingAnno) {
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
if (AppPermission.SPECIALS == action /* && "#/home".equals(AlamatUrlForm) */) {
|
||||
if (AppPermission.SPECIALS == action)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (getM && cetak) {
|
||||
|
||||
action = AppPermission.PRINT;
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
}
|
||||
|
||||
if ((usingAnno || postM) && signInOut) {
|
||||
|
||||
if (simpan) {
|
||||
action = AppPermission.ADD;
|
||||
} else if (ubah) {
|
||||
@ -426,345 +260,104 @@ public class AppInterceptor implements HandlerInterceptor {
|
||||
} else if (cetak) {
|
||||
action = AppPermission.PRINT;
|
||||
}
|
||||
|
||||
// if (headerAction != null && !"".equals(headerAction)) {
|
||||
// action = headerActionToAction(headerAction);
|
||||
// }
|
||||
|
||||
if (method.getAnnotation(AppPermission.class) != null) {
|
||||
if (method != null && method.getAnnotation(AppPermission.class) != null)
|
||||
action = method.getAnnotation(AppPermission.class).value();
|
||||
}
|
||||
|
||||
return checkPermission(request, response, AlamatUrlForm, action);
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.out.println("Not Found " + request.getRequestURL());
|
||||
|
||||
LOG.info("Error accured unauthorized");
|
||||
response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "Something wrong happened");
|
||||
response.setHeader("RequireSupervisor", "false");
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
// TUTUP DULU PENGGUNAANNYA...
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) throws Exception {}
|
||||
|
||||
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex) throws Exception {
|
||||
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex)
|
||||
throws Exception {
|
||||
String AlamatUrlForm = request.getHeader(Constants.HttpHeader.URL_FORM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
|
||||
String idRuanganTujuan = request.getHeader(Constants.HttpHeader.KD_RUANGAN_T) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_T);
|
||||
|
||||
String idRuanganTujuanA = request.getHeader(Constants.HttpHeader.KD_RUANGAN_A) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.KD_RUANGAN_A);
|
||||
|
||||
String tglKirim = request.getHeader(Constants.HttpHeader.TGL_KIRIM) == null ? ""
|
||||
: request.getHeader(Constants.HttpHeader.TGL_KIRIM);
|
||||
|
||||
boolean notHttpOK = response.getStatus() >= HttpServletResponse.SC_BAD_REQUEST;
|
||||
boolean notLewatMenu = CommonUtil.isNullOrEmpty(AlamatUrlForm) || CommonUtil.isNullOrEmpty(KdRuangan);
|
||||
|
||||
Integer ruanganAsalId = 0;
|
||||
|
||||
try {
|
||||
ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
}catch(Exception e){
|
||||
ex = e;
|
||||
}
|
||||
|
||||
|
||||
Integer ruanganAsalId = Integer.parseInt(KdRuangan);
|
||||
boolean adaError = CommonUtil.isNotNullOrEmpty(ex);
|
||||
if (notHttpOK || notLewatMenu || adaError){
|
||||
if (notHttpOK || notLewatMenu || adaError)
|
||||
return;
|
||||
}
|
||||
|
||||
Authentication authentication = tokenAuthenticationService.getAuthentication(request);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(authentication)){
|
||||
if (CommonUtil.isNullOrEmpty(authentication))
|
||||
return;
|
||||
}
|
||||
|
||||
namaUser = authentication.getName();
|
||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(loginUser)) {
|
||||
if (CommonUtil.isNullOrEmpty(loginUser))
|
||||
return;
|
||||
}
|
||||
|
||||
String potongan = filterUrlForm(AlamatUrlForm);
|
||||
List<ObjekModulAplikasiVO> objekModulAplikasiVOs = objekModulAplikasiService.findByAlamatUrlForm(potongan);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs)){
|
||||
if (CommonUtil.isNullOrEmpty(objekModulAplikasiVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
String URI = request.getRequestURI();
|
||||
|
||||
Integer objekModulAplikasId = objekModulAplikasiVOs.get(0).getId();
|
||||
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs)) {
|
||||
List<NotifMessagingVO> notifMessagingVOs = notifMessagingService
|
||||
.findByObjekModulAplikasiIdAndUrlBackEndOrUrlBackEndIsNull(objekModulAplikasId, URI);
|
||||
if (CommonUtil.isNullOrEmpty(notifMessagingVOs))
|
||||
return;
|
||||
}
|
||||
|
||||
Integer notifMessagingId = notifMessagingVOs.get(0).getId();
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(tglKirim)) {
|
||||
|
||||
|
||||
List<Integer> ruanganTujuansId = new ArrayList<>();
|
||||
System.out.println("--");
|
||||
|
||||
if (!"".equals(idRuanganTujuan)){
|
||||
if (!"".equals(idRuanganTujuan)) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!"".equals(idRuanganTujuanA) && ruanganTujuansId.isEmpty()) {
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuanA);
|
||||
for (int i=0; i<ruanganTujuanIds.length(); i++){
|
||||
for (int i = 0; i < ruanganTujuanIds.length(); i++) {
|
||||
Integer ruanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
ruanganTujuansId.add(ruanganTujuanId);
|
||||
}
|
||||
}
|
||||
|
||||
MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
||||
|
||||
Pegawai pegawai = loginUser.get(0).getPegawai();
|
||||
Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
||||
|
||||
|
||||
if (ruanganTujuansId.size() > 0){
|
||||
try{
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
LOG.info(DateUtil.now()+" send notif dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
||||
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
if (!ruanganTujuansId.isEmpty())
|
||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService,
|
||||
notifMessagingId, ruanganTujuansId);
|
||||
} else {
|
||||
JSONArray tglKirims = new JSONArray(tglKirim);
|
||||
JSONArray ruanganTujuanIds = new JSONArray(idRuanganTujuan);
|
||||
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
for (int i=0; i<tglKirims.length(); i++){
|
||||
for (int i = 0; i < tglKirims.length(); i++) {
|
||||
String ctglKirim = tglKirims.optString(i, "");
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i,0);
|
||||
Integer cRuanganTujuanId = ruanganTujuanIds.optInt(i, 0);
|
||||
Date date = myFormat.parse(ctglKirim);
|
||||
|
||||
NotifMessagingSchedulerVO vo = new NotifMessagingSchedulerVO();
|
||||
|
||||
vo.setTglKirim(date);
|
||||
vo.setTerkirim(false);
|
||||
vo.setNotifMessagingId(notifMessagingId);
|
||||
vo.setRuanganIdAsal(ruanganAsalId);
|
||||
vo.setRuanganIdTujuan(cRuanganTujuanId);
|
||||
vo.setPegawaiId(loginUser.get(0).getPegawai().getId());
|
||||
|
||||
vo.setKdProfile((short)0);
|
||||
vo.setKdProfile((short) 0);
|
||||
vo.setKodeExternal("");
|
||||
vo.setNamaExternal("");
|
||||
vo.setReportDisplay("");
|
||||
vo.setStatusEnabled(true);
|
||||
|
||||
notifMessagingSchedulerService.add(vo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// <T extends BaseMasterVO> T convertToVO(T t, Object o){
|
||||
// BeanUtils.copyProperties(t, o);
|
||||
// return t;
|
||||
// }
|
||||
|
||||
// try{
|
||||
//
|
||||
//
|
||||
// String AlamatUrlForm =
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM) == null ? "" :
|
||||
// request.getHeader(Constants.HttpHeader.URL_FORM);
|
||||
// String KdRuangan = request.getHeader(Constants.HttpHeader.KD_RUANGAN)
|
||||
// == null ? "" : request.getHeader(Constants.HttpHeader.KD_RUANGAN);
|
||||
//
|
||||
// Authentication authentication =
|
||||
// tokenAuthenticationService.getAuthentication(request);
|
||||
//
|
||||
// namaUser = authentication.getName();
|
||||
// loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||
//
|
||||
//
|
||||
// if (loginUser.isEmpty()) {
|
||||
// publisher.BroadcastMessage(KdRuangan, namaUser, AlamatUrlForm);
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//// String routingKeyAndQueueName = "ruanganId." + KdRuangan;
|
||||
////
|
||||
//// publisher.sendRabbitMQNotification("127.0.0.1", "ruanganId." +
|
||||
// KdRuangan, "Kd Ruangan : " + KdRuangan + ", AlamatUrlForm : " +
|
||||
// AlamatUrlForm);
|
||||
////
|
||||
//// subscriber.startRabbitMQNotification("127.0.0.1",
|
||||
// routingKeyAndQueueName);
|
||||
//// subscriber.listenRabbitMQNotification(routingKeyAndQueueName,
|
||||
// subscriber.getDefaultConsumer(), false);
|
||||
//// subscriber.stopRabbitMQNotification();
|
||||
//
|
||||
// }catch(Exception e){
|
||||
// //e.printStackTrace();
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// //String urlSocket = messagePublisher.GetSettingDataFixed("UrlRabbitMQMessaging"); sementara kunci dulu.
|
||||
//
|
||||
// String urlSocket = "127.0.0.1";
|
||||
//
|
||||
// List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
||||
//
|
||||
// if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// Integer ruanganIdtemp = 0;
|
||||
// boolean connect = false;
|
||||
//
|
||||
// for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
|
||||
// Ruangan ruangan = vo.getRuangan();
|
||||
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
||||
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
||||
// String customURLObjekModul = vo.getCustomURLObjekModul();
|
||||
// String titleNotifikasi = vo.getTitleNotifikasi();
|
||||
// String pesanNotifikasi = vo.getPesanNotifikasi();
|
||||
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
||||
//
|
||||
// if (ruangan.getId() == ruanganId){
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
||||
//
|
||||
// if (ruanganIdtemp != ruangan.getId()){
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
||||
// connect = true;
|
||||
// ruanganIdtemp = ruangan.getId();
|
||||
// }
|
||||
//
|
||||
// Map<String, Object> map = new HashMap<>();
|
||||
// map.put("title", titleNotifikasi);
|
||||
// map.put("dariRuangan", dariRuangan);
|
||||
// map.put("ruanganId", ruangan.getId());
|
||||
// map.put("ruangan", convertToVO(new RuanganVO(), ruangan));
|
||||
// map.put("modulAplikasi", convertToVO(new ModulAplikasiVO(), modulAplikasi));
|
||||
// map.put("objekModulAplikasi", convertToVO(new ObjekModulAplikasiVO(), objekModulAplikasi));
|
||||
// map.put("titleNotifikasi", titleNotifikasi);
|
||||
// map.put("pesanNotifikasi", pesanNotifikasi);
|
||||
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
||||
// map.put("fromPegawai", loginUser.get(0).getPegawai());
|
||||
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
|
||||
//
|
||||
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
||||
//
|
||||
// //messagePublisher.BroadcastMessage(map);
|
||||
// }
|
||||
// if (connect){
|
||||
// rabbitHole.close();
|
||||
// }
|
||||
|
||||
|
||||
// private static final TypeAdapterFactory FACTORY = new TypeAdapterFactory() {
|
||||
// @Override
|
||||
// @SuppressWarnings("unchecked")
|
||||
// public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
||||
// return (HibernateProxy.class.isAssignableFrom(type.getRawType())
|
||||
// ? (TypeAdapter<T>) new HibernateProxyTypeAdapter((TypeAdapter)gson.getAdapter(TypeToken.get(type.getRawType().getSuperclass())))
|
||||
// : null);
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// private static final class HibernateProxyTypeAdapter extends TypeAdapter<HibernateProxy> {
|
||||
//
|
||||
// private final TypeAdapter<Object> delegate;
|
||||
//
|
||||
// private HibernateProxyTypeAdapter(TypeAdapter<Object> delegate) {
|
||||
// this.delegate = delegate;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public HibernateProxy read(JsonReader r) throws IOException {
|
||||
// throw new UnsupportedOperationException("Not supported");
|
||||
// }
|
||||
//
|
||||
// @SuppressWarnings({"rawtypes", "unchecked"})
|
||||
// @Override
|
||||
// public void write(JsonWriter out, HibernateProxy value) throws IOException {
|
||||
// if (value == null) {
|
||||
// out.nullValue();
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// delegate.write(out, ((HibernateProxy) value).getHibernateLazyInitializer().getImplementation());
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* else if (method.isAnnotationPresent(AppMenuPermision.class)){
|
||||
*
|
||||
* Authentication authentication =
|
||||
* tokenAuthenticationService.getAuthentication(request);
|
||||
*
|
||||
* String namaUser = authentication.getName();
|
||||
*
|
||||
* List<LoginUser> loginUser =
|
||||
* loginUserDao.findByNamaUser(namaUser);
|
||||
*
|
||||
* if (loginUser.isEmpty()) { // untuk testing false
|
||||
* response.addHeader("Access-Control-Expose-Headers",
|
||||
* "content-type");
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE, "User " +
|
||||
* namaUser + " can not access current menu ");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; }
|
||||
*
|
||||
* // get user login if (!loginUser.isEmpty()) { LoginUser user =
|
||||
* loginUser.get(0); }else{ LOG.info("User {} is unauthorized",
|
||||
* namaUser);
|
||||
* response.setHeader(Constants.MessageInfo.ERROR_MESSAGE,
|
||||
* "User is unauthorized");
|
||||
* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return
|
||||
* false; } }
|
||||
*/
|
||||
@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
|
||||
|
||||
<bean id="tokenAuthenticationService" class="com.jasamedika.medifirst2000.security.service.TokenAuthenticationService" />
|
||||
|
||||
<!-- Configures interceptor -->
|
||||
<mvc:interceptors>
|
||||
<bean class="com.jasamedika.medifirst2000.interceptor.AppInterceptor" />
|
||||
</mvc:interceptors>
|
||||
|
||||
</beans>
|
||||
Loading…
x
Reference in New Issue
Block a user