package com.weaver.seconddev.interfaces.workflow.controller;

import com.alibaba.fastjson.JSONObject;
import com.weaver.common.base.entity.result.WeaResult;
import com.weaver.seconddev.interfaces.workflow.action.ZOA_FICO_ANLA_CHECK;
import lombok.extern.slf4j.Slf4j;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

/**
 * @Author: calyrex
 * @CreateTime: 2025-01-10
 * @Description:ZOA_FICO_ANLA_CHECK的API调用
 */

@Slf4j
@RestController
@RequestMapping({"/papi/secondev/workflow/controller" })
public class ZOA_FICO_ANLA_CHECK_CONTROLLER {
    @GetMapping("/ZOA_FICO_ANLA_CHECK")
    public WeaResult<String> run(@RequestParam Map<String,Object> params) {
        log.error("ZOA_FI_CUSTOMER_MAINTAIN_CONTROLLER execute start");
        log.error("ZOA_FI_CUSTOMER_MAINTAIN_CONTROLLER execute params : " + params);
        try {
            String gdzcdm = null2String(params.get("gdzcdm")); //固定资产代码
            String gsdm = null2String(params.get("gsdm")); //公司
            String estatus = "E";
            String emessage = "";

            ZOA_FICO_ANLA_CHECK po=new ZOA_FICO_ANLA_CHECK();
            Map<String,String> map = po.Getexecute(gdzcdm , gsdm);
            if(map != null && map.size() > 0){
                estatus = map.get("estatus");
                emessage = map.get("emessage");
                JSONObject xmlData = new JSONObject();
                xmlData.put("estatus", estatus);
                xmlData.put("emessage", emessage);

                // 依次将各个元素添加到子 Map 中
                xmlData.put("TXT50", map.getOrDefault("TXT50", ""));
                xmlData.put("TXA50", map.getOrDefault("TXA50", ""));
                xmlData.put("ANLN1", map.getOrDefault("ANLN1", ""));
                xmlData.put("ANLHTXT", map.getOrDefault("ANLHTXT", ""));
                xmlData.put("SERNR", map.getOrDefault("SERNR", ""));
                xmlData.put("INVNR", map.getOrDefault("INVNR", ""));
                xmlData.put("KOSTL", map.getOrDefault("KOSTL", ""));
                xmlData.put("KOSTLV", map.getOrDefault("KOSTLV", ""));
                xmlData.put("CAUFN", map.getOrDefault("CAUFN", ""));
                xmlData.put("WERKS", map.getOrDefault("WERKS", ""));
                xmlData.put("RAUMN", map.getOrDefault("RAUMN", ""));
                xmlData.put("BUKRS", map.getOrDefault("BUKRS", ""));
                xmlData.put("KKTOGR", map.getOrDefault("KKTOGR", ""));
                xmlData.put("MENGE", map.getOrDefault("MENGE", ""));
                xmlData.put("MEINS", map.getOrDefault("MEINS", ""));
                xmlData.put("AKTIV", map.getOrDefault("AKTIV", ""));
                xmlData.put("ZUGDT", map.getOrDefault("ZUGDT", ""));
                xmlData.put("ZUJHR", map.getOrDefault("ZUJHR", ""));
                xmlData.put("ZUPER", map.getOrDefault("ZUPER", ""));
                xmlData.put("DEAKT", map.getOrDefault("DEAKT", ""));
                xmlData.put("ORD41", map.getOrDefault("ORD41", ""));
                xmlData.put("ORD42", map.getOrDefault("ORD42", ""));
                xmlData.put("NDJAR", map.getOrDefault("NDJAR", ""));
                xmlData.put("NDPER", map.getOrDefault("NDPER", ""));
                xmlData.put("AFABG", map.getOrDefault("AFABG", ""));
                xmlData.put("NDABJ", map.getOrDefault("NDABJ", ""));
                xmlData.put("NDABP", map.getOrDefault("NDABP", ""));
                xmlData.put("ANLKL", map.getOrDefault("ANLKL", ""));
                xmlData.put("ANLN2", map.getOrDefault("ANLN2", ""));
                return WeaResult.success(JSONObject.toJSONString(xmlData));
            }else {
                estatus = map.get("estatus");
                emessage = map.get("emessage");
                JSONObject xmlData = new JSONObject();
                xmlData.put("estatus", estatus);
                xmlData.put("emessage", emessage);
                return WeaResult.success(JSONObject.toJSONString(xmlData));
            }
        }catch (Exception e){
            log.error("ZOA_FI_CUSTOMER_MAINTAIN_CONTROLLER execute error : " , e);
            return WeaResult.fail(500, "执行异常", e.getMessage());
        }
    }

    public static String null2String(String s){
        return s == null ? "" : s;
    }

    public static String null2String(Object o){
        return o == null ? "" : o.toString();
    }

    public static String null2String(String s1,String s2){
        return s1 == null ? (s2 == null ? "" : s2) : s1;
    }
}
