*/
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
private EntDbFltJobTask processFltJobTask(RTCAssignmentType _input, BigDecimal idFlight,
boolean isUpdate, String recStatus)throws ParseException {
EntDbFltJobTask inputJobTask = null;
TaskInfoType taskInfo = _input.getTaskDetails().getTaskInfo();
TaskTimesType taskTimes = _input.getTaskDetails().getTaskTimes();
/**
* .. check for Master Data ..
*/
String type = null;
for(EntDbMdRmsOrderType orderType : clsEntStartUpInitSingleton.getMdRmsOrderTypeList()){
if(orderType.getOrderType().equalsIgnoreCase(taskInfo.getType())){
if(orderType.getStaffTypeCode().equalsIgnoreCase(HpEKConstants.RMS_STAFF_TYPE_ROP))
type = taskInfo.getType(); break;
}
}
if(type == null)
LOG.debug("Order type <{}> is not found in MdRmsOrderType table.", taskInfo.getType());
String reqId = null;
for(EntDbMdRmsTaskReqt taskReq : clsEntStartUpInitSingleton.getMdRmsTaskReqtsList()){
if(taskReq.getTaskReqtId().equalsIgnoreCase(taskInfo.getReqId())){
if(taskReq.getStaffTypeCode().equalsIgnoreCase(HpEKConstants.RMS_STAFF_TYPE_ROP))
reqId = taskInfo.getReqId(); break;
}
}
if(reqId == null)
LOG.debug("ReqId <{}> is not found in MdRmsTaskReqt table.", taskInfo.getReqId());
String deptName = null, deptId = null;
for(EntDbMdRmsDept dept : clsEntStartUpInitSingleton.getMdRmsDeptList()){
if(dept.getDeptName().trim().equalsIgnoreCase(taskInfo.getDeptName())){
if(dept.getStaffTypeCode().equalsIgnoreCase(HpEKConstants.RMS_STAFF_TYPE_ROP)){
deptName = taskInfo.getDeptName();
deptId = dept.getDeptId(); break;
}
}
}
if(deptName == null){
deptId = "0";
LOG.debug("DepName <{}> is not found in MdRmsDept table.", taskInfo.getDeptName());
}
String workArea = null;
for(EntDbMdRmsWorkArea wArea : clsEntStartUpInitSingleton.getMdRmsWorkAreasList()){
if(wArea.getWorkArea().trim().equalsIgnoreCase(taskInfo.getWorkArea())){
if(wArea.getStaffTypeCode().equalsIgnoreCase(HpEKConstants.RMS_STAFF_TYPE_ROP))
workArea = taskInfo.getWorkArea(); break;
}
}
if(workArea == null)
LOG.debug("Work Area <{}> is not found in MdRmsWorkArea table.", taskInfo.getWorkArea());
String startLoc = null, stau = null;
for(EntDbMdRmsWorkLoc loc : clsEntStartUpInitSingleton.getMdRmsWorkLocsList()){
if(loc.getWorkLocationId().equalsIgnoreCase(taskInfo.getStartLoc())){
if(loc.getStaffTypeCode().equalsIgnoreCase(HpEKConstants.RMS_STAFF_TYPE_ROP))
startLoc = taskInfo.getStartLoc();
}
if(loc.getWorkLocationId().equalsIgnoreCase(taskInfo.getEndLoc())){
if(loc.getStaffTypeCode().equalsIgnoreCase(HpEKConstants.RMS_STAFF_TYPE_ROP))
stau = taskInfo.getStartLoc();
}
}
if(startLoc == null)
LOG.debug("Work start location <{}> is not found in MdRmsWorkLoc table.", taskInfo.getStartLoc());
if(stau == null)
LOG.debug("Work end location <{}> is not found in MdRmsWorkLoc table.", taskInfo.getEndLoc());
String status = null;
for(EntDbMdRmsTaskStatus taskStatus : clsEntStartUpInitSingleton.getMdRmsTaskStatusList()){
if(taskStatus.getTaskStatusId().equalsIgnoreCase(taskInfo.getStatus())){
if(taskStatus.getStaffTypeCode().equalsIgnoreCase(HpEKConstants.RMS_STAFF_TYPE_ROP))
status = taskInfo.getStatus(); break;
}
}
if(status == null)
LOG.debug("Task Status Id <{}> is not found in MdRmsTaskStatus table.", taskInfo.getStatus());
/**
* UPDATE/INSERT Flight Job Task
*/
BigDecimal taskId = new BigDecimal(taskInfo.getSubTaskID());
// boolean createNew = true;
if (isUpdate) {
// find the existing record
inputJobTask = clsDlFltJobTaskLocal.findExistingFltJobTask(
idFlight, taskId, HpEKConstants.RMS_STAFF_TYPE_ROP);
if (inputJobTask != null) {
inputJobTask.setUpdatedDate(HpUfisCalendar.getCurrentUTCTime());
inputJobTask.setUpdatedUser(HpEKConstants.RMS_RTC_SOURCE);
// createNew = false;
}else{
//flt Task is null to UPDATE
LOG.debug("Input job task is not existing to Update. Message dropped.");
return null;
}
} else {
// insert a new record
inputJobTask = new EntDbFltJobTask();
inputJobTask.setCreatedDate(HpUfisCalendar.getCurrentUTCTime());
inputJobTask.setCreatedUser(HpEKConstants.RMS_RTC_SOURCE);
}
/*if(createNew) {
//insert a new record
inputJobTask = new EntDbFltJobTask();
inputJobTask.setCreatedDate(HpUfisCalendar.getCurrentUTCTime());
inputJobTask.setCreatedUser(HpEKConstants.RMS_RTC_SOURCE);
inputJobTask.setRecStatus(" ");
}*/
inputJobTask.setRecStatus(recStatus);
inputJobTask.setIdFlight(idFlight);
inputJobTask.setStaffType(HpEKConstants.RMS_STAFF_TYPE_ROP);
/** TaskInfo **/
inputJobTask.setTaskId(taskId);
inputJobTask.setTaskCategory(taskInfo.getCategory());
inputJobTask.setTaskType(taskInfo.getType());
inputJobTask.setTaskTypeDesc(taskInfo.getTypeDesc());
inputJobTask.setTaskRequirementId(taskInfo.getReqId());
inputJobTask.setTaskRequirementName(taskInfo.getReqName());
inputJobTask.setTaskDeptId(deptId);
inputJobTask.setTaskDeptName(taskInfo.getDeptName());
inputJobTask.setTaskWorkArea(taskInfo.getWorkArea());
inputJobTask.setTaskStartLoc(taskInfo.getStartLoc());
inputJobTask.setTaskEndLoc(taskInfo.getEndLoc());
inputJobTask.setTaskRemark(taskInfo.getRemarks());
inputJobTask.setTaskDuration(new BigDecimal(taskInfo.getDuration()));
inputJobTask.setTaskHandlingState(taskInfo.getHandlingState());
inputJobTask.setTaskStatus(taskInfo.getStatus());
inputJobTask.setTaskStatusChngTime(convertDateToUTC(taskInfo.getStatusTimestamp()));
inputJobTask.setTaskCreatedDate(convertDateToUTC(taskInfo.getCreationTime()));
inputJobTask.setDataSource(HpEKConstants.RMS_RTC_SOURCE);
/** TaskTimes **/
Date planStartDate = convertDateToUTC(taskTimes.getPlnStartTime());
Date planEndDate = convertDateToUTC(taskTimes.getPlnEndTime());