use of com.netsteadfast.greenstep.base.model.DefaultResult in project bamboobsc by billchen198318.
the class ImportDataLogicServiceImpl method importMeasureData.
@ServiceMethodAuthority(type = { ServiceMethodType.INSERT, ServiceMethodType.UPDATE })
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = { RuntimeException.class, IOException.class, Exception.class })
@Override
public DefaultResult<Boolean> importMeasureData(String uploadOid) throws ServiceException, Exception {
List<Map<String, String>> csvResults = UploadSupportUtils.getTransformSegmentData(uploadOid, "TRAN005");
if (csvResults.size() < 1) {
throw new ServiceException(SysMessageUtil.get(GreenStepSysMsgConstants.DATA_NO_EXIST));
}
boolean success = false;
DefaultResult<Boolean> result = new DefaultResult<Boolean>();
StringBuilder msg = new StringBuilder();
Map<String, Object> paramMap = new HashMap<String, Object>();
for (int i = 0; i < csvResults.size(); i++) {
int row = i + 1;
Map<String, String> data = csvResults.get(i);
String kpiId = data.get("KPI_ID");
String date = data.get("DATE");
String target = data.get("TARGET");
String actual = data.get("ACTUAL");
String frequency = data.get("FREQUENCY");
String orgId = data.get("ORG_ID");
String empId = data.get("EMP_ID");
if (super.isBlank(kpiId)) {
msg.append("row: " + row + " kpi id is blank." + Constants.HTML_BR);
continue;
}
if (super.isBlank(date)) {
msg.append("row: " + row + " date is blank." + Constants.HTML_BR);
continue;
}
if (super.isBlank(target)) {
msg.append("row: " + row + " target is blank." + Constants.HTML_BR);
continue;
}
if (super.isBlank(actual)) {
msg.append("row: " + row + " actual is blank." + Constants.HTML_BR);
continue;
}
if (super.isBlank(frequency)) {
msg.append("row: " + row + " frequency is blank." + Constants.HTML_BR);
continue;
}
if (super.isBlank(orgId)) {
msg.append("row: " + row + " organization-id is blank." + Constants.HTML_BR);
continue;
}
if (super.isBlank(empId)) {
msg.append("row: " + row + " employee-no is blank." + Constants.HTML_BR);
continue;
}
if (!SimpleUtils.isDate(date)) {
msg.append("row: " + row + " is not date " + date + Constants.HTML_BR);
continue;
}
if (!NumberUtils.isNumber(target)) {
msg.append("row: " + row + " target is not number." + Constants.HTML_BR);
continue;
}
if (!NumberUtils.isNumber(actual)) {
msg.append("row: " + row + " actual is not number." + Constants.HTML_BR);
continue;
}
if (BscMeasureDataFrequency.getFrequencyMap(false).get(frequency) == null) {
msg.append("row: " + row + " frequency is not found." + Constants.HTML_BR);
continue;
}
paramMap.clear();
paramMap.put("id", kpiId);
if (this.kpiService.countByParams(paramMap) < 1) {
msg.append("row: " + row + " KPI is not found " + kpiId + Constants.HTML_BR);
continue;
}
if (!BscConstants.MEASURE_DATA_ORGANIZATION_FULL.equals(orgId)) {
paramMap.clear();
paramMap.put("orgId", orgId);
if (this.organizationService.countByParams(paramMap) < 1) {
msg.append("row: " + row + " organization-id is not found " + orgId + Constants.HTML_BR);
continue;
}
}
if (!BscConstants.MEASURE_DATA_EMPLOYEE_FULL.equals(empId)) {
paramMap.clear();
paramMap.put("empId", empId);
if (this.employeeService.countByParams(paramMap) < 1) {
msg.append("row: " + row + " employee-no is not found " + empId + Constants.HTML_BR);
continue;
}
}
MeasureDataVO measureData = new MeasureDataVO();
measureData.setKpiId(kpiId);
measureData.setDate(date);
measureData.setTarget(Float.valueOf(target));
measureData.setActual(Float.valueOf(actual));
measureData.setFrequency(frequency);
measureData.setOrgId(orgId);
measureData.setEmpId(empId);
DefaultResult<MeasureDataVO> oldResult = this.measureDataService.findByUK(measureData);
if (oldResult.getValue() != null) {
// update
measureData.setOid(oldResult.getValue().getOid());
this.measureDataService.updateObject(measureData);
} else {
// insert
this.measureDataService.saveObject(measureData);
}
success = true;
}
if (msg.length() > 0) {
result.setSystemMessage(new SystemMessage(msg.toString()));
} else {
result.setSystemMessage(new SystemMessage(SysMessageUtil.get(GreenStepSysMsgConstants.UPDATE_SUCCESS)));
}
result.setValue(success);
return result;
}
use of com.netsteadfast.greenstep.base.model.DefaultResult in project bamboobsc by billchen198318.
the class ReportRoleViewLogicServiceImpl method create.
@ServiceMethodAuthority(type = { ServiceMethodType.INSERT, ServiceMethodType.UPDATE })
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = { RuntimeException.class, IOException.class, Exception.class })
@Override
public DefaultResult<Boolean> create(String roleOid, List<String> emplOids, List<String> orgaOids) throws ServiceException, Exception {
if (super.isNoSelectId(roleOid)) {
throw new ServiceException(SysMessageUtil.get(GreenStepSysMsgConstants.PARAMS_BLANK));
}
RoleVO role = new RoleVO();
role.setOid(roleOid);
DefaultResult<RoleVO> rResult = this.getRoleService().findObjectByOid(role);
if (rResult.getValue() == null) {
throw new ServiceException(rResult.getSystemMessage().getValue());
}
role = rResult.getValue();
this.deleteByRole(role.getRole());
for (int i = 0; emplOids != null && i < emplOids.size(); i++) {
EmployeeVO employee = this.findEmployeeData(emplOids.get(i));
this.createReportRoleView(role.getRole(), ReportRoleViewTypes.IS_EMPLOYEE, employee.getAccount());
}
for (int i = 0; orgaOids != null && i < orgaOids.size(); i++) {
OrganizationVO organization = this.findOrganizationData(orgaOids.get(i));
this.createReportRoleView(role.getRole(), ReportRoleViewTypes.IS_ORGANIZATION, organization.getOrgId());
}
DefaultResult<Boolean> result = new DefaultResult<Boolean>();
result.setValue(Boolean.TRUE);
result.setSystemMessage(new SystemMessage(SysMessageUtil.get(GreenStepSysMsgConstants.UPDATE_SUCCESS)));
return result;
}
use of com.netsteadfast.greenstep.base.model.DefaultResult in project bamboobsc by billchen198318.
the class MeasureDataLogicServiceImpl method saveOrUpdate.
@ServiceMethodAuthority(type = { ServiceMethodType.INSERT, ServiceMethodType.UPDATE, ServiceMethodType.DELETE })
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = { RuntimeException.class, IOException.class, Exception.class })
@Override
public DefaultResult<Boolean> saveOrUpdate(String kpiOid, String date, String frequency, String dataFor, String organizationId, String employeeId, List<MeasureDataVO> measureDatas) throws ServiceException, Exception {
if (super.isBlank(kpiOid) || super.isBlank(date) || super.isBlank(frequency) || super.isBlank(dataFor) || super.isBlank(organizationId) || super.isBlank(employeeId)) {
throw new ServiceException(SysMessageUtil.get(GreenStepSysMsgConstants.PARAMS_BLANK));
}
KpiVO kpi = new KpiVO();
kpi.setOid(kpiOid);
DefaultResult<KpiVO> kResult = this.kpiService.findObjectByOid(kpi);
if (kResult.getValue() == null) {
throw new ServiceException(kResult.getSystemMessage().getValue());
}
kpi = kResult.getValue();
this.getOrganizationId(organizationId);
this.getEmployeeId(employeeId);
if (BscConstants.MEASURE_DATA_FOR_ORGANIZATION.equals(dataFor) && BscConstants.MEASURE_DATA_ORGANIZATION_FULL.equals(organizationId)) {
throw new ServiceException("organization is required!");
}
if (BscConstants.MEASURE_DATA_FOR_EMPLOYEE.equals(dataFor) && BscConstants.MEASURE_DATA_EMPLOYEE_FULL.equals(employeeId)) {
throw new ServiceException("employee is required!");
}
this.fillMeasureDatas(kpi, organizationId, employeeId, measureDatas);
DefaultResult<Boolean> result = new DefaultResult<Boolean>();
result.setSystemMessage(new SystemMessage(SysMessageUtil.get(GreenStepSysMsgConstants.UPDATE_FAIL)));
result.setValue(Boolean.FALSE);
this.delete(kpi, date, frequency, organizationId, employeeId);
for (MeasureDataVO measureData : measureDatas) {
this.measureDataService.saveObject(measureData);
}
result.setSystemMessage(new SystemMessage(SysMessageUtil.get(GreenStepSysMsgConstants.UPDATE_SUCCESS)));
result.setValue(Boolean.TRUE);
return result;
}
use of com.netsteadfast.greenstep.base.model.DefaultResult in project bamboobsc by billchen198318.
the class DegreeFeedbackLogicServiceImpl method updateScore.
@ServiceMethodAuthority(type = { ServiceMethodType.UPDATE })
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = { RuntimeException.class, IOException.class, Exception.class })
@Override
public DefaultResult<DegreeFeedbackProjectVO> updateScore(String projectOid, String ownerEmployeeOid, String raterEmployeeOid, List<DegreeFeedbackScoreVO> scores) throws ServiceException, Exception {
if (super.isBlank(projectOid) || super.isNoSelectId(ownerEmployeeOid) || super.isBlank(raterEmployeeOid) || null == scores || scores.size() < 1) {
throw new ServiceException(SysMessageUtil.get(GreenStepSysMsgConstants.PARAMS_BLANK));
}
DegreeFeedbackProjectVO project = new DegreeFeedbackProjectVO();
project.setOid(projectOid);
DefaultResult<DegreeFeedbackProjectVO> projectResult = this.degreeFeedbackProjectService.findObjectByOid(project);
if (projectResult.getValue() == null) {
throw new ServiceException(projectResult.getSystemMessage().getValue());
}
project = projectResult.getValue();
DefaultResult<DegreeFeedbackProjectVO> result = new DefaultResult<DegreeFeedbackProjectVO>();
BbEmployee rater = this.getEmployeeService().findByAccountOid(raterEmployeeOid);
if (null == rater || super.isBlank(rater.getOid())) {
throw new ServiceException(SysMessageUtil.get(GreenStepSysMsgConstants.DATA_ERRORS));
}
BbEmployee owner = this.getEmployeeService().findByPKng(ownerEmployeeOid);
if (null == owner || super.isBlank(owner.getOid())) {
throw new ServiceException(SysMessageUtil.get(GreenStepSysMsgConstants.DATA_NO_EXIST));
}
DegreeFeedbackAssignVO assign = this.findAssign(projectOid, rater.getEmpId(), owner.getEmpId());
this.deleteScoreWithAssign(project, assign);
Map<String, Object> paramMap = new HashMap<String, Object>();
for (DegreeFeedbackScoreVO score : scores) {
paramMap.put("oid", score.getItemOid());
if (this.degreeFeedbackItemService.countByParams(paramMap) != 1) {
throw new ServiceException(SysMessageUtil.get(GreenStepSysMsgConstants.DATA_NO_EXIST));
}
score.setAssignOid(assign.getOid());
super.setStringValueMaxLength(score, "memo", MAX_DESCRIPTION_OR_MEMO_LENGTH);
DefaultResult<DegreeFeedbackScoreVO> insertResult = this.degreeFeedbackScoreService.saveObject(score);
if (insertResult.getValue() == null) {
throw new ServiceException(insertResult.getSystemMessage().getValue());
}
result.setSystemMessage(insertResult.getSystemMessage());
}
paramMap.clear();
paramMap = null;
result.setValue(project);
result.setSystemMessage(new SystemMessage(SysMessageUtil.get(GreenStepSysMsgConstants.UPDATE_SUCCESS)));
return result;
}
use of com.netsteadfast.greenstep.base.model.DefaultResult in project bamboobsc by billchen198318.
the class EmployeeLogicServiceImpl method updateSupervisor.
@ServiceMethodAuthority(type = { ServiceMethodType.UPDATE })
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = { RuntimeException.class, IOException.class, Exception.class })
@Override
public DefaultResult<Boolean> updateSupervisor(EmployeeVO employee, String supervisorOid) throws ServiceException, Exception {
if (employee == null || super.isBlank(employee.getOid()) || super.isBlank(supervisorOid)) {
throw new ServiceException(SysMessageUtil.get(GreenStepSysMsgConstants.PARAMS_BLANK));
}
DefaultResult<Boolean> result = new DefaultResult<Boolean>();
result.setValue(Boolean.FALSE);
result.setSystemMessage(new SystemMessage(SysMessageUtil.get(GreenStepSysMsgConstants.UPDATE_FAIL)));
employee = this.findEmployeeData(employee.getOid());
this.deleteHierarchy(employee);
if ("root".equals(supervisorOid) || "r".equals(supervisorOid)) {
this.createHierarchy(employee, BscConstants.EMPLOYEE_HIER_ZERO_OID);
} else {
EmployeeVO newHierEmployee = this.findEmployeeData(supervisorOid);
// 找當前員工的的資料, 不因該存在要update的新關聯主管
if (this.foundChild(employee.getOid(), newHierEmployee.getOid())) {
throw new ServiceException(SysMessageUtil.get(GreenStepSysMsgConstants.DATA_ERRORS));
}
this.createHierarchy(employee, newHierEmployee.getOid());
}
result.setValue(Boolean.TRUE);
result.setSystemMessage(new SystemMessage(SysMessageUtil.get(GreenStepSysMsgConstants.UPDATE_SUCCESS)));
return result;
}
Aggregations