|
|
@ -7,10 +7,7 @@ import com.qs.serve.common.model.dto.PageVo; |
|
|
|
import com.qs.serve.common.model.dto.R; |
|
|
|
import com.qs.serve.common.model.enums.BizType; |
|
|
|
import com.qs.serve.common.model.enums.SystemModule; |
|
|
|
import com.qs.serve.common.util.IdUtil; |
|
|
|
import com.qs.serve.common.util.JsonUtil; |
|
|
|
import com.qs.serve.common.util.PageUtil; |
|
|
|
import com.qs.serve.common.util.StringUtils; |
|
|
|
import com.qs.serve.common.util.*; |
|
|
|
import com.qs.serve.modules.exl.common.ExlConst; |
|
|
|
import com.qs.serve.modules.exl.common.QsSqlSessionUtil; |
|
|
|
import com.qs.serve.modules.exl.common.TableCreateSqlUtil; |
|
|
@ -23,6 +20,11 @@ import com.qs.serve.modules.exl.entity.dto.ExlTableBo; |
|
|
|
import com.qs.serve.modules.exl.mapper.ExlTableConfMapper; |
|
|
|
import com.qs.serve.modules.exl.service.ExlColumnConfService; |
|
|
|
import com.qs.serve.modules.exl.service.ExlTableConfService; |
|
|
|
import com.qs.serve.modules.his.entity.HisUserSupplier; |
|
|
|
import com.qs.serve.modules.his.mapper.HisUserSupplierMapper; |
|
|
|
import com.qs.serve.modules.sys.entity.SysUser; |
|
|
|
import com.qs.serve.modules.sys.mapper.SysUserMapper; |
|
|
|
import com.qs.serve.modules.sys.service.SysPostUserService; |
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.jetbrains.annotations.NotNull; |
|
|
@ -31,10 +33,7 @@ import org.springframework.web.bind.annotation.*; |
|
|
|
|
|
|
|
import javax.validation.Valid; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
@ -52,6 +51,9 @@ public class ExlTableDataController { |
|
|
|
private ExlColumnConfService exlColumnConfService; |
|
|
|
private SqlSessionTemplate sqlSessionTemplate; |
|
|
|
private ExlTableConfMapper exlTableConfMapper; |
|
|
|
private SysUserMapper sysUserMapper; |
|
|
|
private SysPostUserService postUserService; |
|
|
|
private HisUserSupplierMapper hisUserSupplierMapper; |
|
|
|
|
|
|
|
/** |
|
|
|
* 翻页查询 |
|
|
@ -101,6 +103,8 @@ public class ExlTableDataController { |
|
|
|
List<ExlConditionDto> le_conditions = new ArrayList<>(); |
|
|
|
List<ExlConditionDto> eq_conditions = new ArrayList<>(); |
|
|
|
List<ExlConditionDto> like_conditions = new ArrayList<>(); |
|
|
|
List<ExlConditionDto> in_conditions = new ArrayList<>(); |
|
|
|
|
|
|
|
if(!map.isEmpty()){ |
|
|
|
for (String columnName : map.keySet()) { |
|
|
|
String searchValue = map.get(columnName); |
|
|
@ -116,20 +120,63 @@ public class ExlTableDataController { |
|
|
|
if(currColumnConf==null){ |
|
|
|
continue; |
|
|
|
} |
|
|
|
String colType = currColumnConf.getColumnType(); |
|
|
|
// 权限范围:0->本人;1->下属;2->全部(本人级下属)
|
|
|
|
Integer scope = currColumnConf.getScope(); |
|
|
|
Set<String> values = new HashSet<>(); |
|
|
|
// 业务类型
|
|
|
|
String userId = AuthContextUtils.getSysUserId(); |
|
|
|
SysUser sysUser = sysUserMapper.selectById(userId); |
|
|
|
if (colType.equals(ExlConst.TYPE_USER_CODE)){ |
|
|
|
values.add("0"); |
|
|
|
if(scope==0){ |
|
|
|
values.add(sysUser.getCode()); |
|
|
|
}else if (scope>0){ |
|
|
|
List<String> childIds = postUserService.listByChildIds(AuthContextUtils.getSysUserId()); |
|
|
|
if(childIds.size()>0){ |
|
|
|
List<SysUser> sysUsers = sysUserMapper.selectBatchIds(childIds); |
|
|
|
List<String> codes = sysUsers.stream().map(a->a.getCode()).collect(Collectors.toList()); |
|
|
|
values.addAll(codes); |
|
|
|
} |
|
|
|
if (scope==2){ |
|
|
|
values.add(sysUser.getCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
ExlConditionDto conditionDto = new ExlConditionDto(orgColumn,values); |
|
|
|
in_conditions.add(conditionDto); |
|
|
|
}else if (colType.equals(ExlConst.TYPE_CUSTOMER_CODE)){ |
|
|
|
values.add("0"); |
|
|
|
List<String> userIds = new ArrayList<>(); |
|
|
|
userIds.add(userId); |
|
|
|
if(scope>0){ |
|
|
|
List<String> childIds = postUserService.listByChildIds(AuthContextUtils.getSysUserId()); |
|
|
|
userIds.addAll(childIds); |
|
|
|
} |
|
|
|
LambdaQueryWrapper<HisUserSupplier> husLqw = new LambdaQueryWrapper<>(); |
|
|
|
husLqw.in(HisUserSupplier::getUserId,userIds); |
|
|
|
husLqw.select(HisUserSupplier::getSupplierCode); |
|
|
|
List<HisUserSupplier> hisUserSuppliers = hisUserSupplierMapper.selectList(husLqw); |
|
|
|
List<String> supplierCodes = hisUserSuppliers.stream() |
|
|
|
.map(HisUserSupplier::getSupplierCode).distinct().collect(Collectors.toList()); |
|
|
|
values.addAll(supplierCodes); |
|
|
|
ExlConditionDto conditionDto = new ExlConditionDto(orgColumn,values); |
|
|
|
in_conditions.add(conditionDto); |
|
|
|
} |
|
|
|
//基础的数据类型
|
|
|
|
if(columnName.contains(ExlConst.PRE_COLUMN_START)){ |
|
|
|
ExlConditionDto conditionDto = new ExlConditionDto(orgColumn,searchValue); |
|
|
|
ge_conditions.add(conditionDto); |
|
|
|
}else if (columnName.contains(ExlConst.PRE_COLUMN_END)){ |
|
|
|
ExlConditionDto conditionDto = new ExlConditionDto(orgColumn,searchValue); |
|
|
|
if(currColumnConf.getColumnType().equals(ExlConst.DATETIME_TYPE)){ |
|
|
|
if(colType.equals(ExlConst.DATETIME_TYPE)){ |
|
|
|
conditionDto.setValue(searchValue+" 23:59:59"); |
|
|
|
} |
|
|
|
le_conditions.add(conditionDto); |
|
|
|
}else { |
|
|
|
ExlConditionDto conditionDto = new ExlConditionDto(columnName,searchValue); |
|
|
|
if (currColumnConf.getColumnType().equals(ExlConst.TYPE_INT)){ |
|
|
|
if (colType.equals(ExlConst.TYPE_INT)){ |
|
|
|
eq_conditions.add(conditionDto); |
|
|
|
}else if (currColumnConf.getColumnType().equals(ExlConst.TYPE_STRING)){ |
|
|
|
}else{ |
|
|
|
like_conditions.add(conditionDto); |
|
|
|
} |
|
|
|
} |
|
|
@ -139,6 +186,7 @@ public class ExlTableDataController { |
|
|
|
queryMap.put("geList",ge_conditions); |
|
|
|
queryMap.put("eqList",eq_conditions); |
|
|
|
queryMap.put("likeList",like_conditions); |
|
|
|
queryMap.put("inBizList",in_conditions); |
|
|
|
return queryMap; |
|
|
|
} |
|
|
|
|
|
|
|