人员与OA绑定增加定时任务
This commit is contained in:
		
							parent
							
								
									f40ad039b7
								
							
						
					
					
						commit
						1e95e9940d
					
				| 
						 | 
				
			
			@ -48,6 +48,9 @@ public class DobeDWpersonTask extends AbstractTask implements Plugin {
 | 
			
		|||
    //更新启用状态分配规则专用为禁用
 | 
			
		||||
    private static final String updateDisable = "update t_sec_user set fk_qeug_disable=2179899908641806336 where fenable='0' and fk_qeug_disable=0;";
 | 
			
		||||
 | 
			
		||||
    //更新人员绑定OA成功的标记
 | 
			
		||||
    private static final String updateFlag = "update t_sec_user set fk_qeug_flag='1' where fnumber=?;";
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
 | 
			
		||||
        OkHttpClient client = new OkHttpClient();
 | 
			
		||||
| 
						 | 
				
			
			@ -242,8 +245,12 @@ public class DobeDWpersonTask extends AbstractTask implements Plugin {
 | 
			
		|||
        }
 | 
			
		||||
        if(addList.size() > 0){
 | 
			
		||||
            UserServiceHelper.add(addList);
 | 
			
		||||
            List<DynamicObject> userinfos = new ArrayList<>();
 | 
			
		||||
            List<DynamicObject> userinfos = new ArrayList<>(1);
 | 
			
		||||
            DynamicObject userinfo = null;
 | 
			
		||||
            String billNo = "person-new-bid";
 | 
			
		||||
            String thirdPostjson;//OA绑定返回结果
 | 
			
		||||
            JSONObject jsonObject;//OA绑定返回结果json对象
 | 
			
		||||
            String oaToken = OAUtils.getOaToken(billNo);
 | 
			
		||||
            //判断执行结果
 | 
			
		||||
            for (UserParam result : addList) {
 | 
			
		||||
                if (!result.isSuccess()) {
 | 
			
		||||
| 
						 | 
				
			
			@ -252,27 +259,30 @@ public class DobeDWpersonTask extends AbstractTask implements Plugin {
 | 
			
		|||
                    userinfo = BusinessDataServiceHelper.newDynamicObject(entityName);;
 | 
			
		||||
                    userinfo.set("number",result.getDataMap().get("number"));//人员编号
 | 
			
		||||
                    userinfo.set("name",result.getDataMap().get("name"));//人员姓名
 | 
			
		||||
                    userinfos.clear();
 | 
			
		||||
                    userinfos.add(userinfo);
 | 
			
		||||
                    if (!DobeDWUtils.isEmpty(oaToken)) {
 | 
			
		||||
                        thirdPostjson = OAUtils.thirdpartyUser(userinfos, oaToken, billNo);
 | 
			
		||||
                        //处理OA绑定结果,将处理成功的人员打上标记
 | 
			
		||||
                        if (!DobeDWUtils.isEmpty(thirdPostjson)) {
 | 
			
		||||
                            jsonObject = JSONObject.parseObject(thirdPostjson);
 | 
			
		||||
                            if(jsonObject.getBoolean("success")){
 | 
			
		||||
                                DB.update(DBRoute.of("sys"), updateFlag, new Object[]{userinfo.getString("number")});
 | 
			
		||||
                            }
 | 
			
		||||
                        }else{
 | 
			
		||||
                            log.info("OA绑定返回值为空,人员编号"+userinfo.getString("number"));
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            //处理OA人员绑定
 | 
			
		||||
            if(userinfos.size() > 0){
 | 
			
		||||
                String billNo = "person-new-bid";
 | 
			
		||||
                //获取token
 | 
			
		||||
                String oaToken = OAUtils.getOaToken(billNo);
 | 
			
		||||
                if (!DobeDWUtils.isEmpty(oaToken)) {
 | 
			
		||||
                    OAUtils.thirdpartyUser(userinfos, oaToken, billNo);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
//        if(updateList.size() > 0){
 | 
			
		||||
//            UserServiceHelper.update(updateList);
 | 
			
		||||
//            //判断执行结果
 | 
			
		||||
//            for (UserParam result : updateList) {
 | 
			
		||||
//                if (!result.isSuccess()) {
 | 
			
		||||
//                    log.info(String.format("人员修改异常:%s", result.getMsg()));
 | 
			
		||||
            //批量处理OA人员绑定
 | 
			
		||||
//            if(userinfos.size() > 0){
 | 
			
		||||
//                //获取token
 | 
			
		||||
//                String oaToken = OAUtils.getOaToken(billNo);
 | 
			
		||||
//                if (!DobeDWUtils.isEmpty(oaToken)) {
 | 
			
		||||
//                    OAUtils.thirdpartyUser(userinfos, oaToken, billNo);
 | 
			
		||||
//                }
 | 
			
		||||
//            }
 | 
			
		||||
//        }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,70 @@
 | 
			
		|||
package shkd.repc.task;
 | 
			
		||||
 | 
			
		||||
import com.alibaba.fastjson.JSONObject;
 | 
			
		||||
import kd.bos.context.RequestContext;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.db.DB;
 | 
			
		||||
import kd.bos.db.DBRoute;
 | 
			
		||||
import kd.bos.exception.KDException;
 | 
			
		||||
import kd.bos.logging.Log;
 | 
			
		||||
import kd.bos.logging.LogFactory;
 | 
			
		||||
import kd.bos.orm.query.QCP;
 | 
			
		||||
import kd.bos.orm.query.QFilter;
 | 
			
		||||
import kd.bos.schedule.executor.AbstractTask;
 | 
			
		||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
			
		||||
import kd.sdk.plugin.Plugin;
 | 
			
		||||
import shkd.utils.DobeDWUtils;
 | 
			
		||||
import shkd.utils.OAUtils;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 金蝶人员与OA用户绑定后台任务插件 yxl 20250409
 | 
			
		||||
 */
 | 
			
		||||
public class DobePersonOARealtionTask extends AbstractTask implements Plugin {
 | 
			
		||||
 | 
			
		||||
    private static final String entityName = "bos_user";//系统库 表名 t_sec_user
 | 
			
		||||
 | 
			
		||||
    private static Log logger = LogFactory.getLog(DobePersonOARealtionTask.class);
 | 
			
		||||
    //更新人员绑定OA成功的标记
 | 
			
		||||
    private static final String updateFlag = "update t_sec_user set fk_qeug_flag='1' where fnumber=?;";
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
 | 
			
		||||
        //查找未绑定成功的人员
 | 
			
		||||
        QFilter dwFilter = new QFilter("source", QCP.equals, "dw");
 | 
			
		||||
        QFilter enableFilter = new QFilter("qeug_flag", QCP.equals, "0");
 | 
			
		||||
        DynamicObject[] dos = BusinessDataServiceHelper.load(entityName,"id,number,name",new QFilter[]{dwFilter.and(enableFilter)});
 | 
			
		||||
        if(dos.length > 0){
 | 
			
		||||
            logger.info("本次需要绑定用户个数"+dos.length);
 | 
			
		||||
            DynamicObject userinfo;
 | 
			
		||||
            List<DynamicObject> userinfos = new ArrayList<>(1);
 | 
			
		||||
            String thirdPostjson;//OA绑定返回结果
 | 
			
		||||
            JSONObject jsonObject;//OA绑定返回结果json对象
 | 
			
		||||
            String billNo = "person-task-bid";
 | 
			
		||||
            //获取token,调用OA人员绑定接口
 | 
			
		||||
            String oaToken = OAUtils.getOaToken(billNo);
 | 
			
		||||
            for (int i = 0; i < dos.length; i++) {
 | 
			
		||||
                userinfo = dos[i];
 | 
			
		||||
                userinfos.clear();
 | 
			
		||||
                userinfos.add(userinfo);
 | 
			
		||||
                if (!DobeDWUtils.isEmpty(oaToken)) {
 | 
			
		||||
                    thirdPostjson = OAUtils.thirdpartyUser(userinfos, oaToken, billNo);
 | 
			
		||||
                    //处理OA绑定结果,将处理成功的人员打上标记
 | 
			
		||||
                    if (!DobeDWUtils.isEmpty(thirdPostjson)) {
 | 
			
		||||
                        jsonObject = JSONObject.parseObject(thirdPostjson);
 | 
			
		||||
                        if(jsonObject.getBoolean("success")){
 | 
			
		||||
                            DB.update(DBRoute.of("sys"), updateFlag, new Object[]{userinfo.getString("number")});
 | 
			
		||||
                        }
 | 
			
		||||
                    }else{
 | 
			
		||||
                        logger.info("OA绑定返回值为空,人员编号"+userinfo.getString("number"));
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }else{
 | 
			
		||||
            logger.info("现有用户已全部绑定,无需处理");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue