From bee7bd0b622de56b210bdec5956429ca70400e60 Mon Sep 17 00:00:00 2001 From: jiyufei <67400194@qq.com> Date: Mon, 1 Jul 2024 10:13:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(order):=E5=88=97=E8=A1=A8=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=89=B4=E6=9D=83;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/RecycleBucketServiceImpl.java | 219 ++++++++++-------- .../impl/RecycleCleanOrderServiceImpl.java | 4 + .../impl/RecycleDeliveryOrderServiceImpl.java | 4 + .../impl/RecycleDeviceServiceImpl.java | 4 + 4 files changed, 135 insertions(+), 96 deletions(-) diff --git a/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleBucketServiceImpl.java b/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleBucketServiceImpl.java index 19d847c..9c55a17 100644 --- a/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleBucketServiceImpl.java +++ b/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleBucketServiceImpl.java @@ -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 implements RecycleBucketService{ +public class RecycleBucketServiceImpl extends ServiceImpl implements RecycleBucketService { @Autowired private GeneraterSwapUtil generaterSwapUtil; @@ -47,95 +59,98 @@ public class RecycleBucketServiceImpl extends ServiceImpl getList(RecycleBucketPagination recycleBucketPagination){ - return getTypeList(recycleBucketPagination,recycleBucketPagination.getDataType()); + public List getList(RecycleBucketPagination recycleBucketPagination) { + return getTypeList(recycleBucketPagination, recycleBucketPagination.getDataType()); } - /** 列表查询 */ + + /** + * 列表查询 + */ @Override - public List getTypeList(RecycleBucketPagination recycleBucketPagination,String dataType){ - String userId=userProvider.get().getUserId(); - List AllIdList =new ArrayList(); - List> intersectionList =new ArrayList<>(); + public List getTypeList(RecycleBucketPagination recycleBucketPagination, String dataType) { + String userId = userProvider.get().getUserId(); + List AllIdList = new ArrayList(); + List> 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 recycleBucketQueryWrapper=new QueryWrapper<>(); + int total = 0; + int recycleBucketNum = 0; + QueryWrapper recycleBucketQueryWrapper = new QueryWrapper<>(); List allSuperIDlist = new ArrayList<>(); - String superOp =""; - if (ObjectUtil.isNotEmpty(recycleBucketPagination.getSuperQueryJson())){ + String superOp = ""; + if (ObjectUtil.isNotEmpty(recycleBucketPagination.getSuperQueryJson())) { List allSuperList = new ArrayList<>(); - List> intersectionSuperList = new ArrayList<>(); + List> intersectionSuperList = new ArrayList<>(); String queryJson = recycleBucketPagination.getSuperQueryJson(); SuperJsonModel superJsonModel = JsonUtil.getJsonToBean(queryJson, SuperJsonModel.class); int superNum = 0; QueryWrapper 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 recycleBucketList =this.list(recycleBucketSuperWrapper).stream().map(RecycleBucketEntity::getId).collect(Collectors.toList()); + if (recycleBucketNum1 > 0) { + List 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 allRuleIDlist = new ArrayList<>(); - String ruleOp =""; - if (ObjectUtil.isNotEmpty(ruleJson)){ + String ruleOp = ""; + if (ObjectUtil.isNotEmpty(ruleJson)) { List allRuleList = new ArrayList<>(); - List> intersectionRuleList = new ArrayList<>(); + List> intersectionRuleList = new ArrayList<>(); SuperJsonModel ruleJsonModel = JsonUtil.getJsonToBean(ruleJson, SuperJsonModel.class); int ruleNum = 0; QueryWrapper 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 recycleBucketList =this.list(recycleBucketSuperWrapper).stream().map(RecycleBucketEntity::getId).collect(Collectors.toList()); + if (recycleBucketNum1 > 0) { + List 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)recycleBucketObj; - if( recycleBucketQueryWrapper.getExpression().getNormal().size()>0){ + recycleBucketQueryWrapper = (QueryWrapper) 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)recycleBucketObj; - if( recycleBucketQueryWrapper.getExpression().getNormal().size()>0){ + recycleBucketQueryWrapper = (QueryWrapper) recycleBucketObj; + if (recycleBucketQueryWrapper.getExpression().getNormal().size() > 0) { recycleBucketNum++; } } @@ -143,66 +158,66 @@ public class RecycleBucketServiceImpl extends ServiceImpl idList = new ArrayList<>(); try { - String[][] doorNum = JsonUtil.getJsonToBean(recycleBucketPagination.getDoorNum(),String[][].class); - for(int i=0;i0){ + 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 doorNum = JsonUtil.getJsonToList(recycleBucketPagination.getDoorNum(),String.class); - if(doorNum.size()>0){ + List 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 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 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 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 page=new Page<>(recycleBucketPagination.getCurrentPage(), recycleBucketPagination.getPageSize()); - IPage 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 page = new Page<>(recycleBucketPagination.getCurrentPage(), recycleBucketPagination.getPageSize()); + IPage userIPage = this.page(page, recycleBucketQueryWrapper); + return recycleBucketPagination.setData(userIPage.getRecords(), userIPage.getTotal()); + } else { List list = new ArrayList(); return recycleBucketPagination.setData(list, list.size()); } - }else{ + } else { return this.list(recycleBucketQueryWrapper); } } + @Override - public RecycleBucketEntity getInfo(String id){ - QueryWrapper queryWrapper=new QueryWrapper<>(); - queryWrapper.lambda().eq(RecycleBucketEntity::getId,id); + public RecycleBucketEntity getInfo(String id) { + QueryWrapper 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); diff --git a/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleCleanOrderServiceImpl.java b/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleCleanOrderServiceImpl.java index 6f39f3a..574e60b 100644 --- a/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleCleanOrderServiceImpl.java +++ b/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleCleanOrderServiceImpl.java @@ -237,6 +237,10 @@ public class RecycleCleanOrderServiceImpl extends ServiceImpl 0 && AllIdList.size() > 0) || total == 0) { Page page = new Page<>(recycleCleanOrderPagination.getCurrentPage(), recycleCleanOrderPagination.getPageSize()); diff --git a/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleDeliveryOrderServiceImpl.java b/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleDeliveryOrderServiceImpl.java index ed01d74..270d9b0 100644 --- a/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleDeliveryOrderServiceImpl.java +++ b/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleDeliveryOrderServiceImpl.java @@ -383,6 +383,10 @@ public class RecycleDeliveryOrderServiceImpl extends ServiceImpl 0 && AllIdList.size() > 0) || total == 0) { Page page = new Page<>(recycleDeliveryOrderPagination.getCurrentPage(), recycleDeliveryOrderPagination.getPageSize()); diff --git a/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleDeviceServiceImpl.java b/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleDeviceServiceImpl.java index d58bf8c..c48ba7a 100644 --- a/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleDeviceServiceImpl.java +++ b/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleDeviceServiceImpl.java @@ -318,6 +318,10 @@ public class RecycleDeviceServiceImpl extends ServiceImpl 0 && AllIdList.size() > 0) || total == 0) { Page page = new Page<>(recycleDevicePagination.getCurrentPage(), recycleDevicePagination.getPageSize());