package weaver.interfaces.htxc.htqc;

import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.ArrayUtils;
import weaver.formmode.customjavacode.AbstractCustomSqlConditionJavaCode;
import weaver.hrm.User;
import weaver.interfaces.htsc.comInfo.PropBean;

import java.util.Map;

/**
 * @Title: ecology-9
 * @Company: 泛微软件
 * @author: K1810039
 * @version: 1.0
 * @CreateDate: 2022-09-27 13:49
 * @Description: 合同模块-归档管理-确认归档要求，生成查询列表SQL查询限制条件.(登录角色为“总部办公室归档管理员”时，才需要显示查询列表)
 * @ModifyLog:
 **/
@Slf4j
public class QrgdCustomSearchTemplate extends AbstractCustomSqlConditionJavaCode {
    /**
     * 生成SQL查询限制条件
     * @param param
     *  param包含(但不限于)以下数据
     *  user 当前用户
     * @return
     *  返回的查询限制条件的格式举例为: t1.a = '1' and t1.b = '3' and t1.c like '%22%'
     *  其中t1为表单主表表名的别名
     */
    @Override
    public String generateSqlCondition(Map<String, Object> param) throws Exception {
        log.info("合同模块-归档管理-确认归档要求，生成查询列表SQL查询限制条件,param:[{}]", JSON.toJSONString(param));
        PropBean pb = new PropBean();

        // 总部办公室归档管理员角色，成员 loginId
        String [] zbbgsSysAdminArr = pb.getPropName("ht_zbbgsgdgly").split(",");
        log.info("总部办公室归档管理员成员-zbbgsSysAdminArr:[{}]", JSON.toJSONString(zbbgsSysAdminArr));

        // 确认归档要求必须条件  用印及归档状态下拉框为【待年度归档】选项选项值
        final String necessaryCondition = "t1.YYJGDZT in ("+pb.getPropName("ht_yyjgzt_dndgd")+")";
        log.info("necessaryCondition:[{}]",necessaryCondition);

        User user = (User)param.get("user");
        // 当前用户 loginId
        String loginId = user.getLoginid();

        String sqlCondition = "";
        if (ArrayUtils.contains(zbbgsSysAdminArr,loginId)){
            sqlCondition = necessaryCondition;
        }else {
            // 否则不显示查询列表，即查不出数据
            sqlCondition = "t1.YYJGDZT = -3";
        }

        log.info("合同模块-归档管理-确认归档要求-返回数据sqlCondition:[{}]", sqlCondition);
        return sqlCondition;
    }


}
