RegisterNewEmployeeApi.java 5.32 KB
Newer Older
Goragod committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
package com.csc.library.zeesecurity.api;

import com.csc.library.cdi.GetCdiInstance;
import com.csc.library.command.CommandObject;
import com.csc.library.controller.ApplyCompanyController;
import com.csc.library.controller.ApplyCompanyController.ResultApplyCompany;
import com.csc.library.controller.MemberRegisterController;
import com.csc.library.controller.MemberRegisterController.ResultRegister;
import com.csc.library.entity.FileStore;
import com.csc.library.entity.manager.FileStoreUtilityManager;
import com.csc.library.request.CommandState;
import com.csc.library.status.StatusMessage;
import com.csc.library.status.StatusResultMessage;
import com.csc.library.utilities.CSCCheckUtility;
import com.csc.library.utilities.MyLog;
import com.csc.library.zeesecurity.databean.entity.EmployeeTimeConfig;
import com.csc.library.zeesecurity.databean.manager.EmployeeTimeConfigManager;
import com.csc.library.zeesecurity.model.FaceTemplateCommonModel;
import com.csc.library.zeesecurity.request.ApplyCompanyRequestModel;
import com.csc.library.zeesecurity.request.RegisterNewEmployeeRequestModel;
import com.csc.library.zeesecurity.request.RegisterRequestModel;
import com.csc.library.zeesecurity.response.ActionResponseModel;

public class RegisterNewEmployeeApi extends CommandObject<RegisterNewEmployeeRequestModel> {

	@Override
	public void execute(RegisterNewEmployeeRequestModel param) throws Exception {
		ActionResponseModel responseModel = new ActionResponseModel();
		this.setResultJson(responseModel);
		responseModel.setSuccess(false);
		this.sendMessage("Processing RegisterNewEmployeeApi Api");

		RegisterRequestModel registerData = param.getMemberRegisterModel();
		try{
			if (CSCCheckUtility.isBlankOrNull(registerData.getEmail() , registerData.getPassword() , registerData.getBirthDate())) {
				responseModel.setMessage("Data Require is Emplty (Email,Password,BirthDate)");
				this.setCommandState(CommandState.fail);
				return;
			}
			
			if(CSCCheckUtility.isNull(registerData.getFaceTemplate())){
				responseModel.setMessage("FaceTemplate is Emplty");
				this.setCommandState(CommandState.fail);
				return;
			}
			
			FaceTemplateCommonModel faceTemplate = registerData.getFaceTemplate();
			MemberRegisterController mrc = GetCdiInstance.of(MemberRegisterController.class);
			StatusResultMessage<ResultRegister> srm = mrc.createBuilder()
					.setFirstName(registerData.getFirstName())
					.setLastName(registerData.getLastName())
					.setTelNumber(registerData.getMobileNumber())
					.setSex(registerData.getSex())
					.setEmailName(registerData.getEmail())
					.setPassword(registerData.getPassword())
					.setBirthDay(registerData.getBirthDate())
					.setIdPeople(registerData.getIdCard())
					.setPassport(registerData.getPassportNo())
					.setNationality(registerData.getNationality())
					.setPicturemember(registerData.getProfilePhoto())
					.setEyetemplate1(faceTemplate.getEyesTemplate1())
					.setEyetemplate2(faceTemplate.getEyesTemplate2())
					.setEyetemplate3(faceTemplate.getEyesTemplate3())
					.setFacialtemplate1(faceTemplate.getFacialTemplate1())
					.setFacialtemplate2(faceTemplate.getFacialTemplate2())
					.setFacialtemplate3(faceTemplate.getFacialTemplate3())
					.setFacepicture(faceTemplate.getEnrollPhoto())
					.create();
			if(srm.isSuccess()){
				ResultRegister resultRegisterMember = srm.getResult();
				ApplyCompanyRequestModel applyModel = param.getApplyCompanyModel();
				
				ApplyCompanyController applyComController = GetCdiInstance.of(ApplyCompanyController.class);
				StatusResultMessage<ResultApplyCompany> srmApplyCom = applyComController.createBuilder()
						.setMemberId(resultRegisterMember.getMemberId())
						.setCompanyId(applyModel.getCompanyId())
						.setBranchId(applyModel.getBranchId())
						.setPosition(applyModel.getPositionName())
						.setDepartment(applyModel.getDepartmentName())
						.apply();
				if(srmApplyCom.isSuccess()){
					ResultApplyCompany resultApplyCom = srmApplyCom.getResult();
					StatusMessage smApprove = applyComController.createApproveBuilder()
						.setCompanyId(applyModel.getCompanyId())
						.setMemberid(resultApplyCom.getMemberId())
						.setApplyDatetime(resultApplyCom.getApplyDateTime())
						.setPosition(applyModel.getPositionName())
						.setDepartment(applyModel.getDepartmentName())
						.setBranchId(applyModel.getBranchId())
						.setBossMajor(applyModel.getBossMajarId())
						.approve();
					if(smApprove.isSuccess()){
						EmployeeTimeConfigManager etcManager = GetCdiInstance.of(EmployeeTimeConfigManager.class);
						EmployeeTimeConfig etc = etcManager.createInstance(applyModel.getCompanyId(), resultApplyCom.getMemberId());
						etc.setWorkShift(param.getApplyCompanyModel().getShiftCode());
						etcManager.save(etc);
						responseModel.setMessage("Create New Employee is Successfully.");
						responseModel.setSuccess(true);
					}else{
						responseModel.setMessage("Auto Approve Apply company is Not Successfully." + smApprove.getMessage());
					}
				}else{
					responseModel.setMessage("Auto Apply company is Not Successfully." + srmApplyCom.getMessage());
				}
			}else {
				responseModel.setMessage("Register Member is Not Successfully." + srm.getMessage());
			}
			this.setResultJson(responseModel);
			this.setCommandState(CommandState.success);
		}catch(Exception e){
			MyLog.error(this , e);
			this.setCommandState(CommandState.fail);
		}
	}
}