123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 |
- package com.kingdee.shr.affair.web.handler.hrman;
- import java.io.UnsupportedEncodingException;
- import java.net.URLDecoder;
- import java.sql.SQLException;
- import java.util.HashMap;
- import java.util.Map;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.ui.ModelMap;
- import com.kingdee.bos.BOSException;
- import com.kingdee.bos.Context;
- import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
- import com.kingdee.eas.common.EASBizException;
- import com.kingdee.eas.framework.CoreBaseInfo;
- import com.kingdee.eas.hr.affair.EmpEnrollBizBillEntryCollection;
- import com.kingdee.eas.hr.affair.EmpEnrollBizBillEntryInfo;
- import com.kingdee.eas.hr.affair.EmpEnrollBizBillFactory;
- import com.kingdee.eas.hr.affair.EmpEnrollBizBillInfo;
- import com.kingdee.eas.hr.base.HRBillStateEnum;
- import com.kingdee.eas.hr.base.HRBizDefineFactory;
- import com.kingdee.eas.hr.base.HRBizDefineInfo;
- import com.kingdee.eas.hr.base.util.HRUtilExtend;
- import com.kingdee.eas.util.app.DbUtil;
- import com.kingdee.jdbc.rowset.IRowSet;
- import com.kingdee.shr.affair.web.handler.util.EmployeeUtil;
- import com.kingdee.shr.base.syssetting.app.io.fileImport.ImportException;
- import com.kingdee.shr.base.syssetting.context.SHRContext;
- import com.kingdee.shr.base.syssetting.exception.SHRWebException;
- import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
- /**
- * 入职单Handler扩展
- * @author issuser
- *
- */
- public class EmpEnrollBizBillHrManEditHandlerEx extends EmpEnrollBizBillHrManEditHandler{
- @Override
- protected void beforeSave(HttpServletRequest request,
- HttpServletResponse response, CoreBaseInfo model)
- throws SHRWebException {
- super.beforeSave(request, response, model);
- EmpEnrollBizBillInfo billInfo = (EmpEnrollBizBillInfo) model;
- if (billInfo.getBillState() == null) {
- billInfo.setBillState(HRBillStateEnum.SAVED);
- }
- storefields(request, billInfo);
- }
-
- private CoreBaseInfo storefields(HttpServletRequest request,
- CoreBaseInfo model) throws SHRWebException {
- EmpEnrollBizBillInfo billInfo = (EmpEnrollBizBillInfo) model;
- if (billInfo.getId() == null) {
- billInfo.setIsMultiEntry(Boolean.TRUE.booleanValue());
- }
- EmpEnrollBizBillEntryInfo entryInfo = billInfo.getEntrys().get(0);
- if ((entryInfo.getPerson() != null)
- && (entryInfo.getPerson().getId() == null)) {
- entryInfo.setPerson(null);
- }
- entryInfo.setBill(billInfo);
- EmpEnrollBizBillEntryCollection entryColl = null;
- if (!(StringUtils.isEmpty(request.getParameter("multiEntryBillId")))) {
- try {
- String multiEntryBillId = URLDecoder.decode(request
- .getParameter("multiEntryBillId"), "utf-8");
- EmpEnrollBizBillInfo multiEntryBillInfo = EmpEnrollBizBillFactory
- .getRemoteInstance().getEmpEnrollBizBillInfo(
- new ObjectUuidPK(multiEntryBillId));
-
- billInfo.setId(multiEntryBillInfo.getId());
- billInfo.setAdminOrg(multiEntryBillInfo.getAdminOrg());
- billInfo.setApplier(multiEntryBillInfo.getApplier());
- billInfo.setIsMulti(Boolean.TRUE.booleanValue());
- entryInfo.setBill(multiEntryBillInfo);
- //判断是否再入职
- //变动操作
- String hrBizDefineId = multiEntryBillInfo.getString("hrBizDefine");
- Context ctx = SHRContext.getInstance().getContext();
- HRBizDefineInfo hrBizDefineInfo = HRBizDefineFactory.getLocalInstance(ctx).getHRBizDefineInfo(new ObjectUuidPK(hrBizDefineId));
- //不是再入职,重新获取员工编码
- if( !"SHR02".equals(hrBizDefineInfo.getNumber())) {
- //员工编码
- EmployeeUtil employeeUtil = new EmployeeUtil();
- int fnumber = employeeUtil.getFnumber();
- entryInfo.setEmpNumber(String.valueOf(fnumber));
- }
- entryColl = multiEntryBillInfo.getEntrys();
- entryColl.add(entryInfo);
- } catch (EASBizException e) {
- e.printStackTrace();
- throw new SHRWebException(e);
- } catch (BOSException e) {
- e.printStackTrace();
- throw new SHRWebException(e);
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- throw new SHRWebException(e);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- } else {
- billInfo.setAdminOrg(entryInfo.getAdminOrg());
- billInfo.setIsMulti(Boolean.FALSE.booleanValue());
- entryColl = new EmpEnrollBizBillEntryCollection();
- entryColl.add(entryInfo);
- }
- try {
- HRUtilExtend.assableCell(entryInfo, "telNum");
- } catch (EASBizException e) {
- e.printStackTrace();
- throw new SHRWebException(e.getMessage());
- }
- billInfo.getEntrys().clear();
- billInfo.getEntrys().addCollection(entryColl);
- return billInfo;
- }
-
- @Override
- protected void verifyModel(HttpServletRequest request,
- HttpServletResponse response, CoreBaseInfo model)
- throws SHRWebException {
- EmpEnrollBizBillInfo billInfo = (EmpEnrollBizBillInfo) model;
- EmpEnrollBizBillEntryCollection coll = billInfo.getEntrys();
- try {
-
- //不是再入职,校验用户名、邮箱
- EmployeeUtil employeeUtil = new EmployeeUtil();
- if ((null != coll) && (coll.size() > 0)) {
- int i = 0;
- for (int size = coll.size(); i < size; ++i) {
- EmpEnrollBizBillEntryInfo info = coll.get(i);
- HRBizDefineInfo hrBizDefineInfo = info.getHrBizDefine();
- System.out.print("入职hrBizDefineInfo:"+hrBizDefineInfo.getNumber());
- if(!"SHR02".equals(hrBizDefineInfo.getNumber())) {
- String fid = billInfo.getString("id");
- //用户名唯一校验
- Boolean isUniqueCheck = employeeUtil.checkUserName(
- info.get("userName").toString(),fid,info.getEmpNumber());
- if( !isUniqueCheck){
- throw new ImportException("This user name :"+ info.get("userName") + ",already exists");
- }
- //邮箱唯一校验
- Boolean emailCheck = employeeUtil.checkEmail(info.get("email").toString(),fid,info.getEmpNumber());
- if( !emailCheck){
- throw new ImportException("The user mailbox already exists. Procedure !");
- }
- }
-
- }
- }
-
-
- } catch (BOSException e1) {
- e1.printStackTrace();
- } catch (SQLException e1) {
- e1.printStackTrace();
- }
- super.verifyModel(request, response, model);
- }
-
-
- /**
- * 获取预入职单的信息
- * @param request
- * @param response
- * @param modelMap
- * @throws SHRWebException
- */
- public void getEmpPreEntryDataAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException{
- Map<String, Object> map = new HashMap<String, Object>();
- String preEntryId = request.getParameter("billId");
- String sql = " select b.fid as personTypeId , b.fname_l1 as personTypeName, " +
- " c.fid as wcategoryId , c.fname_l1 as wcategoryName, " +
- " d.fid as ftorptId , d.fname_l1 as ftorptName, " +
- " e.fid as lmanagerId , e.fname_l1 as lmanagerName, " +
- " f.fid as rmethodId , f.fname_l1 as rmethodName, " +
- " g.fid as jobsId , g.fname_l1 as jobsName, " +
- " h.fid as academictitleId , h.fname_l1 as academictitleName, " +
- " j.fname_l1 jobName, k.fname_l1 credentTypeName, l.fname_l1 countryName, " +
- " j.fid jobId, k.fid credentTypeId, l.fid countryId " +
- " from t_hr_preentry a " +
- " left join T_HR_EmployeeClassify b on a.CFPersontypeID = b.fid " +
- " left join CT_MP_WorkerCategory c on a.CFWcategoryID = c.fid " +
- " left join CT_MP_Fullorpart d on a.CFFtorptID = d.fid " +
- " left join t_bd_person e on a.CFLmanagerID = e.fid " +
- " left join CT_MP_Ratepayingmethod f on a.CFRmethodId = f.fid " +
- " left join CT_HR_Job2 g on a.cfjobsId = g.fid " +
- " left join CT_MP_AcademicTitle h on a.cfacademictitleId = h.fid " +
- " left join T_HR_JobGrade j on a.CFJOBGRADEID = j.fid " +
- " left join T_HR_CredentialsType k on a.CFDOCUMENTTYPEID = k.fid " +
- " left join T_HR_CountryRegion l on a.cfcountryregionid = l.fid " +
- " where a.fid = '" + preEntryId + "'";
- Context ctx = SHRContext.getInstance().getContext();
- try {
- IRowSet rs = DbUtil.executeQuery(ctx, sql);
- while (rs.next()) {
- map.put("personTypeId",rs.getString("personTypeId"));
- map.put("personTypeName",rs.getString("personTypeName"));
- map.put("wcategoryId",rs.getString("wcategoryId"));
- map.put("wcategoryName",rs.getString("wcategoryName"));
- map.put("ftorptId",rs.getString("ftorptId"));
- map.put("ftorptName",rs.getString("ftorptName"));
- map.put("lmanagerId",rs.getString("lmanagerId"));
- map.put("lmanagerName",rs.getString("lmanagerName"));
- map.put("rmethodId",rs.getString("rmethodId"));
- map.put("rmethodName",rs.getString("rmethodName"));
- map.put("jobsId",rs.getString("jobsId"));
- map.put("jobsName",rs.getString("jobsName"));
- map.put("academictitleId",rs.getString("academictitleId"));
- map.put("academictitleName",rs.getString("academictitleName"));
- map.put("jobName",rs.getString("jobName"));
- map.put("credentTypeName",rs.getString("credentTypeName"));
- map.put("countryName",rs.getString("countryName"));
- map.put("jobId",rs.getString("jobId"));
- map.put("credentTypeId",rs.getString("credentTypeId"));
- map.put("countryId",rs.getString("countryId"));
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } catch (BOSException e) {
- e.printStackTrace();
- }
- JSONUtils.writeJson(response, map);
-
- }
-
- /**
- * 新增单据获取编码
- * @param request
- * @param response
- * @param modelMap
- * @throws SHRWebException
- * @throws SQLException
- * @throws BOSException
- */
- public void getEmpNumberAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException, BOSException, SQLException{
- Map<String, Object> map = new HashMap<String, Object>();
- EmployeeUtil employeeUtil = new EmployeeUtil();
- int fnumber = employeeUtil.getFnumber();
- map.put("empNumber", fnumber);
- JSONUtils.writeJson(response, map);
-
- }
-
- /**
- * 根据身份证号获取人员名称相关信息
- * @param request
- * @param response
- * @param modelMap
- * @return
- * @throws SHRWebException
- */
- public String getPersonNameAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException{
- Context ctx = SHRContext.getInstance().getContext();
- String idEnitiy = request.getParameter("idEntity");
- String sql = "select cfsurname,cfmiddlenames,cfgivenname,cflocalname,cfusername from T_BD_Person where fpassportno = '"+idEnitiy+"' or fidcardno = '"+idEnitiy+"' order by flastupdatetime desc";
- try {
- IRowSet rs = DbUtil.executeQuery(ctx, sql);
- while (rs.next()) {
- //姓
- modelMap.put("surName", rs.getString("cfsurname"));
- //中间名
- modelMap.put("middleName", rs.getString("cfmiddlenames"));
- //名
- modelMap.put("givenName", rs.getString("cfgivenname"));
- //本地名称
- modelMap.put("localName", rs.getString("cflocalname"));
- //用户名
- modelMap.put("userName", rs.getString("cfusername"));
- JSONUtils.writeJson(response, modelMap);
- return null;
- }
- } catch (BOSException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- modelMap.put("surName", "");
- modelMap.put("middleName", "");
- modelMap.put("givenName", "");
- modelMap.put("localName", "");
- modelMap.put("userName", "");
- return null;
- }
- }
|