package com.webclient.beans.udpgth;

import psdi.mbo.MboRemote;
import psdi.mbo.MboSetRemote;
import psdi.server.MXServer;
import psdi.util.MXApplicationException;
import psdi.util.MXApplicationYesNoCancelException;
import psdi.util.MXException;
import psdi.webclient.system.beans.DataBean;

import java.rmi.RemoteException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;

/**
 * 人员组人员替换按钮
 * edit by liuxq
 */
public class PgthDataBean extends DataBean {

    public void changePT() throws RemoteException, MXException {
        app.getAppBean().save();
        MboRemote appMbo = app.getAppBean().getMbo();
        String mainStatus = appMbo.getString("STATUS");
        String ORGID= appMbo.getString("ORGID");
        String SITEID= appMbo.getString("SITEID");
        String QPERSON = appMbo.getString("QPERSON");//变更前人员
        String HPERSON = appMbo.getString("HPERSON");//变更后人员
        if("EDIT".equalsIgnoreCase(mainStatus)){
            MboSetRemote teamSet = MXServer.getMXServer().getMboSet("PERSONGROUPTEAM",MXServer.getMXServer().getSystemUserInfo());//人员组子表
            MboSetRemote HteamSet = MXServer.getMXServer().getMboSet("PERSONGROUPTEAM",MXServer.getMXServer().getSystemUserInfo());//人员组子表
            DataBean assetDataBean= app.getDataBean("1702622530228");//子表控件标识
            Vector<MboRemote> vec=assetDataBean.getSelection();
            if (!vec.isEmpty() && appMbo!=null) {
                for(int i=0;i<vec.size();i++) {
                    MboRemote vMbo = (MboRemote) vec.get(i);//选中对象
                    String PERSONGROUP = vMbo.getString("PERSONGROUP");//人员组
//                    System.out.println("PERSONGROUP="+PERSONGROUP);
                    //要替换的人已经存在，就跳过
                    HteamSet.setWhere("USEFORORG='"+ORGID+"' AND USEFORSITE='"+SITEID+"' AND RESPPARTYGROUP='"+HPERSON+"' AND PERSONGROUP='"+PERSONGROUP+"'");
                    HteamSet.reset();
                    if(HteamSet!=null && !HteamSet.isEmpty()){
                        continue;
                    }
                    if(QPERSON!=null && !"".equalsIgnoreCase(QPERSON)){
                        //替换
                        teamSet.setWhere("USEFORORG='"+ORGID+"' AND USEFORSITE='"+SITEID+"' AND RESPPARTYGROUP='"+QPERSON+"' AND PERSONGROUP='"+PERSONGROUP+"'");
                        teamSet.reset();
                        if(teamSet!=null && !teamSet.isEmpty()){
                            MboRemote mbo = teamSet.getMbo(0);
                            mbo.setValue("RESPPARTYGROUP",HPERSON,2L);
                            mbo.setValue("RESPPARTY",HPERSON,2L);
                            mbo.getThisMboSet().save(2L);
                        }
                    }else{
                        //新增
                        HteamSet.setWhere("USEFORORG='"+ORGID+"' AND USEFORSITE='"+SITEID+"' AND PERSONGROUP='"+PERSONGROUP+"'");
                        HteamSet.setOrderBy("RESPPARTYSEQ desc");
                        HteamSet.reset();
                        int xuhao = 1;//序号
                        if(HteamSet!=null && !HteamSet.isEmpty()){
                            MboRemote xhMbo = HteamSet.getMbo(0);
                            if(xhMbo!=null){
                                int xh = xhMbo.getInt("RESPPARTYSEQ");
                                xuhao = xh+1;
                            }
                        }
                        MboRemote hteamMbo = HteamSet.add();
                        hteamMbo.setValue("PERSONGROUP",PERSONGROUP,2L);//人员组
                        hteamMbo.setValue("RESPPARTYGROUP",HPERSON,2L);//人员
                        hteamMbo.setValue("RESPPARTY",HPERSON,2L);//人员
                        hteamMbo.setValue("USEFORORG",ORGID,2L);//组织
                        hteamMbo.setValue("USEFORSITE",SITEID,2L);//地点
                        hteamMbo.setValue("GROUPDEFAULT",0,2L);
                        hteamMbo.setValue("ORGDEFAULT",0,2L);
                        hteamMbo.setValue("SITEDEFAULT",0,2L);
                        hteamMbo.setValue("RESPPARTYGROUPSEQ",xuhao,11L);
                        hteamMbo.setValue("RESPPARTYSEQ",xuhao,11L);
                        hteamMbo.getThisMboSet().save(2L);
                    }

                }
                appMbo.setValue("STATUS","COMP",2L);
                appMbo.getThisMboSet().save();
                throw new MXApplicationException("pgth", "pgth_success", new String[0] );
            }
        }else{
            //提示
            throw new MXApplicationException("pgth", "pgth_status", new String[0] );
        }
    }
}
