feat(order):列表添加鉴权;

master
jiyufei 4 months ago
parent 4d97a2d909
commit bee7bd0b62

@ -5,18 +5,26 @@ import jnpf.mapper.RecycleBucketMapper;
import jnpf.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.model.recyclebucket.*;
import java.math.BigDecimal;
import cn.hutool.core.util.ObjectUtil;
import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.util.GeneraterSwapUtil;
import jnpf.database.model.superQuery.SuperQueryJsonModel;
import jnpf.database.model.superQuery.ConditionJsonModel;
import jnpf.database.model.superQuery.SuperQueryConditionModel;
import java.lang.reflect.Field;
import com.baomidou.mybatisplus.annotation.TableField;
import java.util.regex.Pattern;
import jnpf.model.QueryModel;
import java.util.stream.Collectors;
import jnpf.base.model.ColumnDataModel;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -25,13 +33,17 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.text.SimpleDateFormat;
import jnpf.util.*;
import java.util.*;
import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity;
/**
*
*
* V3.5
* https://www.jnpfsoft.com
@ -39,7 +51,7 @@ import jnpf.permission.entity.UserEntity;
* 2024-06-25
*/
@Service
public class RecycleBucketServiceImpl extends ServiceImpl<RecycleBucketMapper, RecycleBucketEntity> implements RecycleBucketService{
public class RecycleBucketServiceImpl extends ServiceImpl<RecycleBucketMapper, RecycleBucketEntity> implements RecycleBucketService {
@Autowired
private GeneraterSwapUtil generaterSwapUtil;
@ -47,95 +59,98 @@ public class RecycleBucketServiceImpl extends ServiceImpl<RecycleBucketMapper, R
private UserProvider userProvider;
@Override
public List<RecycleBucketEntity> getList(RecycleBucketPagination recycleBucketPagination){
return getTypeList(recycleBucketPagination,recycleBucketPagination.getDataType());
public List<RecycleBucketEntity> getList(RecycleBucketPagination recycleBucketPagination) {
return getTypeList(recycleBucketPagination, recycleBucketPagination.getDataType());
}
/** 列表查询 */
/**
*
*/
@Override
public List<RecycleBucketEntity> getTypeList(RecycleBucketPagination recycleBucketPagination,String dataType){
String userId=userProvider.get().getUserId();
List<String> AllIdList =new ArrayList();
List<List<String>> intersectionList =new ArrayList<>();
public List<RecycleBucketEntity> getTypeList(RecycleBucketPagination recycleBucketPagination, String dataType) {
String userId = userProvider.get().getUserId();
List<String> AllIdList = new ArrayList();
List<List<String>> intersectionList = new ArrayList<>();
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
String columnData = !isPc ? RecycleBucketConstant.getAppColumnData() : RecycleBucketConstant.getColumnData();
ColumnDataModel columnDataModel = JsonUtil.getJsonToBean(columnData, ColumnDataModel.class);
String ruleJson = !isPc ? JsonUtil.getObjectToString(columnDataModel.getRuleListApp()) : JsonUtil.getObjectToString(columnDataModel.getRuleList());
int total=0;
int recycleBucketNum =0;
QueryWrapper<RecycleBucketEntity> recycleBucketQueryWrapper=new QueryWrapper<>();
int total = 0;
int recycleBucketNum = 0;
QueryWrapper<RecycleBucketEntity> recycleBucketQueryWrapper = new QueryWrapper<>();
List<String> allSuperIDlist = new ArrayList<>();
String superOp ="";
if (ObjectUtil.isNotEmpty(recycleBucketPagination.getSuperQueryJson())){
String superOp = "";
if (ObjectUtil.isNotEmpty(recycleBucketPagination.getSuperQueryJson())) {
List<String> allSuperList = new ArrayList<>();
List<List<String>> intersectionSuperList = new ArrayList<>();
List<List<String>> intersectionSuperList = new ArrayList<>();
String queryJson = recycleBucketPagination.getSuperQueryJson();
SuperJsonModel superJsonModel = JsonUtil.getJsonToBean(queryJson, SuperJsonModel.class);
int superNum = 0;
QueryWrapper<RecycleBucketEntity> recycleBucketSuperWrapper = new QueryWrapper<>();
recycleBucketSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(recycleBucketSuperWrapper,RecycleBucketEntity.class,queryJson,"0"));
recycleBucketSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(recycleBucketSuperWrapper, RecycleBucketEntity.class, queryJson, "0"));
int recycleBucketNum1 = recycleBucketSuperWrapper.getExpression().getNormal().size();
if (recycleBucketNum1>0){
List<String> recycleBucketList =this.list(recycleBucketSuperWrapper).stream().map(RecycleBucketEntity::getId).collect(Collectors.toList());
if (recycleBucketNum1 > 0) {
List<String> recycleBucketList = this.list(recycleBucketSuperWrapper).stream().map(RecycleBucketEntity::getId).collect(Collectors.toList());
allSuperList.addAll(recycleBucketList);
intersectionSuperList.add(recycleBucketList);
superNum++;
}
superOp = superNum > 0 ? superJsonModel.getMatchLogic() : "";
//and or
if(superOp.equalsIgnoreCase("and")){
if (superOp.equalsIgnoreCase("and")) {
allSuperIDlist = generaterSwapUtil.getIntersection(intersectionSuperList);
}else{
} else {
allSuperIDlist = allSuperList;
}
}
List<String> allRuleIDlist = new ArrayList<>();
String ruleOp ="";
if (ObjectUtil.isNotEmpty(ruleJson)){
String ruleOp = "";
if (ObjectUtil.isNotEmpty(ruleJson)) {
List<String> allRuleList = new ArrayList<>();
List<List<String>> intersectionRuleList = new ArrayList<>();
List<List<String>> intersectionRuleList = new ArrayList<>();
SuperJsonModel ruleJsonModel = JsonUtil.getJsonToBean(ruleJson, SuperJsonModel.class);
int ruleNum = 0;
QueryWrapper<RecycleBucketEntity> recycleBucketSuperWrapper = new QueryWrapper<>();
recycleBucketSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(recycleBucketSuperWrapper,RecycleBucketEntity.class,ruleJson,"0"));
recycleBucketSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(recycleBucketSuperWrapper, RecycleBucketEntity.class, ruleJson, "0"));
int recycleBucketNum1 = recycleBucketSuperWrapper.getExpression().getNormal().size();
if (recycleBucketNum1>0){
List<String> recycleBucketList =this.list(recycleBucketSuperWrapper).stream().map(RecycleBucketEntity::getId).collect(Collectors.toList());
if (recycleBucketNum1 > 0) {
List<String> recycleBucketList = this.list(recycleBucketSuperWrapper).stream().map(RecycleBucketEntity::getId).collect(Collectors.toList());
allRuleList.addAll(recycleBucketList);
intersectionRuleList.add(recycleBucketList);
ruleNum++;
}
ruleOp = ruleNum > 0 ? ruleJsonModel.getMatchLogic() : "";
//and or
if(ruleOp.equalsIgnoreCase("and")){
if (ruleOp.equalsIgnoreCase("and")) {
allRuleIDlist = generaterSwapUtil.getIntersection(intersectionRuleList);
}else{
} else {
allRuleIDlist = allRuleList;
}
}
boolean pcPermission = true;
boolean appPermission = false;
if(isPc && pcPermission){
if (!userProvider.get().getIsAdministrator()){
Object recycleBucketObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(recycleBucketQueryWrapper,RecycleBucketEntity.class,recycleBucketPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(recycleBucketObj)){
if (isPc && pcPermission) {
if (!userProvider.get().getIsAdministrator()) {
Object recycleBucketObj = generaterSwapUtil.getAuthorizeCondition(new QueryModel(recycleBucketQueryWrapper, RecycleBucketEntity.class, recycleBucketPagination.getMenuId(), "0"));
if (ObjectUtil.isEmpty(recycleBucketObj)) {
return new ArrayList<>();
} else {
recycleBucketQueryWrapper = (QueryWrapper<RecycleBucketEntity>)recycleBucketObj;
if( recycleBucketQueryWrapper.getExpression().getNormal().size()>0){
recycleBucketQueryWrapper = (QueryWrapper<RecycleBucketEntity>) recycleBucketObj;
if (recycleBucketQueryWrapper.getExpression().getNormal().size() > 0) {
recycleBucketNum++;
}
}
}
}
if(!isPc && appPermission){
if (!userProvider.get().getIsAdministrator()){
Object recycleBucketObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(recycleBucketQueryWrapper,RecycleBucketEntity.class,recycleBucketPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(recycleBucketObj)){
if (!isPc && appPermission) {
if (!userProvider.get().getIsAdministrator()) {
Object recycleBucketObj = generaterSwapUtil.getAuthorizeCondition(new QueryModel(recycleBucketQueryWrapper, RecycleBucketEntity.class, recycleBucketPagination.getMenuId(), "0"));
if (ObjectUtil.isEmpty(recycleBucketObj)) {
return new ArrayList<>();
} else {
recycleBucketQueryWrapper = (QueryWrapper<RecycleBucketEntity>)recycleBucketObj;
if( recycleBucketQueryWrapper.getExpression().getNormal().size()>0){
recycleBucketQueryWrapper = (QueryWrapper<RecycleBucketEntity>) recycleBucketObj;
if (recycleBucketQueryWrapper.getExpression().getNormal().size() > 0) {
recycleBucketNum++;
}
}
@ -143,66 +158,66 @@ public class RecycleBucketServiceImpl extends ServiceImpl<RecycleBucketMapper, R
}
}
if(isPc){
if(ObjectUtil.isNotEmpty(recycleBucketPagination.getDeviceCode())){
if (isPc) {
if (ObjectUtil.isNotEmpty(recycleBucketPagination.getDeviceCode())) {
recycleBucketNum++;
String value = recycleBucketPagination.getDeviceCode() instanceof List ?
JsonUtil.getObjectToString(recycleBucketPagination.getDeviceCode()) :
String.valueOf(recycleBucketPagination.getDeviceCode());
recycleBucketQueryWrapper.lambda().like(RecycleBucketEntity::getDeviceCode,value);
recycleBucketQueryWrapper.lambda().like(RecycleBucketEntity::getDeviceCode, value);
}
if(ObjectUtil.isNotEmpty(recycleBucketPagination.getBucketCode())){
if (ObjectUtil.isNotEmpty(recycleBucketPagination.getBucketCode())) {
recycleBucketNum++;
String value = recycleBucketPagination.getBucketCode() instanceof List ?
JsonUtil.getObjectToString(recycleBucketPagination.getBucketCode()) :
String.valueOf(recycleBucketPagination.getBucketCode());
recycleBucketQueryWrapper.lambda().like(RecycleBucketEntity::getBucketCode,value);
recycleBucketQueryWrapper.lambda().like(RecycleBucketEntity::getBucketCode, value);
}
if(ObjectUtil.isNotEmpty(recycleBucketPagination.getBucketName())){
if (ObjectUtil.isNotEmpty(recycleBucketPagination.getBucketName())) {
recycleBucketNum++;
String value = recycleBucketPagination.getBucketName() instanceof List ?
JsonUtil.getObjectToString(recycleBucketPagination.getBucketName()) :
String.valueOf(recycleBucketPagination.getBucketName());
recycleBucketQueryWrapper.lambda().like(RecycleBucketEntity::getBucketName,value);
recycleBucketQueryWrapper.lambda().like(RecycleBucketEntity::getBucketName, value);
}
if(ObjectUtil.isNotEmpty(recycleBucketPagination.getStatus())){
if (ObjectUtil.isNotEmpty(recycleBucketPagination.getStatus())) {
recycleBucketNum++;
recycleBucketQueryWrapper.lambda().eq(RecycleBucketEntity::getStatus,recycleBucketPagination.getStatus());
recycleBucketQueryWrapper.lambda().eq(RecycleBucketEntity::getStatus, recycleBucketPagination.getStatus());
}
if(ObjectUtil.isNotEmpty(recycleBucketPagination.getDoorNum())){
if (ObjectUtil.isNotEmpty(recycleBucketPagination.getDoorNum())) {
recycleBucketNum++;
List<String> idList = new ArrayList<>();
try {
String[][] doorNum = JsonUtil.getJsonToBean(recycleBucketPagination.getDoorNum(),String[][].class);
for(int i=0;i<doorNum.length;i++){
if(doorNum[i].length>0){
String[][] doorNum = JsonUtil.getJsonToBean(recycleBucketPagination.getDoorNum(), String[][].class);
for (int i = 0; i < doorNum.length; i++) {
if (doorNum[i].length > 0) {
idList.add(JsonUtil.getObjectToString(Arrays.asList(doorNum[i])));
}
}
}catch (Exception e1){
} catch (Exception e1) {
try {
List<String> doorNum = JsonUtil.getJsonToList(recycleBucketPagination.getDoorNum(),String.class);
if(doorNum.size()>0){
List<String> doorNum = JsonUtil.getJsonToList(recycleBucketPagination.getDoorNum(), String.class);
if (doorNum.size() > 0) {
idList.addAll(doorNum);
}
}catch (Exception e2){
} catch (Exception e2) {
idList.add(String.valueOf(recycleBucketPagination.getDoorNum()));
}
}
recycleBucketQueryWrapper.lambda().and(t->{
idList.forEach(tt->{
recycleBucketQueryWrapper.lambda().and(t -> {
idList.forEach(tt -> {
t.like(RecycleBucketEntity::getDoorNum, tt).or();
});
});
@ -211,111 +226,123 @@ public class RecycleBucketServiceImpl extends ServiceImpl<RecycleBucketMapper, R
}
List<String> intersection = generaterSwapUtil.getIntersection(intersectionList);
if (total>0){
if (intersection.size()==0){
if (total > 0) {
if (intersection.size() == 0) {
intersection.add("jnpfNullList");
}
recycleBucketQueryWrapper.lambda().in(RecycleBucketEntity::getId, intersection);
}
//是否有高级查询
if (StringUtil.isNotEmpty(superOp)){
if (allSuperIDlist.size()==0){
if (StringUtil.isNotEmpty(superOp)) {
if (allSuperIDlist.size() == 0) {
allSuperIDlist.add("jnpfNullList");
}
List<String> finalAllSuperIDlist = allSuperIDlist;
recycleBucketQueryWrapper.lambda().and(t->t.in(RecycleBucketEntity::getId, finalAllSuperIDlist));
recycleBucketQueryWrapper.lambda().and(t -> t.in(RecycleBucketEntity::getId, finalAllSuperIDlist));
}
//是否有数据过滤查询
if (StringUtil.isNotEmpty(ruleOp)){
if (allRuleIDlist.size()==0){
if (StringUtil.isNotEmpty(ruleOp)) {
if (allRuleIDlist.size() == 0) {
allRuleIDlist.add("jnpfNullList");
}
List<String> finalAllRuleIDlist = allRuleIDlist;
recycleBucketQueryWrapper.lambda().and(t->t.in(RecycleBucketEntity::getId, finalAllRuleIDlist));
recycleBucketQueryWrapper.lambda().and(t -> t.in(RecycleBucketEntity::getId, finalAllRuleIDlist));
}
//排序
if(StringUtil.isEmpty(recycleBucketPagination.getSidx())){
if (StringUtil.isEmpty(recycleBucketPagination.getSidx())) {
recycleBucketQueryWrapper.lambda().orderByDesc(RecycleBucketEntity::getId);
}else{
} else {
try {
String sidx = recycleBucketPagination.getSidx();
String[] strs= sidx.split("_name");
String[] strs = sidx.split("_name");
RecycleBucketEntity recycleBucketEntity = new RecycleBucketEntity();
Field declaredField = recycleBucketEntity.getClass().getDeclaredField(strs[0]);
declaredField.setAccessible(true);
String value = declaredField.getAnnotation(TableField.class).value();
recycleBucketQueryWrapper="asc".equals(recycleBucketPagination.getSort().toLowerCase())?recycleBucketQueryWrapper.orderByAsc(value):recycleBucketQueryWrapper.orderByDesc(value);
recycleBucketQueryWrapper = "asc".equals(recycleBucketPagination.getSort().toLowerCase()) ? recycleBucketQueryWrapper.orderByAsc(value) : recycleBucketQueryWrapper.orderByDesc(value);
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
if (!userProvider.get().getIsAdministrator()) {
recycleBucketQueryWrapper.lambda().eq(RecycleBucketEntity::getCompanyId, userProvider.get().getOrganizeId());
}
if("0".equals(dataType)){
if((total>0 && AllIdList.size()>0) || total==0){
Page<RecycleBucketEntity> page=new Page<>(recycleBucketPagination.getCurrentPage(), recycleBucketPagination.getPageSize());
IPage<RecycleBucketEntity> userIPage=this.page(page, recycleBucketQueryWrapper);
return recycleBucketPagination.setData(userIPage.getRecords(),userIPage.getTotal());
}else{
if ("0".equals(dataType)) {
if ((total > 0 && AllIdList.size() > 0) || total == 0) {
Page<RecycleBucketEntity> page = new Page<>(recycleBucketPagination.getCurrentPage(), recycleBucketPagination.getPageSize());
IPage<RecycleBucketEntity> userIPage = this.page(page, recycleBucketQueryWrapper);
return recycleBucketPagination.setData(userIPage.getRecords(), userIPage.getTotal());
} else {
List<RecycleBucketEntity> list = new ArrayList();
return recycleBucketPagination.setData(list, list.size());
}
}else{
} else {
return this.list(recycleBucketQueryWrapper);
}
}
@Override
public RecycleBucketEntity getInfo(String id){
QueryWrapper<RecycleBucketEntity> queryWrapper=new QueryWrapper<>();
queryWrapper.lambda().eq(RecycleBucketEntity::getId,id);
public RecycleBucketEntity getInfo(String id) {
QueryWrapper<RecycleBucketEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(RecycleBucketEntity::getId, id);
return this.getOne(queryWrapper);
}
@Override
public void create(RecycleBucketEntity entity){
public void create(RecycleBucketEntity entity) {
this.save(entity);
}
@Override
public boolean update(String id, RecycleBucketEntity entity){
public boolean update(String id, RecycleBucketEntity entity) {
return this.updateById(entity);
}
@Override
public void delete(RecycleBucketEntity entity){
if(entity!=null){
public void delete(RecycleBucketEntity entity) {
if (entity != null) {
this.removeById(entity.getId());
}
}
/** 验证表单唯一字段,正则,非空 i-0新增-1修改*/
/**
* i-0-1
*/
@Override
public String checkForm(RecycleBucketForm form,int i) {
boolean isUp =StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0");
String id="";
public String checkForm(RecycleBucketForm form, int i) {
boolean isUp = StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0");
String id = "";
String countRecover = "";
if (isUp){
if (isUp) {
id = form.getId();
}
//主表字段验证
return countRecover;
}
/**
* ()
*
* @param id
* @param recycleBucketForm
* @return
*/
@Override
@Transactional
public void saveOrUpdate(RecycleBucketForm recycleBucketForm,String id, boolean isSave) throws Exception{
UserInfo userInfo=userProvider.get();
public void saveOrUpdate(RecycleBucketForm recycleBucketForm, String id, boolean isSave) throws Exception {
UserInfo userInfo = userProvider.get();
UserEntity userEntity = generaterSwapUtil.getUser(userInfo.getUserId());
recycleBucketForm = JsonUtil.getJsonToBean(
generaterSwapUtil.swapDatetime(RecycleBucketConstant.getFormData(),recycleBucketForm),RecycleBucketForm.class);
generaterSwapUtil.swapDatetime(RecycleBucketConstant.getFormData(), recycleBucketForm), RecycleBucketForm.class);
RecycleBucketEntity entity = JsonUtil.getJsonToBean(recycleBucketForm, RecycleBucketEntity.class);
if(isSave){
String mainId = RandomUtil.uuId() ;
if (isSave) {
String mainId = RandomUtil.uuId();
entity.setBucketCode(generaterSwapUtil.getBillNumber("bucketCode", false));
entity.setId(mainId);
}else{
} else {
entity.setBucketCode(generaterSwapUtil.getBillNumber("bucketCode", false));
}
this.saveOrUpdate(entity);

@ -237,6 +237,10 @@ public class RecycleCleanOrderServiceImpl extends ServiceImpl<RecycleCleanOrderM
}
}
if (!userProvider.get().getIsAdministrator()) {
recycleCleanOrderQueryWrapper.lambda().eq(RecycleCleanOrderEntity::getCompanyId, userProvider.get().getOrganizeId());
}
if ("0".equals(dataType)) {
if ((total > 0 && AllIdList.size() > 0) || total == 0) {
Page<RecycleCleanOrderEntity> page = new Page<>(recycleCleanOrderPagination.getCurrentPage(), recycleCleanOrderPagination.getPageSize());

@ -383,6 +383,10 @@ public class RecycleDeliveryOrderServiceImpl extends ServiceImpl<RecycleDelivery
}
}
if (!userProvider.get().getIsAdministrator()) {
recycleDeliveryOrderQueryWrapper.lambda().eq(RecycleDeliveryOrderEntity::getCompanyId, userProvider.get().getOrganizeId());
}
if ("0".equals(dataType)) {
if ((total > 0 && AllIdList.size() > 0) || total == 0) {
Page<RecycleDeliveryOrderEntity> page = new Page<>(recycleDeliveryOrderPagination.getCurrentPage(), recycleDeliveryOrderPagination.getPageSize());

@ -318,6 +318,10 @@ public class RecycleDeviceServiceImpl extends ServiceImpl<RecycleDeviceMapper, R
}
}
if (!userProvider.get().getIsAdministrator()) {
recycleDeviceQueryWrapper.lambda().eq(RecycleDeviceEntity::getBeLongCompanyId, userProvider.get().getOrganizeId());
}
if ("0".equals(dataType)) {
if ((total > 0 && AllIdList.size() > 0) || total == 0) {
Page<RecycleDeviceEntity> page = new Page<>(recycleDevicePagination.getCurrentPage(), recycleDevicePagination.getPageSize());

Loading…
Cancel
Save