邀请岗点 __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; })()]]>