|
|
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<String, Object> 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<Map<String,Object>> 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<String> 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<dataList.size();i++){
|
|
|
Map<String,Object> 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<dataList.size();i++){
|
|
|
if (i == dataList.size()-1){
|
|
|
sqltj = sqltj+Util.null2String(Util.null2String(dataList.get(i).get("sqltj")));
|
|
|
}else {
|
|
|
sqltj = sqltj + Util.null2String(Util.null2String(dataList.get(i).get("sqltj"))) +" union ";
|
|
|
|
|
|
}
|
|
|
}
|
|
|
sqlCondition = "t1.bdkry in ( select a.id from ("+sqltj+") a)";
|
|
|
|
|
|
}
|
|
|
}else {
|
|
|
if (userId !=1){
|
|
|
sqlCondition = "t1.bdkry="+userId;
|
|
|
}
|
|
|
}
|
|
|
log.info("sqlCondition : [{}]",sqlCondition);
|
|
|
|
|
|
ExtensionClassHolder.remove();
|
|
|
return sqlCondition;
|
|
|
}
|
|
|
|
|
|
}
|