
package psdi.workflow.woreq;

import java.rmi.RemoteException;

import psdi.common.role.CustomRoleAdapter;
import psdi.common.role.CustomRoleInterface;
import psdi.common.role.MaxRole;
import psdi.mbo.MboRemote;
import psdi.mbo.MboSetRemote;
import psdi.util.MXException;

public class PlantEqpDirRole extends CustomRoleAdapter
        implements CustomRoleInterface {
    public MboRemote evaluateCustomRole(MaxRole roleMbo, MboRemote mbo)
            throws MXException, RemoteException {
        String loggedPerson = roleMbo.getUserInfo().getPersonId();//登录人员唯一 ID
        //MboRemote personMbo = roleMbo.getPerson(loggedPerson).getMbo(0);//人员信息 mbo
        //String deptnum = personMbo.getString("DEPARTMENT");
        String mboname = mbo.getName();
        //if(mboname.equalsIgnoreCase("WORKORDER")){
        //工单主记录表
        //获得当前Mbo 下的班组
        String sdeptnum = mbo.getString("wopm2");
        sdeptnum = (sdeptnum == null) ? "" : sdeptnum.trim();
        MboSetRemote depts = roleMbo.getMboSet("$dept", "dept");
        depts.setWhere("deptnum ='" + sdeptnum + "'");
        depts.reset();
        MboRemote deptmbo = depts.getMbo(0);
        String supnum = deptmbo.getString("SUPNUM");//车间代码
        supnum = (supnum == null) ? "" : supnum.trim();
        depts.setWhere("deptnum ='" + supnum + "'");
        depts.reset();
        deptmbo = depts.getMbo(0);
        supnum = deptmbo.getString("SUPNUM");//工厂代码
        supnum = (supnum == null) ? "" : supnum.trim();
        depts.setWhere("SUPNUM ='" + supnum + "' and DEPTTYPE ='E'");
        depts.reset();
        deptmbo = depts.getMbo(0);
        String personID = deptmbo.getString("DIRECTOR");//设备部负责人
        psdi.mbo.MboSetRemote targetSet = roleMbo.getPerson(personID);
        if (targetSet.isEmpty())
            return roleMbo.getPerson(loggedPerson).getMbo(0);
        return roleMbo.getPerson(personID).getMbo(0);//返回一个 人员信息 mbo
        //}
    }
}
