package weaver.interfaces.htsc.GlobatTools;

import weaver.general.Util;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author xf
 * @version 1.0.0
 * @ClassName modeTools.java
 * @createTime 2021年12月16日 10:23:00
 */
public class ModeTools {

    /*
     * @title 插入明细表方法
     * @remark   无权限重构，formid主表参数
     * @author xf
     * @Params：
       * @param: tablename 主表名称
     * @param: mainmap    主表参数赋值
     * @param: detaillist  明细表值
     * @param: detailnum   明细表名称
     * @updateTime 2021/12/16 10:54
     * @return: boolean
     **/
    public static boolean innertmode(String tablename, Map<String,String> mainmap, List<Map<String,String>> detaillist, int detailnum){
        if("".equals(tablename) ||(mainmap==null && mainmap.size()<=0)){
            return  false;
        }
        String modeuuid=JAVATools.getuuid();
        mainmap.put("modeuuid",modeuuid);
        boolean mainflag=JAVATools.Excetesql(mainmap,tablename);
        String detailtablename=tablename+"_dt"+detailnum;
        if(mainflag){
            String mainid= getmainid(tablename,modeuuid);
            if(!"".equals(mainid) && detaillist!=null &&detaillist.size()>=0 &&  detailnum>0){
                //开始插入明细
                 detaillist.forEach((mode)->{
                    Map<String,String> detailmap=mode;
                    if(detailmap!=null && detailmap.size()>0){
                        detailmap.put("mainid",mainid);
                        JAVATools.Excetesql(detailmap,detailtablename);
                    }
                });

            }
        }

        return true;
    }

    public static String getmainid(String tablename,String modeuuid){
        String sql="select * from "+tablename +" where 1=1";
        Map<String,String> paramsmap=new HashMap<>();
        paramsmap.put("modeuuid",modeuuid);
        Map<String,Object> map=JAVATools.GetTableToMap(sql,paramsmap);
        if(map==null || map.size()<=0){
            return "";
        }
        return Util.null2String(map.get("id"));
    }

}
