邀请岗点
__DXZvc8mnEmDqMARhK7G
__DXZvc8mnEmDqMARhK7G
published
UTF-8
get
/invite/joinPost
json
0){
//查询基础数据安排到新的
var personInfoSql = "SELECT * FROM att_employee WHERE ITEM_userID = '"+ userid+"'";
println("查询驻勤人员的保安员信息sql-->: " + personInfoSql);
var query = queryBySQL(personInfoSql);//根据id取保安员信息
if(query!=null){
var process = getDocumentProcess();
var formProcess = getFormProcess();
for( var iter =query.iterator();iter.hasNext();){
var doc = iter.next();
var securityName = doc.getItemValueAsString("securityName"); //保安员姓名
var DeptName = doc.getItemValueAsString("DeptName"); //所属部门
var jobType = doc.getItemValueAsString("jobType"); //人员类型
var documentType = doc.getItemValueAsString("documentType"); //证件类型
var documentID = doc.getItemValueAsString("documentID"); //证件号码
var phone = doc.getItemValueAsString("phone"); //手机号
var isCertified = doc.getItemValueAsString("isCertified"); //实名状态
var insuranceStatus = doc.getItemValueAsString("insure"); //投保状态
var empid = doc.getItemValueAsString("userID"); //employeeid
}
}
//获取新的组id和项目id
var selectgroupsql="select item_post_group_id,item_project_id,formid,item_post_type from (select item_post_group_id,item_project_id,formid,item_post_type from tlk_post_detail where item_att_id='"+attId+"' UNION all select item_post_group_id,item_project_id,formid,item_post_type from tlk_service_post_detail where item_att_id='"+attId+"') m "
result.put("selectgroupsql", selectgroupsql);
var selectgroupdatas = queryByDSName("baibaodunFlow",selectgroupsql);
if(selectgroupdatas.size()>0){
for(var groupiterator = selectgroupdatas.iterator();groupiterator.hasNext();){
var mapgrooup = groupiterator.next();//取值
var group_id=mapgrooup.get("item_post_group_id")
var project_id=mapgrooup.get("item_project_id")
var postformid=mapgrooup.get("formid")
var person_type=mapgrooup.get("item_post_type")
}
}
result.put("group_id", group_id);
result.put("project_id", project_id);
result.put("postformid", postformid);
//查看这个人当前所在的驻勤点
var attsql="select a.id as attid,p.id as pid from tlk_attendance_site_person_info p left join tlk_attendance_site_base_info a on p.item_attendanceSiteId=a.id where p.item_securityId='"+userid+"' and p.domainid='"+domainid+"' and a.ITEM_PROJECT_ID='"+project_id+"' "
var attdatas = queryByDSName("baibaodunFlow",attsql);
if(attdatas.size()>0){//代表已经有驻勤点,需要先删除原本的驻勤点
for(var attiterator = attdatas.iterator();attiterator.hasNext();){
var mapatt = attiterator.next();//取值
var oldattid = mapatt.get("attid");
var oldpid = mapatt.get("pid");
}
//先删除原本驻勤点
var deletesql="delete from tlk_attendance_site_person_info where id ='"+oldpid+"'"
result.put("deletesql", deletesql);
deleteByDSName("baibaodunFlow",deletesql);
//驻勤点安排记录也要更新移除
var updateSql = "update tlk_attendance_site_arrange_info set ITEM_LEAVE_ATT_TIME = NOW(),ITEM_LEAVE_ATT_OPERATOR = '"
+ inviteName +"',LASTMODIFIED = NOW(),LASTMODIFIER = '" + inviteId + "' where ITEM_SECURITYID = '"
+ securityId+ "' and ITEM_ATTENDANCESITEID = '"
+ oldattid + "' and ITEM_LEAVE_ATT_TIME is null;";
result.put("updateSql", updateSql);
updateByDSName("baibaodunFlow",updateSql);
//先把人移除原本所在的岗点小组
var postsql="select * from (select id,item_log_id,item_person_id,item_group_id,formid,item_person_type from tlk_post_person p UNION all select id,item_log_id,item_person_id,item_group_id,formid,item_person_type from tlk_service_post_person sp) v where item_person_id='"+userid+"' and item_group_id=(select item_post_group_id from (select item_post_group_id,formid from tlk_post_detail where item_att_id='"+attendanceSiteId+"' UNION all select item_post_group_id,formid from tlk_service_post_detail where item_att_id='"+attendanceSiteId+"') m )"
var postdatas = queryByDSName("baibaodunFlow",postsql);
if(postdatas.size()>0){
for(var postiterator = postdatas.iterator();postiterator.hasNext();){
var postmap = postiterator.next();//取值
var postid=postmap.get("id")
var log_id=postmap.get("item_log_id")
var person_type=postmap.get("item_person_type")
if("__HPFkV8jgrK0lw8rbGy7".equals(postformid)){
var postdelete="delete from tlk_post_person where id='"+postid+"'"
}else{
var postdelete="delete from tlk_service_post_person where id='"+postid+"'"
}
result.put("postdelete", postdelete);
deleteByDSName("baibaodunFlow",postdelete);
var logdoc=findDocument(log_id);
logdoc.findItem("remove_person").setValue(inviteName);
logdoc.findItem("remove_time").setValue(inviteId);
process.doUpdate(logdoc)
}
}
}
//插入数据到驻勤人员表
var subform = formProcess.doView("__sgTQqGCJDqTyPf6vN1Q"); //“attendance_site_person_info”表单Id
var doc1 = process.doNew(subform,getWebUser(),createParamsTable());
doc1.addStringItem("securityName",securityName); //驻勤人员名称
doc1.addStringItem("securityId",empid); //驻勤人员id
doc1.addStringItem("documentType",documentType); //证件类型
doc1.addStringItem("documentID",documentID); //证件号码
doc1.addStringItem("phone",phone); //手机号
doc1.addStringItem("DeptName",DeptName); //所属部门
doc1.addStringItem("jobType",jobType); //人员类型
doc1.addStringItem("isCertified",isCertified); //实名状态
doc1.addStringItem("insuranceStatus",insuranceStatus);//投保状态
doc1.addStringItem("createdUser",inviteName); //创建者
doc1.addStringItem("attendanceSiteId",attId); //驻勤id
doc1.addStringItem("domain_id",getDomainid()); //企业id
doc1.addStringItem("person_status",'1');
process.doCreate(doc1);//插入数据至驻勤人员表
println("新增驻勤人员信息:--------------------->"+doc1);
//插入数据到驻勤人员安排表
var attArrangeform = formProcess.doView("__MWsyjKTNZFmq3qaGHvx"); //“attendance_site_arrange_info”表单Id
var attArrangeDoc = process.doNew(attArrangeform,getWebUser(),createParamsTable());
attArrangeDoc.addStringItem("SECURITYNAME",securityName); //驻勤人员名称
attArrangeDoc.addStringItem("SECURITYID",empid); //驻勤人员id
attArrangeDoc.addStringItem("ATTENDANCESITEID",attId); //驻勤id
attArrangeDoc.addStringItem("DOCUMENTTYPE",documentType); //证件类型
attArrangeDoc.addStringItem("DOCUMENTID",documentID); //证件号码
attArrangeDoc.addStringItem("PHONE",phone); //手机号
attArrangeDoc.addDateItem("JOIN_ATT_TIME",getToday()); //安排时间
attArrangeDoc.addStringItem("JOIN_ATT_OPERATOR",inviteName); //安排人
process.doCreate(attArrangeDoc);//插入数据至驻勤人员安排表
println("新增驻勤人员安排信息:--------------------->"+attArrangeDoc);
if("__HPFkV8jgrK0lw8rbGy7".equals(postformid)){
result.put("进到1", "__0nKBo3MPJ80SKRGoVFC");
//插入数据到新的人员表
var process = getDocumentProcess();
var formProcess = getFormProcess();
var personInfo = formProcess.doView("__0nKBo3MPJ80SKRGoVFC");
var personInfoLog = formProcess.doView("__yqz6O0ESzrRXxSPlCoo");
var sqle="select a.id as empid, c.NAME,case c.sex when '1' then '男' when '2' then '女' else '未知' end as sex,case a.occupation_type when '0' then '一般职员' when '1' then '普通保安员' else a.occupation_type end as occupation_type,c.telephone,b.number,org.name as domainname, "+
" ( SELECT zsbh FROM obpm2.tenant_user_credential_details WHERE idnum = b.number AND active =1 and state= 1 and certificateType='1' LIMIT 1 ) AS cernumber "+
" from obpm2.tenant_users c "+
" left JOIN obpm2.tenant_employees a ON c.id = a.tenant_user_id "+
" left join obpm2.tenant_user_credentials b ON b.id = c.selected_credential_id and b.credential_type<7 "+
" left JOIN obpm2.tenant_organizations org ON a.organization_id=org.id"+
" where a.id='"+userid+"'"
println(sqle)
var edatas = queryByDSName("obpm2",sqle);
if(edatas.size()>0){
for(var eiterator = edatas.iterator();eiterator.hasNext();){
var emap1 = eiterator.next();//取值
var name= emap1.get("name");
var empid= emap1.get("empid");
var sex = emap1.get("sex");
var occupation_type = emap1.get("occupation_type");
var cernumber = emap1.get("cernumber");
var telephone = emap1.get("telephone");
var number = emap1.get("number");
var domainname = emap1.get("domainname");
var certificate_no = emap1.get("certificate_no");
var selectsql="select id from tlk_post_person where item_person_id='"+empid+"' and item_group_id='"+group_id+"' "
println(selectsql)
var edatas2 = queryByDSName("baibaodunFlow",selectsql);
if(edatas2.size()>0){
}else{
var personInfoDoc = process.doNew(personInfo,getWebUser(),createParamsTable());
var personInfoLogDoc = process.doNew(personInfoLog,getWebUser(),createParamsTable());
personInfoDoc.addStringItem("name",name);
personInfoDoc.addStringItem("id_number",number);
personInfoDoc.addStringItem("certificate_no",cernumber);
personInfoDoc.addStringItem("sex",sex);
personInfoDoc.addStringItem("person_type",person_type);
personInfoDoc.addStringItem("occupation_type",occupation_type);
personInfoDoc.addStringItem("phone",telephone);
personInfoDoc.addStringItem("domain_name",domainname);
personInfoDoc.addStringItem("person_id",empid);
personInfoDoc.addStringItem("group_id",group_id);
personInfoLogDoc.addStringItem("name",name);
personInfoLogDoc.addStringItem("id_number",number);
personInfoLogDoc.addStringItem("phone",telephone);
personInfoLogDoc.addStringItem("person_id",empid);
personInfoLogDoc.addStringItem("band_person",inviteName);
personInfoLogDoc.addDateItem("band_time",getToday());
personInfoLogDoc.addStringItem("group_id",group_id);
process.doCreate(personInfoLogDoc);
personInfoDoc.addStringItem("log_id",personInfoLogDoc.getId())
process.doCreate(personInfoDoc);
}
}
}
}else{
//插入数据到新的人员表
var process = getDocumentProcess();
var formProcess = getFormProcess();
result.put("进到2", "__gfrGtyp5kusxq5mOPBY");
var personInfo = formProcess.doView("__gfrGtyp5kusxq5mOPBY");
var personInfoLog = formProcess.doView("__yqz6O0ESzrRXxSPlCoo");
var sqle="select a.id as empid, c.NAME,case c.sex when '1' then '男' when '2' then '女' else '未知' end as sex,case a.occupation_type when '0' then '一般职员' when '1' then '普通保安员' else a.occupation_type end as occupation_type,c.telephone,b.number,org.name as domainname, "+
" ( SELECT zsbh FROM obpm2.tenant_user_credential_details WHERE idnum = b.number AND active =1 and state= 1 and certificateType='1' LIMIT 1 ) AS cernumber "+
" from obpm2.tenant_users c "+
" left JOIN obpm2.tenant_employees a ON c.id = a.tenant_user_id "+
" left join obpm2.tenant_user_credentials b ON b.id = c.selected_credential_id and b.credential_type<7 "+
" left JOIN obpm2.tenant_organizations org ON a.organization_id=org.id"+
" where a.id='"+userid+"'"
println(sqle)
var edatas = queryByDSName("obpm2",sqle);
if(edatas.size()>0){
for(var eiterator = edatas.iterator();eiterator.hasNext();){
var emap1 = eiterator.next();//取值
var name= emap1.get("name");
var empid= emap1.get("empid");
var sex = emap1.get("sex");
var occupation_type = emap1.get("occupation_type");
var cernumber = emap1.get("cernumber");
var telephone = emap1.get("telephone");
var number = emap1.get("number");
var domainname = emap1.get("domainname");
var certificate_no = emap1.get("certificate_no");
var selectsql="select id from tlk_service_post_person where item_person_id='"+empid+"' and item_group_id='"+group_id+"' "
println(selectsql)
var edatas2 = queryByDSName("baibaodunFlow",selectsql);
if(edatas2.size()>0){
}else{
var personInfoDoc = process.doNew(personInfo,getWebUser(),createParamsTable());
var personInfoLogDoc = process.doNew(personInfoLog,getWebUser(),createParamsTable());
personInfoDoc.addStringItem("name",name);
personInfoDoc.addStringItem("id_number",number);
personInfoDoc.addStringItem("certificate_no",cernumber);
personInfoDoc.addStringItem("sex",sex);
personInfoDoc.addStringItem("person_type",person_type);
personInfoDoc.addStringItem("occupation_type",occupation_type);
personInfoDoc.addStringItem("phone",telephone);
personInfoDoc.addStringItem("domain_name",domainname);
personInfoDoc.addStringItem("person_id",empid);
personInfoDoc.addStringItem("group_id",group_id);
personInfoLogDoc.addStringItem("name",name);
personInfoLogDoc.addStringItem("id_number",number);
personInfoLogDoc.addStringItem("phone",telephone);
personInfoLogDoc.addStringItem("person_id",empid);
personInfoLogDoc.addStringItem("band_person",inviteName);
personInfoLogDoc.addDateItem("band_time",getToday());
personInfoLogDoc.addStringItem("group_id",group_id);
process.doCreate(personInfoLogDoc);
personInfoDoc.addStringItem("log_id",personInfoLogDoc.getId())
process.doCreate(personInfoDoc);
}
}
}
}
result.put("code","200");
result.put("msg","提交成功!");
result.put("state", true);
return result;
}else{
result.put("code","500");
result.put("msg","当前人员非公司在职员工!");
result.put("state", false);
return result;
}
}
}
result.put("code","500");
result.put("msg","缺少驻勤点id");
result.put("state", false);
return result;
})()]]>