Update service login user
Perbaikan serialisasi login user dan pegawai
This commit is contained in:
parent
90241ab74d
commit
7c1011ff48
@ -1,21 +1,15 @@
|
|||||||
package com.jasamedika.medifirst2000.converter;
|
package com.jasamedika.medifirst2000.converter;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.converter.base.BaseVoConverter;
|
import com.jasamedika.medifirst2000.converter.base.BaseVoConverter;
|
||||||
import com.jasamedika.medifirst2000.dao.custom.base.impl.FindConverterDao;
|
import com.jasamedika.medifirst2000.dao.custom.base.impl.FindConverterDao;
|
||||||
import com.jasamedika.medifirst2000.entities.KelompokUser;
|
import com.jasamedika.medifirst2000.entities.KelompokUser;
|
||||||
import com.jasamedika.medifirst2000.entities.LoginUser;
|
import com.jasamedika.medifirst2000.entities.LoginUser;
|
||||||
import com.jasamedika.medifirst2000.service.KelompokUserService;
|
|
||||||
import com.jasamedika.medifirst2000.service.PegawaiService;
|
|
||||||
import com.jasamedika.medifirst2000.util.ExtendedSpringBeanUtil;
|
import com.jasamedika.medifirst2000.util.ExtendedSpringBeanUtil;
|
||||||
import com.jasamedika.medifirst2000.vo.KelompokUserVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.LoginUserVO;
|
import com.jasamedika.medifirst2000.vo.LoginUserVO;
|
||||||
import com.jasamedika.medifirst2000.vo.PegawaiVO;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converter class between LoginUser and LoginUserVO
|
* Converter class between LoginUser and LoginUserVO
|
||||||
@ -23,85 +17,22 @@ import com.jasamedika.medifirst2000.vo.PegawaiVO;
|
|||||||
* @author Roberto
|
* @author Roberto
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class LoginUserAuthConverter extends FindConverterDao implements
|
public class LoginUserAuthConverter extends FindConverterDao implements BaseVoConverter<LoginUserVO, LoginUser> {
|
||||||
BaseVoConverter<LoginUserVO, LoginUser> {
|
|
||||||
/*
|
|
||||||
@Override
|
|
||||||
public LoginUser transferVOToModel(LoginUserVO vo, LoginUser model) {
|
public LoginUser transferVOToModel(LoginUserVO vo, LoginUser model) {
|
||||||
if (null == model)
|
if (null == model)
|
||||||
model = new LoginUser();
|
model = new LoginUser();
|
||||||
|
ExtendedSpringBeanUtil.copySpecificProperties(vo, model, new String[] { "id", "kataSandi", "namaUser", },
|
||||||
try {
|
new String[] { "id", "kataSandi", "namaUser", });
|
||||||
String[] fieldsToInclude = null;
|
|
||||||
Map<String, Object> serialized = vo.serialize(fieldsToInclude,vo.getClass().getName());
|
|
||||||
Gson gson = new Gson();
|
|
||||||
String json = gson.toJson(serialized);
|
|
||||||
model = gson.fromJson(json, LoginUser.class);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
return model;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<LoginUserVO> transferListOfModelToListOfVO(List<LoginUser> models, List<LoginUserVO> vos) {
|
|
||||||
if (null == vos)
|
|
||||||
vos = new ArrayList<LoginUserVO>();
|
|
||||||
|
|
||||||
if (null == models)
|
|
||||||
return vos;
|
|
||||||
|
|
||||||
for (LoginUser loginUser : models) {
|
|
||||||
LoginUserVO vo = new LoginUserVO();
|
|
||||||
vo=transferModelToVO(loginUser, vo);
|
|
||||||
vos.add(vo);
|
|
||||||
}
|
|
||||||
|
|
||||||
return vos;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public LoginUserVO transferModelToVO(LoginUser model, LoginUserVO vo) {
|
|
||||||
if (null == vo)
|
|
||||||
vo = new LoginUserVO();
|
|
||||||
try {
|
|
||||||
String[] fieldsToInclude = null;
|
|
||||||
Map<String, Object> serialized = model.serialize(fieldsToInclude,model.getClass().getSimpleName());
|
|
||||||
Gson gson = new Gson();
|
|
||||||
|
|
||||||
String json = gson.toJson(serialized);
|
|
||||||
vo = gson.fromJson(json, LoginUserVO.class);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
return vo;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
public LoginUser transferVOToModel(LoginUserVO vo, LoginUser model) {
|
|
||||||
if (null == model)
|
|
||||||
model = new LoginUser();
|
|
||||||
|
|
||||||
// fix this
|
|
||||||
ExtendedSpringBeanUtil.copySpecificProperties(vo, model, new String[] {
|
|
||||||
"id", "kataSandi", "namaUser", }, new String[] { "id",
|
|
||||||
"kataSandi", "namaUser", });
|
|
||||||
if (vo.getKelompokUser() != null) {
|
if (vo.getKelompokUser() != null) {
|
||||||
KelompokUser kelompokUser = (KelompokUser) findObjectById(
|
KelompokUser kelompokUser = (KelompokUser) findObjectById(KelompokUser.class, vo.getKelompokUser().getId());
|
||||||
KelompokUser.class, vo.getKelompokUser().getId());
|
|
||||||
model.setKelompokUser(kelompokUser);
|
model.setKelompokUser(kelompokUser);
|
||||||
}
|
}
|
||||||
return model;
|
return model;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<LoginUserVO> transferListOfModelToListOfVO(
|
public List<LoginUserVO> transferListOfModelToListOfVO(List<LoginUser> models, List<LoginUserVO> vos) {
|
||||||
List<LoginUser> models, List<LoginUserVO> vos) {
|
|
||||||
if (null == vos)
|
if (null == vos)
|
||||||
vos = new ArrayList<LoginUserVO>();
|
vos = new ArrayList<>();
|
||||||
|
|
||||||
if (null == models)
|
if (null == models)
|
||||||
return vos;
|
return vos;
|
||||||
|
|
||||||
@ -110,35 +41,14 @@ public class LoginUserAuthConverter extends FindConverterDao implements
|
|||||||
transferModelToVO(loginUser, loginUserVO);
|
transferModelToVO(loginUser, loginUserVO);
|
||||||
vos.add(loginUserVO);
|
vos.add(loginUserVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
return vos;
|
return vos;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LoginUserVO transferModelToVO(LoginUser model, LoginUserVO vo) {
|
public LoginUserVO transferModelToVO(LoginUser model, LoginUserVO vo) {
|
||||||
if (null == vo)
|
if (null == vo)
|
||||||
|
|
||||||
vo = new LoginUserVO();
|
vo = new LoginUserVO();
|
||||||
|
ExtendedSpringBeanUtil.copySpecificProperties(model, vo, new String[] { "id", "kataSandi", "namaUser", },
|
||||||
// fix this
|
new String[] { "id", "kataSandi", "namaUser", });
|
||||||
ExtendedSpringBeanUtil.copySpecificProperties(model, vo, new String[] {
|
|
||||||
"id", "kataSandi", "namaUser", }, new String[] { "id",
|
|
||||||
"kataSandi", "namaUser", });
|
|
||||||
|
|
||||||
if (model.getKelompokUser() != null) {
|
|
||||||
KelompokUserVO kelompokUserVo = kelompokUserService.findById(model
|
|
||||||
.getKelompokUser().getId());
|
|
||||||
vo.setKelompokUser(kelompokUserVo);
|
|
||||||
}
|
|
||||||
if (model.getPegawai() != null) {
|
|
||||||
PegawaiVO kelompokUserVo = pgawaiService.findById(model
|
|
||||||
.getPegawai().getId());
|
|
||||||
vo.setPegawai(kelompokUserVo);
|
|
||||||
}
|
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private KelompokUserService kelompokUserService;
|
|
||||||
@Autowired
|
|
||||||
private PegawaiService pgawaiService;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -96,7 +96,6 @@ public class ActivityPegawaiServiceImpl implements ActivityPegawaiService {
|
|||||||
act.setTanggalKejadian(new Date());
|
act.setTanggalKejadian(new Date());
|
||||||
act = activityPegawaiDao.save(act);
|
act = activityPegawaiDao.save(act);
|
||||||
act = activityPegawaiDao.findOne(act.getNoRec());
|
act = activityPegawaiDao.findOne(act.getNoRec());
|
||||||
act.setPegawai(pegawaiDao.findById(pegawai.getId()));
|
|
||||||
try {
|
try {
|
||||||
BroadcastMessage("IKI", act.ToMap());
|
BroadcastMessage("IKI", act.ToMap());
|
||||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||||
|
|||||||
@ -2,7 +2,6 @@ package com.jasamedika.medifirst2000.service.impl;
|
|||||||
|
|
||||||
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
||||||
import com.jasamedika.medifirst2000.converter.LoginUserAuthConverter;
|
import com.jasamedika.medifirst2000.converter.LoginUserAuthConverter;
|
||||||
import com.jasamedika.medifirst2000.converter.LoginUserConverter;
|
|
||||||
import com.jasamedika.medifirst2000.dao.HistoryLoginModulAplikasiDao;
|
import com.jasamedika.medifirst2000.dao.HistoryLoginModulAplikasiDao;
|
||||||
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
import com.jasamedika.medifirst2000.dao.LoginUserDao;
|
||||||
import com.jasamedika.medifirst2000.dao.MapPegawaiToModulAplikasiDao;
|
import com.jasamedika.medifirst2000.dao.MapPegawaiToModulAplikasiDao;
|
||||||
@ -30,7 +29,6 @@ import java.util.*;
|
|||||||
|
|
||||||
@Service("LoginUserService")
|
@Service("LoginUserService")
|
||||||
public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUserService {
|
public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUserService {
|
||||||
|
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(LoginUserServiceImpl.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(LoginUserServiceImpl.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -43,10 +41,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
private LoginUserAuthConverter loginUserAuthConverter;
|
private LoginUserAuthConverter loginUserAuthConverter;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private LoginUserConverter loginUserConverter;
|
private BaseConverterImpl<LoginUserVO, LoginUser> loginUserConverter;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private BaseConverterImpl<LoginUserVO, LoginUser> loginUserConverters;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private BaseConverterImpl<PegawaiVO, Pegawai> pegawaiConverter;
|
private BaseConverterImpl<PegawaiVO, Pegawai> pegawaiConverter;
|
||||||
@ -103,7 +98,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = false)
|
@Transactional
|
||||||
public LoginUserVO add(LoginUserVO vo) throws JpaSystemException, ServiceVOException {
|
public LoginUserVO add(LoginUserVO vo) throws JpaSystemException, ServiceVOException {
|
||||||
// convert to model and call repository
|
// convert to model and call repository
|
||||||
LoginUser loginUser = new LoginUser();
|
LoginUser loginUser = new LoginUser();
|
||||||
@ -113,7 +108,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
try {
|
try {
|
||||||
loginUser.setKataSandi(passwordUtil.encryptPassword(loginUser.getKataSandi()));
|
loginUser.setKataSandi(passwordUtil.encryptPassword(loginUser.getKataSandi()));
|
||||||
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
|
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
|
||||||
e.printStackTrace();
|
throw new ServiceVOException(e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
LoginUser resultModel = loginUserDao.save(loginUser);
|
LoginUser resultModel = loginUserDao.save(loginUser);
|
||||||
@ -126,7 +121,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = false)
|
@Transactional
|
||||||
public LoginUserVO update(LoginUserVO vo) throws JpaSystemException, ServiceVOException {
|
public LoginUserVO update(LoginUserVO vo) throws JpaSystemException, ServiceVOException {
|
||||||
|
|
||||||
// Alter Syamsu
|
// Alter Syamsu
|
||||||
@ -139,7 +134,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
try {
|
try {
|
||||||
loginUserLama.setKataSandi(passwordUtil.encryptPassword(loginUserLama.getKataSandi()));
|
loginUserLama.setKataSandi(passwordUtil.encryptPassword(loginUserLama.getKataSandi()));
|
||||||
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
|
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
|
||||||
e.printStackTrace();
|
throw new ServiceVOException(e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
loginUserDao.save(loginUserLama);
|
loginUserDao.save(loginUserLama);
|
||||||
@ -152,7 +147,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = false)
|
@Transactional
|
||||||
public Boolean delete(Integer key) throws JpaSystemException {
|
public Boolean delete(Integer key) throws JpaSystemException {
|
||||||
if (loginUserDao.exists(key)) {
|
if (loginUserDao.exists(key)) {
|
||||||
loginUserDao.delete(key);
|
loginUserDao.delete(key);
|
||||||
@ -180,7 +175,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
|
|
||||||
List<LoginUser> loginUserList = IteratorUtils.toList(loginUserDao.findAll().iterator());
|
List<LoginUser> loginUserList = IteratorUtils.toList(loginUserDao.findAll().iterator());
|
||||||
|
|
||||||
List<LoginUserVO> loginUserVOList = new ArrayList<LoginUserVO>();
|
List<LoginUserVO> loginUserVOList = new ArrayList<>();
|
||||||
loginUserConverter.transferListOfModelToListOfVO(loginUserList, loginUserVOList);
|
loginUserConverter.transferListOfModelToListOfVO(loginUserList, loginUserVOList);
|
||||||
|
|
||||||
return loginUserVOList;
|
return loginUserVOList;
|
||||||
@ -202,7 +197,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
|
|
||||||
LoginUser loginUser = loginUsers.get(0);
|
LoginUser loginUser = loginUsers.get(0);
|
||||||
PasswordUtil passwordUtil = new PasswordUtil();
|
PasswordUtil passwordUtil = new PasswordUtil();
|
||||||
Boolean isValidPassword = false;
|
boolean isValidPassword;
|
||||||
try {
|
try {
|
||||||
isValidPassword = passwordUtil.isPasswordEqual(authVO.getKataSandi(), loginUser.getKataSandi());
|
isValidPassword = passwordUtil.isPasswordEqual(authVO.getKataSandi(), loginUser.getKataSandi());
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
@ -214,11 +209,19 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
// to do validasi yang advanced di sini
|
// to do validasi yang advanced di sini
|
||||||
|
|
||||||
LoginUserVO vo = new LoginUserVO();
|
LoginUserVO vo = new LoginUserVO();
|
||||||
loginUserAuthConverter.transferModelToVO(loginUser, vo);
|
vo = loginUserAuthConverter.transferModelToVO(loginUser, vo);
|
||||||
|
if (CommonUtil.isNotNullOrEmpty(loginUser.getKelompokUser())) {
|
||||||
|
KelompokUserVO kelompokUserVO = new KelompokUserVO();
|
||||||
|
kelompokUserVO = kelompokUserConverter.transferModelToVO(loginUser.getKelompokUser(), kelompokUserVO);
|
||||||
|
vo.setKelompokUser(kelompokUserVO);
|
||||||
|
}
|
||||||
|
if (CommonUtil.isNotNullOrEmpty(loginUser.getPegawai())) {
|
||||||
|
PegawaiVO pegawaiVO = new PegawaiVO();
|
||||||
|
pegawaiVO = pegawaiConverter.transferModelToVO(loginUser.getPegawai(), pegawaiVO);
|
||||||
|
vo.setPegawai(pegawaiVO);
|
||||||
|
}
|
||||||
return vo;
|
return vo;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
throw new RuntimeException("User account is unauthorized : username : " + authVO.getNamaUser());
|
throw new RuntimeException("User account is unauthorized : username : " + authVO.getNamaUser());
|
||||||
}
|
}
|
||||||
@ -226,22 +229,20 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LoginUser getLoginUser() {
|
public LoginUser getLoginUser() {
|
||||||
List<LoginUser> loginUser = null;
|
|
||||||
try {
|
try {
|
||||||
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
||||||
String namaUser = principal.toString();
|
String namaUser = principal.toString();
|
||||||
loginUser = loginUserDao.findByNamaUser(namaUser);
|
List<LoginUser> loginUser = loginUserDao.findByNamaUser(namaUser);
|
||||||
|
return loginUser.get(0);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
throw new ServiceVOException(e.getMessage());
|
||||||
}
|
}
|
||||||
return loginUser.get(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> getAllUser() {
|
public Map<String, Object> getAllUser() {
|
||||||
Map<String, Object> result = new HashMap<String, Object>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
List<LoginUser> list = new ArrayList<LoginUser>();
|
List<LoginUser> list = loginUserDao.findAllUser();
|
||||||
list = (List<LoginUser>) loginUserDao.findAllUser();
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(list)) {
|
if (CommonUtil.isNotNullOrEmpty(list)) {
|
||||||
result.put("data", list);
|
result.put("data", list);
|
||||||
result.put("dataFound", true);
|
result.put("dataFound", true);
|
||||||
@ -251,12 +252,9 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reza
|
|
||||||
// -----------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> getLoadData() {
|
public Map<String, Object> getLoadData() {
|
||||||
Map<String, Object> result = new HashMap<String, Object>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
List<Map<String, Object>> listPegawai = loginUserDao.listPegawai();
|
List<Map<String, Object>> listPegawai = loginUserDao.listPegawai();
|
||||||
if (CommonUtil.isNotNullOrEmpty(listPegawai)) {
|
if (CommonUtil.isNotNullOrEmpty(listPegawai)) {
|
||||||
@ -348,7 +346,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
ex.printStackTrace();
|
throw new ServiceVOException(ex.getMessage());
|
||||||
}
|
}
|
||||||
return listSideMenu;
|
return listSideMenu;
|
||||||
}
|
}
|
||||||
@ -366,7 +364,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
|
|
||||||
LoginUser loginUser = new LoginUser();
|
LoginUser loginUser = new LoginUser();
|
||||||
if (CommonUtil.isNotNullOrEmpty(vo)) {
|
if (CommonUtil.isNotNullOrEmpty(vo)) {
|
||||||
loginUser = loginUserConverters.transferVOToModel(vo, new LoginUser());
|
loginUser = loginUserConverter.transferVOToModel(vo, new LoginUser());
|
||||||
loginUser.setKdProfile((short) 0);
|
loginUser.setKdProfile((short) 0);
|
||||||
loginUser.setStatusEnabled(true);
|
loginUser.setStatusEnabled(true);
|
||||||
loginUser.setKodeExternal("");
|
loginUser.setKodeExternal("");
|
||||||
@ -381,7 +379,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
try {
|
try {
|
||||||
loginUser.setKataSandi(new PasswordUtil().encryptPassword(vo.getKataSandi()));
|
loginUser.setKataSandi(new PasswordUtil().encryptPassword(vo.getKataSandi()));
|
||||||
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
|
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
|
||||||
e.printStackTrace();
|
throw new ServiceVOException(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (CommonUtil.isNotNullOrEmpty(vo.getPegawai())) {
|
if (CommonUtil.isNotNullOrEmpty(vo.getPegawai())) {
|
||||||
@ -441,9 +439,8 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
public Map<String, Object> getListRuangan(Integer loginUserId) {
|
public Map<String, Object> getListRuangan(Integer loginUserId) {
|
||||||
Map<String, Object> result = new HashMap<>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
List<Map<String, Object>> listRuangan = loginUserDao.getListRuangan(loginUserId);
|
List<Map<String, Object>> listRuangan = loginUserDao.getListRuangan(loginUserId);
|
||||||
if (CommonUtil.isNotNullOrEmpty(listRuangan)) {
|
if (CommonUtil.isNotNullOrEmpty(listRuangan))
|
||||||
result.put("listRuangan", listRuangan);
|
result.put("listRuangan", listRuangan);
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -451,62 +448,22 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
public Map<String, Object> getListModulAplikasi(Integer pegawaiId) {
|
public Map<String, Object> getListModulAplikasi(Integer pegawaiId) {
|
||||||
Map<String, Object> result = new HashMap<>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
List<Map<String, Object>> listModulAplikasi = loginUserDao.getListModulAplikasi(pegawaiId);
|
List<Map<String, Object>> listModulAplikasi = loginUserDao.getListModulAplikasi(pegawaiId);
|
||||||
if (CommonUtil.isNotNullOrEmpty(listModulAplikasi)) {
|
if (CommonUtil.isNotNullOrEmpty(listModulAplikasi))
|
||||||
result.put("listModulAplikasi", listModulAplikasi);
|
result.put("listModulAplikasi", listModulAplikasi);
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> getListObjectModulAplikasi(Integer modulAplikasiId) {
|
public List<Map<String, Object>> getListObjectModulAplikasi(Integer modulAplikasiId) {
|
||||||
List<Map<String, Object>> result = new ArrayList<>();
|
return new ArrayList<>();
|
||||||
// for(Map<String, Object> objectModulHead :
|
|
||||||
// loginUserDao.getObjectModulHeadByModul(modulAplikasiId)){
|
|
||||||
// Map<String, Object> parent = new HashMap<>();
|
|
||||||
//
|
|
||||||
// if(CommonUtil.isNotNullOrEmpty(objectModulHead)){
|
|
||||||
// parent.put("name", objectModulHead.get("objekModulAplikasi"));
|
|
||||||
// parent.put("noUrut", objectModulHead.get("objekModulNoUrut"));
|
|
||||||
//
|
|
||||||
// List<Map<String, Object>> listObjectModul =
|
|
||||||
// loginUserDao.getModulByModulHead((Integer)objectModulHead.get("id"));
|
|
||||||
// if(CommonUtil.isNullOrEmpty(listObjectModul)){
|
|
||||||
// parent.put("link", objectModulHead.get("alamatUrlForm"));
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// List<Map<String, Object>> listChildren = new ArrayList<>();
|
|
||||||
// for(Map<String, Object> objectModul: listObjectModul){
|
|
||||||
// Map<String, Object> children = new HashMap<>();
|
|
||||||
//
|
|
||||||
// if(CommonUtil.isNotNullOrEmpty(objectModul)){
|
|
||||||
// children.put("name", objectModul.get("objekModulAplikasi"));
|
|
||||||
// children.put("link", objectModul.get("alamatUrlForm"));
|
|
||||||
// children.put("noUrut", objectModul.get("objekModulNoUrut"));
|
|
||||||
// }
|
|
||||||
// if(CommonUtil.isNotNullOrEmpty(children)){
|
|
||||||
// listChildren.add(children);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if(CommonUtil.isNotNullOrEmpty(listChildren)){
|
|
||||||
// parent.put("children", listChildren);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if(CommonUtil.isNotNullOrEmpty(parent)){
|
|
||||||
// result.add(parent);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> saveUpdateLoginUser(LoginUserVO vo) {
|
public Map<String, Object> saveUpdateLoginUser(LoginUserVO vo) {
|
||||||
Map<String, Object> result = new HashMap<>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(vo)) {
|
if (CommonUtil.isNotNullOrEmpty(vo)) {
|
||||||
LoginUser loginUser = new LoginUser();
|
|
||||||
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(vo.getId())) {
|
if (CommonUtil.isNotNullOrEmpty(vo.getId())) {
|
||||||
loginUser = setLoginUser(vo);
|
LoginUser loginUser = setLoginUser(vo);
|
||||||
if (CommonUtil.isNotNullOrEmpty(loginUser)) {
|
if (CommonUtil.isNotNullOrEmpty(loginUser)) {
|
||||||
LoginUser loginUserResult = loginUserDao.save(loginUser);
|
LoginUser loginUserResult = loginUserDao.save(loginUser);
|
||||||
result.put("namaUser", loginUserResult.getNamaUser());
|
result.put("namaUser", loginUserResult.getNamaUser());
|
||||||
@ -518,7 +475,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
if (CommonUtil.isNotNullOrEmpty(users)) {
|
if (CommonUtil.isNotNullOrEmpty(users)) {
|
||||||
result.put("statusError", "Nama user sudah ada, silahkan input nama user lainya");
|
result.put("statusError", "Nama user sudah ada, silahkan input nama user lainya");
|
||||||
} else {
|
} else {
|
||||||
loginUser = setLoginUser(vo);
|
LoginUser loginUser = setLoginUser(vo);
|
||||||
if (CommonUtil.isNotNullOrEmpty(loginUser)) {
|
if (CommonUtil.isNotNullOrEmpty(loginUser)) {
|
||||||
LoginUser loginUserResult = loginUserDao.save(loginUser);
|
LoginUser loginUserResult = loginUserDao.save(loginUser);
|
||||||
result.put("namaUser", loginUserResult.getNamaUser());
|
result.put("namaUser", loginUserResult.getNamaUser());
|
||||||
@ -557,7 +514,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
|
|||||||
try {
|
try {
|
||||||
loginUser.setKataSandi(new PasswordUtil().encryptPassword(vo.getKataSandi()));
|
loginUser.setKataSandi(new PasswordUtil().encryptPassword(vo.getKataSandi()));
|
||||||
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
|
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
|
||||||
e.printStackTrace();
|
throw new ServiceVOException(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (CommonUtil.isNotNullOrEmpty(vo.getPegawai())) {
|
if (CommonUtil.isNotNullOrEmpty(vo.getPegawai())) {
|
||||||
|
|||||||
@ -1,29 +1,17 @@
|
|||||||
package com.jasamedika.medifirst2000.task.schedule;
|
package com.jasamedika.medifirst2000.task.schedule;
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.constants.Master;
|
import java.time.LocalDate;
|
||||||
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
import java.time.format.DateTimeFormatter;
|
||||||
import com.jasamedika.medifirst2000.dao.*;
|
|
||||||
import com.jasamedika.medifirst2000.dao.custom.PegawaiDaoCustom;
|
|
||||||
import com.jasamedika.medifirst2000.entities.*;
|
|
||||||
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.*;
|
|
||||||
import org.joda.time.Chronology;
|
|
||||||
import org.joda.time.chrono.ISOChronology;
|
|
||||||
import org.joda.time.chrono.IslamicChronology;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import com.jasamedika.medifirst2000.service.KalenderService;
|
||||||
import java.time.LocalDate;
|
import com.jasamedika.medifirst2000.service.PegawaiJadwalKerjaService;
|
||||||
import java.time.format.DateTimeFormatter;
|
import com.jasamedika.medifirst2000.service.SlipGajiService;
|
||||||
import java.util.*;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Salman
|
* @author Salman
|
||||||
@ -34,286 +22,27 @@ public class ScheduleTask {
|
|||||||
private static final Logger LOGGER = LoggerFactory.getLogger(ScheduleTask.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(ScheduleTask.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private KalenderDao kalenderDao;
|
private KalenderService kalenderService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PegawaiDao pegawaiDao;
|
private PegawaiJadwalKerjaService pegawaiJadwalKerjaService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PegawaiDaoCustom pegawaiDaoCustom;
|
private SlipGajiService slipGajiService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private PegawaiJadwalKerjaDao pegawaiJadwalKerjaDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ShiftKerjaDao shiftKerjaDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SlipGajiDao slipGajiDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private MapPegawaiJabatanToUnitKerjaDao mappingJabatanDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SlipGajiDetailDao slipGajiDetailDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private BaseConverterImpl<PegawaiJadwalKerjaVO, PegawaiJadwalKerja> pegawaiJadwalKerjaConverter;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private BaseConverterImpl<PegawaiVO, Pegawai> pegawaiConverter;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private BaseConverterImpl<RuanganVO, Ruangan> ruanganConverter;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private BaseConverterImpl<ShiftKerjaVO, ShiftKerja> shiftKerjaConverter;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private BaseConverterImpl<KalenderVO, Kalender> kalenderConverter;
|
|
||||||
|
|
||||||
@Scheduled(cron = "0 0 23 30 6 ?")
|
@Scheduled(cron = "0 0 23 30 6 ?")
|
||||||
public void generateKalender() {
|
public void generateKalender() {
|
||||||
LOGGER.info("Generate kalender tahun {}",
|
LOGGER.info("Generate kalender tahun {}",
|
||||||
LocalDate.now().plusYears(1).format(DateTimeFormatter.ofPattern("yyyy")));
|
LocalDate.now().plusYears(1).format(DateTimeFormatter.ofPattern("yyyy")));
|
||||||
|
|
||||||
saveKalender();
|
kalenderService.generateAndSaveKalender();
|
||||||
}
|
|
||||||
|
|
||||||
@Transactional
|
|
||||||
private void saveKalender() {
|
|
||||||
List<Kalender> kals = new ArrayList<>();
|
|
||||||
Calendar ct = Calendar.getInstance();
|
|
||||||
ct.set(Calendar.MONTH, 0);
|
|
||||||
ct.set(Calendar.DAY_OF_MONTH, 1);
|
|
||||||
ct.set(Calendar.HOUR, 0);
|
|
||||||
ct.set(Calendar.MINUTE, 0);
|
|
||||||
ct.set(Calendar.SECOND, 0);
|
|
||||||
ct.set(Calendar.MILLISECOND, 0);
|
|
||||||
ct.add(Calendar.YEAR, 1);
|
|
||||||
Calendar c = Calendar.getInstance();
|
|
||||||
Date lastDate = kalenderDao.getLastDateData();
|
|
||||||
c.setTime(lastDate);
|
|
||||||
c.add(Calendar.DATE, 1);
|
|
||||||
if (ct.getTime().compareTo(c.getTime()) == 0) {
|
|
||||||
int daysInYear = c.getActualMaximum(Calendar.DAY_OF_YEAR);
|
|
||||||
for (int i = 1; i <= daysInYear; i++) {
|
|
||||||
c.set(Calendar.DAY_OF_YEAR, i);
|
|
||||||
Kalender kal = new Kalender();
|
|
||||||
kal.setKdProfile((short) 0);
|
|
||||||
kal.setStatusEnabled(Master.STATUS_ENABLE_TRUE);
|
|
||||||
kal.setBulanKeDlmTahun((byte) (c.get(Calendar.MONTH) + 1));
|
|
||||||
kal.setHariKeDlmBulan((byte) c.get(Calendar.DAY_OF_MONTH));
|
|
||||||
kal.setHariKeDlmMinggu((byte) c.get(Calendar.WEEK_OF_MONTH));
|
|
||||||
kal.setHariKeDlmTahun((short) c.get(Calendar.DAY_OF_YEAR));
|
|
||||||
kal.setKdTanggal(c.get(Calendar.DAY_OF_YEAR));
|
|
||||||
kal.setNamaBulan(new SimpleDateFormat("MMMM", new java.util.Locale("id")).format(c.getTime()));
|
|
||||||
kal.setNamaHari(new SimpleDateFormat("EEEE", new java.util.Locale("id")).format(c.getTime()));
|
|
||||||
kal.setqTanggal(c.get(Calendar.DAY_OF_YEAR));
|
|
||||||
kal.setTahunKalender((short) c.get(Calendar.YEAR));
|
|
||||||
kal.setTanggal(c.getTime());
|
|
||||||
kals.add(kal);
|
|
||||||
}
|
|
||||||
kalenderDao.save(kals);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Scheduled(cron = "0 0 0 1 * ?")
|
@Scheduled(cron = "0 0 0 1 * ?")
|
||||||
public void genarateJadwalPegawaiNonShift() {
|
public void genarateJadwalPegawaiNonShift() {
|
||||||
LOGGER.info("Generate jadwal pegawai bulan {}", LocalDate.now().format(DateTimeFormatter.ofPattern("MM-yyyy")));
|
LOGGER.info("Generate jadwal pegawai bulan {}", LocalDate.now().format(DateTimeFormatter.ofPattern("MM-yyyy")));
|
||||||
|
|
||||||
saveJadwalKerjaNonShift();
|
pegawaiJadwalKerjaService.autoSaveJadwalKerjaNonShift();
|
||||||
}
|
|
||||||
|
|
||||||
private void saveJadwalKerjaNonShift() {
|
|
||||||
/*
|
|
||||||
* Perbaikan Method ini mohon untuk diikutsertakan juga memperbaiki
|
|
||||||
* Map<String, Object> findPegawaiByRuanganRev2(Integer ruangan, Integer
|
|
||||||
* tahun, Integer bulan, Integer idPegawai) Map<String, Object>
|
|
||||||
* findPegawaiByRuanganRev2(Integer subUnitKerja, Integer tahun, Integer
|
|
||||||
* bulan)
|
|
||||||
*/
|
|
||||||
// set auto save untuk bulan ini
|
|
||||||
Calendar c = Calendar.getInstance();
|
|
||||||
c.setTime(new Date());
|
|
||||||
Integer tahun = c.get(Calendar.YEAR);
|
|
||||||
Integer bulan = c.get(Calendar.MONTH) + 1;
|
|
||||||
// get list pegawai non shift by subunitkerja
|
|
||||||
List<Integer> listPegawai = pegawaiDao.getPegawaiNonshift();
|
|
||||||
List<PegawaiJadwalKerjaVO> vos = new ArrayList<>();
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(listPegawai)) {
|
|
||||||
for (Integer idPegawai : listPegawai) {
|
|
||||||
// generate jadwal hanya untuk yang belum buat jadwal
|
|
||||||
List<PegawaiJadwalKerja> jadwal = pegawaiJadwalKerjaDao.findJadwalByBulan(tahun, bulan, idPegawai);
|
|
||||||
if (CommonUtil.isNullOrEmpty(jadwal)) {
|
|
||||||
Pegawai pegawai = pegawaiDao.findOne(idPegawai);
|
|
||||||
List<Map<String, Object>> mapListHariLibur = pegawaiDaoCustom.findHariLiburPegawaiNonShift(tahun,
|
|
||||||
bulan);
|
|
||||||
// clear false data
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(mapListHariLibur))
|
|
||||||
for (Map<String, Object> mh : mapListHariLibur)
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(mh.get("statusEnabled"))
|
|
||||||
&& mh.get("statusEnabled").equals(Master.STATUS_ENABLE_FALSE))
|
|
||||||
mh.put("namaHariLibur", null);
|
|
||||||
// Setting Bulan Ramadhan
|
|
||||||
Chronology iso = ISOChronology.getInstance();
|
|
||||||
Chronology hijri = IslamicChronology.getInstance();
|
|
||||||
int bulanHijri;
|
|
||||||
try {
|
|
||||||
Integer idShift = pegawai.getShiftKerjaId();
|
|
||||||
List<Map<String, Object>> listShiftKerja = shiftKerjaDao.findByKelompokShiftId(idShift);
|
|
||||||
// Non Shift +
|
|
||||||
if (idShift == 2)
|
|
||||||
listShiftKerja.addAll(shiftKerjaDao.findByKelompokShiftId(1));
|
|
||||||
List<PegawaiJadwalKerja> resultPegawaiJadwalKerja = pegawaiDaoCustom.findJadwalByTanggal(tahun,
|
|
||||||
bulan, idPegawai);
|
|
||||||
if (resultPegawaiJadwalKerja.isEmpty()) { // Apabila_jadwal_kosong
|
|
||||||
if (idShift == 1 || idShift == 2) { // apabila_pegawai_nonshift
|
|
||||||
for (Map<String, Object> hariLibur : mapListHariLibur) {
|
|
||||||
PegawaiJadwalKerjaVO vo = new PegawaiJadwalKerjaVO();
|
|
||||||
ShiftKerjaVO shiftKerjaPegawai = new ShiftKerjaVO();
|
|
||||||
if (!CommonUtil.isNotNullOrEmpty(hariLibur.get("namaHariLibur"))) {
|
|
||||||
// cek apakah nama harinya adalah jumat,
|
|
||||||
// senin-kamis atau sabtu minggu
|
|
||||||
if (hariLibur.get("namaHari").toString().equals("Minggu")
|
|
||||||
|| hariLibur.get("namaHari").toString().equals("Sabtu")) {
|
|
||||||
shiftKerjaPegawai.setId(8);
|
|
||||||
} else if (hariLibur.get("namaHari").toString().equals("Jumat")) {
|
|
||||||
org.joda.time.LocalDate tglIso = new org.joda.time.LocalDate(tahun, bulan,
|
|
||||||
Integer.parseInt(hariLibur.get("tgl").toString()), iso);
|
|
||||||
org.joda.time.LocalDate tglHijri = new org.joda.time.LocalDate(
|
|
||||||
tglIso.toDateTimeAtStartOfDay(), hijri);
|
|
||||||
bulanHijri = tglHijri.getMonthOfYear();
|
|
||||||
if (bulanHijri == 9) {
|
|
||||||
shiftKerjaPegawai.setId(57); // RMJ
|
|
||||||
} else {
|
|
||||||
shiftKerjaPegawai.setId(19);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
org.joda.time.LocalDate tglIso = new org.joda.time.LocalDate(tahun, bulan,
|
|
||||||
Integer.parseInt(hariLibur.get("tgl").toString()), iso);
|
|
||||||
org.joda.time.LocalDate tglHijri = new org.joda.time.LocalDate(
|
|
||||||
tglIso.toDateTimeAtStartOfDay(), hijri);
|
|
||||||
bulanHijri = tglHijri.getMonthOfYear();
|
|
||||||
if (bulanHijri == 9) {
|
|
||||||
shiftKerjaPegawai.setId(56); // RM
|
|
||||||
} else {
|
|
||||||
shiftKerjaPegawai.setId(18);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
shiftKerjaPegawai.setId(8);
|
|
||||||
}
|
|
||||||
PegawaiVO peg = new PegawaiVO();
|
|
||||||
peg.setId(idPegawai);
|
|
||||||
KalenderVO kalendar = new KalenderVO();
|
|
||||||
kalendar.setId(Integer.parseInt(hariLibur.get("idKalendar").toString()));
|
|
||||||
vo.setPegawai(peg);
|
|
||||||
vo.setShift(shiftKerjaPegawai);
|
|
||||||
vo.setTanggal(kalendar);
|
|
||||||
vos.add(vo);
|
|
||||||
}
|
|
||||||
} // end if shift 1
|
|
||||||
else {// Selain shift 1
|
|
||||||
for (Map<String, Object> hariLibur : mapListHariLibur) {
|
|
||||||
PegawaiJadwalKerjaVO vo = new PegawaiJadwalKerjaVO();
|
|
||||||
PegawaiVO peg = new PegawaiVO();
|
|
||||||
peg.setId(idPegawai);
|
|
||||||
ShiftKerjaVO shiftKerjaPegawai = new ShiftKerjaVO();
|
|
||||||
shiftKerjaPegawai.setId(0);
|
|
||||||
KalenderVO kalendar = new KalenderVO();
|
|
||||||
kalendar.setId(Integer.parseInt(hariLibur.get("idKalendar").toString()));
|
|
||||||
vo.setPegawai(peg);
|
|
||||||
vo.setShift(shiftKerjaPegawai);
|
|
||||||
vo.setTanggal(kalendar);
|
|
||||||
vos.add(vo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {// Jadwal tidak kosong
|
|
||||||
Integer idLooping = 0;
|
|
||||||
for (Map<String, Object> map2 : mapListHariLibur) {
|
|
||||||
for (PegawaiJadwalKerja mapPegawaiJadwalKerja : resultPegawaiJadwalKerja) {
|
|
||||||
if (mapPegawaiJadwalKerja.getPegawaiId().equals(idPegawai) && (Integer
|
|
||||||
.parseInt(map2.get("idKalendar").toString()) == mapPegawaiJadwalKerja
|
|
||||||
.getTanggalId())) {
|
|
||||||
mapListHariLibur.remove(idLooping);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
idLooping++;
|
|
||||||
}
|
|
||||||
// Untuk tanggal yang kosong diisi disini
|
|
||||||
for (Map<String, Object> map2 : mapListHariLibur) {
|
|
||||||
PegawaiJadwalKerjaVO vo = new PegawaiJadwalKerjaVO();
|
|
||||||
PegawaiVO peg = new PegawaiVO();
|
|
||||||
peg.setId(idPegawai);
|
|
||||||
ShiftKerjaVO shiftKerjaPegawai = new ShiftKerjaVO();
|
|
||||||
shiftKerjaPegawai.setId(0);
|
|
||||||
KalenderVO kalendar = new KalenderVO();
|
|
||||||
kalendar.setId(Integer.parseInt(map2.get("idKalendar").toString()));
|
|
||||||
vo.setPegawai(peg);
|
|
||||||
vo.setShift(shiftKerjaPegawai);
|
|
||||||
vo.setTanggal(kalendar);
|
|
||||||
vos.add(vo);
|
|
||||||
}
|
|
||||||
} // end else
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
throw new ServiceVOException(e.getMessage());
|
|
||||||
}
|
|
||||||
} // kondisi tidak ada data di pegawai jadwal kerja
|
|
||||||
} // looping pegawai
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(vos))
|
|
||||||
saveListJadwalPegawai(vos, false, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Transactional
|
|
||||||
public void saveListJadwalPegawai(List<PegawaiJadwalKerjaVO> vos, boolean isUnggah, boolean isPenangguhan) {
|
|
||||||
for (PegawaiJadwalKerjaVO vo : vos) {
|
|
||||||
boolean editKetidakhadiran = false;
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(vo)) {
|
|
||||||
PegawaiJadwalKerja model = pegawaiJadwalKerjaConverter.transferVOToModel(vo, new PegawaiJadwalKerja());
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(vo.getPegawai()))
|
|
||||||
model.setPegawai(pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai()));
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(vo.getPegawaiGanti()))
|
|
||||||
model.setPegawaiGanti(pegawaiConverter.transferVOToModel(vo.getPegawaiGanti(), new Pegawai()));
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(vo.getRuangan()))
|
|
||||||
model.setRuangan(ruanganConverter.transferVOToModel(vo.getRuangan(), new Ruangan()));
|
|
||||||
if (isPenangguhan && CommonUtil.isNotNullOrEmpty(vo.getShift())
|
|
||||||
&& CommonUtil.isNotNullOrEmpty(vo.getShift().getId()) && vo.getShift().getId().equals(0)) {
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(vo.getTanggal())) {
|
|
||||||
Date tanggal = pegawaiJadwalKerjaDao.getTanggal(vo.getTanggal().getId());
|
|
||||||
Map<String, Object> map = pegawaiJadwalKerjaDao.getJadwal(vo.getPegawai().getId(),
|
|
||||||
new SimpleDateFormat("yyyy-MM-dd").format(tanggal));
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(map) && CommonUtil.isNotNullOrEmpty(map.get("id"))) {
|
|
||||||
pegawaiJadwalKerjaDao.delete(Integer.parseInt(map.get("id").toString()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(vo.getShift())) {
|
|
||||||
model.setShift(shiftKerjaConverter.transferVOToModel(vo.getShift(), new ShiftKerja()));
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(vo.getTanggal())) {
|
|
||||||
Date tanggal = pegawaiJadwalKerjaDao.getTanggal(vo.getTanggal().getId());
|
|
||||||
Map<String, Object> map = pegawaiJadwalKerjaDao.getJadwal(vo.getPegawai().getId(),
|
|
||||||
new SimpleDateFormat("yyyy-MM-dd").format(tanggal));
|
|
||||||
model.setTanggal(kalenderConverter.transferVOToModel(vo.getTanggal(), new Kalender()));
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(map) && CommonUtil.isNotNullOrEmpty(map.get("id"))) {
|
|
||||||
model.setId(Integer.parseInt(map.get("id").toString()));
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(map.get("flagKetidakhadiran"))
|
|
||||||
&& Boolean.parseBoolean(map.get("flagKetidakhadiran").toString())) {
|
|
||||||
editKetidakhadiran = true;
|
|
||||||
} else if (isUnggah && vo.getShift().getFlagKetidakhadiran()) {
|
|
||||||
editKetidakhadiran = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(model) && (isPenangguhan || !editKetidakhadiran))
|
|
||||||
pegawaiJadwalKerjaDao.save(model);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Scheduled(cron = "0 0 0 1 * ?")
|
@Scheduled(cron = "0 0 0 1 * ?")
|
||||||
@ -321,67 +50,6 @@ public class ScheduleTask {
|
|||||||
LOGGER.info("Initiate template slip gaji bulan {}",
|
LOGGER.info("Initiate template slip gaji bulan {}",
|
||||||
LocalDate.now().format(DateTimeFormatter.ofPattern("MM-yyyy")));
|
LocalDate.now().format(DateTimeFormatter.ofPattern("MM-yyyy")));
|
||||||
|
|
||||||
initiateDataSlipGaji();
|
slipGajiService.init();
|
||||||
}
|
|
||||||
|
|
||||||
@Transactional
|
|
||||||
public void initiateDataSlipGaji() {
|
|
||||||
Date now = new Date();
|
|
||||||
Date startMonth = DateUtil.startMonth(now);
|
|
||||||
Date endMonth = DateUtil.endMonth(now);
|
|
||||||
List<Integer> listIdPegawaiSlip = slipGajiDao.findPegawaiByBulan(startMonth, endMonth);
|
|
||||||
List<MapPegawaiJabatanToUnitKerja> listJabatan = mappingJabatanDao.getAll();
|
|
||||||
listJabatan = listJabatan.stream().filter(j -> !listIdPegawaiSlip.contains(j.getPegawaiId()))
|
|
||||||
.sorted(Comparator.comparingInt(MapPegawaiJabatanToUnitKerja::getPegawaiId))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
List<Integer> listIdPegawai = new ArrayList<>();
|
|
||||||
listJabatan.forEach(j -> {
|
|
||||||
if (!listIdPegawai.contains(j.getPegawaiId()))
|
|
||||||
listIdPegawai.add(j.getPegawaiId());
|
|
||||||
});
|
|
||||||
List<SlipGaji> listSlipGaji = new ArrayList<>();
|
|
||||||
List<SlipGajiDetail> listSlipGajiDetail = new ArrayList<>();
|
|
||||||
for (Integer idPegawai : listIdPegawai) {
|
|
||||||
SlipGaji.SlipGajiBuilder b = SlipGaji.builder();
|
|
||||||
for (MapPegawaiJabatanToUnitKerja j : listJabatan)
|
|
||||||
if (idPegawai.equals(j.getPegawaiId())) {
|
|
||||||
Pegawai pegawai = new Pegawai();
|
|
||||||
pegawai.setId(j.getPegawaiId());
|
|
||||||
b.pegawai(pegawai);
|
|
||||||
b.bulan(now);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
SlipGaji slipGaji = b.build();
|
|
||||||
listSlipGaji.add(slipGaji);
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(slipGaji))
|
|
||||||
for (MapPegawaiJabatanToUnitKerja j : listJabatan)
|
|
||||||
if (idPegawai.equals(j.getPegawaiId())) {
|
|
||||||
SlipGajiDetail.SlipGajiDetailBuilder detail = SlipGajiDetail.builder();
|
|
||||||
detail.slipGaji(slipGaji);
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(j.getJabatanId())) {
|
|
||||||
Jabatan jabatan = new Jabatan();
|
|
||||||
jabatan.setId(j.getJabatanId());
|
|
||||||
detail.jabatan(jabatan);
|
|
||||||
}
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(j.getUnitKerjaPegawaiId())) {
|
|
||||||
UnitKerjaPegawai unitKerja = new UnitKerjaPegawai();
|
|
||||||
unitKerja.setId(j.getUnitKerjaPegawaiId());
|
|
||||||
detail.unitKerja(unitKerja);
|
|
||||||
}
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(j.getSubUnitKerjaPegawaiId())) {
|
|
||||||
SubUnitKerjaPegawai subunitKerja = new SubUnitKerjaPegawai();
|
|
||||||
subunitKerja.setId(j.getSubUnitKerjaPegawaiId());
|
|
||||||
detail.subUnitKerja(subunitKerja);
|
|
||||||
}
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(j.getGradeId())) {
|
|
||||||
NilaiKelompokJabatan grade = new NilaiKelompokJabatan();
|
|
||||||
grade.setId(j.getGradeId());
|
|
||||||
detail.grade(grade);
|
|
||||||
}
|
|
||||||
listSlipGajiDetail.add(detail.build());
|
|
||||||
}
|
|
||||||
slipGajiDao.save(listSlipGaji);
|
|
||||||
slipGajiDetailDao.save(listSlipGajiDetail);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user