package com.app.hxqh.udworkorder;

import com.alibaba.fastjson.JSONObject;
import psdi.app.iface.spms.Spms2EamHandler;
import psdi.common.action.ActionCustomClass;
import psdi.mbo.MboRemote;
import psdi.mbo.MboSetRemote;
import psdi.util.MXException;

import java.rmi.RemoteException;
import java.util.Date;

/**
 * 日常维修工单-计划物料领料操作类，与SPMS推送
 * edit 2023-06-15
 */
public class WorkOrderToSpmsAction implements ActionCustomClass {
    @Override
    public void applyCustomAction(MboRemote mboRemote, Object[] objects) throws MXException, RemoteException {
        String appname = mboRemote.getString("APPNAME");
        //日常维修工单
        if ("UDWORKORDER".equalsIgnoreCase(appname)) {
            try {
                MboSetRemote showplanMatSet=mboRemote.getMboSet("SHOWPLANMATERIAL");
                if(null!=showplanMatSet && !showplanMatSet.isEmpty()){
                    JSONObject result = new Spms2EamHandler().Z_EAM_OVERSEA_REQUISITION(mboRemote);
                    mboRemote.setValue("SPMSRETURN", result.toString(), 2L);
                    JSONObject RESPONSE = (JSONObject) result.get("RESPONSE");
                    if(null!=RESPONSE){
                        JSONObject RETURN_DATA = (JSONObject) RESPONSE.get("RETURN_DATA");
                        if(null!=RETURN_DATA){
                            String code=  RETURN_DATA.getString("code");
                            if("200".equalsIgnoreCase(code)){
                                mboRemote.setFieldFlag("STATUS", 7L, false);
                                mboRemote.setFieldFlag("STATUSDATE", 7L, false);
                                mboRemote.setValue("STATUS", "TOSPMS", 2L);
                                mboRemote.setValue("STATUSDATE", new Date());
                                mboRemote.setFieldFlag("STATUS", 7L, true);
                                mboRemote.setFieldFlag("STATUSDATE", 7L, true);
                                mboRemote.setValue("SPMSSTATUS", "TOSPMSSUCCESS", 2L);
                            }else{
                                mboRemote.setValue("SPMSSTATUS", "TOSPMSFAIL", 2L);
                            }
                        }else{
                            mboRemote.setValue("SPMSSTATUS", "TOSPMSFAIL", 2L);
                        }
                    }else{
                        mboRemote.setValue("SPMSSTATUS", "TOSPMSFAIL", 2L);
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

}
