package psdi.app.iface.mobile;

import com.alibaba.fastjson.JSONObject;
import psdi.mbo.MboRemote;
import psdi.mbo.MboSetRemote;
import psdi.server.MXServer;

import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 设备编辑更新
 * createBy liuxq  2021-1-22
 */
@Path("/udAsset")
public class UdAssetService {
    /**
     * 修改设备状态
     * @param received
     * @return
     */
    @POST
    @Path("/updateStatus")
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public JSONObject SaveData(String received) {
        //定义返回对象
        JSONObject returnDate = new JSONObject();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String LANGCODE = "";//语言环境
        try {
            //接收app数据
            JSONObject jsonObject = JSONObject.parseObject(received);
            LANGCODE = jsonObject.getString("LANGCODE");
            Integer ASSETID = jsonObject.getInteger("ASSETID");//表ID
            String ASSETNUM = jsonObject.getString("ASSETNUM");//资产编号
            String USESTATUS = jsonObject.getString("USESTATUS");//设备状态
            String ORGID = jsonObject.getString("ORGID");//组织
            String SITEID = jsonObject.getString("SITEID");//地点
            String PERSONID = jsonObject.getString("PERSONID");//修改人工号----前端传
            Date CREATEDATE = sdf.parse(sdf.format(new Date()));//修改时间
            MboSetRemote ASSETSet = MXServer.getMXServer().getMboSet("ASSET",MXServer.getMXServer().getSystemUserInfo());//设备台账表
            MboSetRemote ASSETLOGSet = MXServer.getMXServer().getMboSet("UDSBSTATUSLOG",MXServer.getMXServer().getSystemUserInfo());//设备台账日志表
            ASSETSet.setWhere("ASSETNUM='"+ASSETNUM+"' and orgid='"+ORGID+"' and siteid='"+SITEID+"'");//
            ASSETSet.reset();
            if(ASSETSet!=null && !ASSETSet.isEmpty()){
                //获取对象
                MboRemote mbo = ASSETSet.getMbo(0);
                String BFSTATUS = mbo.getString("USESTATUS");//修改前状态
                //编辑--设置状态
                mbo.setValue("USESTATUS",USESTATUS,2L);//修改后的状态
                //保存
                mbo.getThisMboSet().save();
                returnDate.put("ASSETID",ASSETID);//返回前端刷新页面
                returnDate.put("errcode","200");
//                returnDate.put("errmsg","Update Success");
                returnDate.put("errmsg",new AMobileConfig().getTipByLang("save","success","errmsg",LANGCODE));
                //添加修改日志记录
                MboRemote logMbo = ASSETLOGSet.add();
                logMbo.setValue("ASSETNUM",ASSETNUM);//设备
                logMbo.setValue("CREATEBY",PERSONID);//变更人
                logMbo.setValue("CREATEDATE",CREATEDATE);//变更日期
                logMbo.setValue("BFSTATUS",BFSTATUS);//变更前状态
                logMbo.setValue("AFSTATUS",USESTATUS);//变更后状态
                logMbo.setValue("SITEID",SITEID);//地点
                logMbo.setValue("ORGID",ORGID);//组织
                logMbo.getThisMboSet().save();
            }
        }catch (Exception e){
            System.out.println("------faileMessage----->"+e.getMessage());
            returnDate.put("errcode","500");
//            returnDate.put("errmsg","update failure");
            returnDate.put("errmsg",new AMobileConfig().getTipByLang("save","failure","errmsg",LANGCODE));
        }finally {
            return returnDate;
        }
    }

}
