package weaver.formmode.customjavacode.customsearch.jucailinkq; import com.engine.jucailinkq.common.util.DbTools; import com.engine.jucailinkq.common.util.ExtensionClassHolder; import com.engine.jucailinkq.common.util.Utils; import lombok.extern.slf4j.Slf4j; import weaver.formmode.customjavacode.AbstractCustomSqlConditionJavaCode; import weaver.general.Util; import weaver.hrm.User; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 说明 * 修改时 * 类名要与文件名保持一致 * class文件存放位置与路径保持一致。 * 请把编译后的class文件,放在对应的目录中才能生效 * 注意 同一路径下java名不能相同。 * @author Administrator * */ @Slf4j public class ClockAgainCustomSearchTemplate extends AbstractCustomSqlConditionJavaCode { /** * 生成SQL查询限制条件 * @param param * param包含(但不限于)以下数据 * user 当前用户 * * @return * 返回的查询限制条件的格式举例为: t1.a = '1' and t1.b = '3' and t1.c like '%22%' * 其中t1为表单主表表名的别名 */ public String generateSqlCondition(Map param) throws Exception { log.info("generateSqlCondition : [{}]",param); User user = (User)param.get("user"); int userId = user.getUID(); String sql = "select b.*,a.list_type from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?"; List> dataList = DbTools.getSqlToList(sql,userId); String sqlCondition = ""; if (dataList.size() > 0){ String listType = Util.null2String(dataList.get(0).get("list_type")); if (listType.equals("0")){ //人员清单 List userList = dataList.stream().map(e->Util.null2String(e.get("empid"))).collect(Collectors.toList()); sqlCondition = "t1.bdkry in ("+String.join(",",userList)+")"; }else if (listType.equals("1")){ //条件清单 sql = "select id from hrmresource where ("; for (int i=0;i map = dataList.get(i); String filters = Util.null2String(map.get("filters")); filters = Utils.converSQL(filters); if (i == dataList.size()-1){ sql = sql+filters+")"; }else { sql = sql+filters+" or "; } } sqlCondition = "t1.bdkry in ("+sql+") "; }else if (listType.equals("2")){ //sql条件 String sqltj = ""; for (int i=0;i