package com.app.hxqh.udmxware;

import com.app.crontask.ChangeTimeUtils;
import psdi.mbo.Mbo;
import psdi.mbo.MboRemote;
import psdi.mbo.MboSet;
import psdi.mbo.MboSetRemote;
import psdi.server.MXServer;
import psdi.util.MXException;

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

/**
 * 模芯出入库Mbo
 */
public class UdmxwareMbo extends Mbo implements MboRemote {

    public UdmxwareMbo(MboSet ms) throws MXException, RemoteException {
        super(ms);
    }

    @Override
    public void save() throws MXException, RemoteException {
        super.save();
        String userid = getThisMboSet().getUserName();
        String siteid=getString("SITEID");
        String doctype=getString("DOCTYPE");
        if(isNew()){
            String appname=getString("APPNAME");
            if("GF03".equalsIgnoreCase(siteid) || "GF02".equalsIgnoreCase(siteid) || "GF51".equalsIgnoreCase(siteid)){
                Calendar rightNow = Calendar.getInstance();
                rightNow.setTime(new Date());
                rightNow.add(Calendar.HOUR_OF_DAY, -8);
                Date date = rightNow.getTime();
                String locDate=new SimpleDateFormat("yyyyMMdd").format(date);
                if("UDMXWARE".equalsIgnoreCase(appname)){
                    setValue("DESCRIPTION", locDate+"-"+userid+"-"+doctype);
                }else if("UDMXBG".equalsIgnoreCase(appname)){
                    setValue("DESCRIPTION", locDate+"-"+userid+"-模芯变更");
                }

            }else if("KF61".equalsIgnoreCase(siteid) || "KF51".equalsIgnoreCase(siteid) || "TF51".equalsIgnoreCase(siteid) || "TF01".equalsIgnoreCase(siteid)){
                Calendar rightNow = Calendar.getInstance();
                rightNow.setTime(new Date());
                rightNow.add(Calendar.HOUR_OF_DAY, -5);
                Date date = rightNow.getTime();
                String locDate=new SimpleDateFormat("yyyyMMdd").format(date);
                if("UDMXWARE".equalsIgnoreCase(appname)){
                    setValue("DESCRIPTION", locDate+"-"+userid+"-"+doctype);
                }else if("UDMXBG".equalsIgnoreCase(appname)){
                    setValue("DESCRIPTION", locDate+"-"+userid+"-模芯变更");
                }
            }
        }
    }

        @Override
    public MboRemote duplicate() throws MXException, RemoteException {
        return super.duplicate();
    }

    @Override
    public void add() throws MXException, RemoteException {
        super.add();
        String siteid = getString("SITEID");
        String userid = getThisMboSet().getUserName();
        MboSetRemote personSet=getMboSet("PR_PERSON_REQUEST","PERSON","PERSONID='"+userid+"'");
        if(null!=personSet && !personSet.isEmpty()){
            String dept=personSet.getMbo(0).getString("DEPARTMENT");
            setValue("DEPTNUM", dept,2L);
            setValue("STATUS", "EDIT",2L);
        }
        //一个厂一个模具仓，新增的时候根据工厂编码自动带出
        MboSetRemote UDDEPOTSet = MXServer.getMXServer().getMboSet("UDDEPOT",MXServer.getMXServer().getSystemUserInfo());//模芯库房
        UDDEPOTSet.setWhere("siteid='"+siteid+"'");
        UDDEPOTSet.reset();
        if(UDDEPOTSet!=null && !UDDEPOTSet.isEmpty()){
            MboRemote mbo = UDDEPOTSet.getMbo(0);
            setValue("LOCATION", mbo.getString("LOCATION"),2L);
        }
    }


    @Override
    public void init() throws MXException {
        super.init();
        try {
            String status = getString("STATUS");
            if("EDIT".equalsIgnoreCase(status)){//草稿
                setFlag(7L, false);
            }
            if("COMP".equalsIgnoreCase(status)){
                setFlag(7L, true);
            }
        } catch (RemoteException e) {
            e.printStackTrace();
        }

    }
}
