From 56dfe0d4bf81262622a1919cceb2b039fd356209 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 03 九月 2024 16:52:49 +0800 Subject: [PATCH] 代码提交 bug解决 --- ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlStoreManagementServiceImpl.java | 284 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 255 insertions(+), 29 deletions(-) diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlStoreManagementServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlStoreManagementServiceImpl.java index 4fda64a..600df28 100644 --- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlStoreManagementServiceImpl.java +++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlStoreManagementServiceImpl.java @@ -1,25 +1,31 @@ package com.ruoyi.management.service.impl; +import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.utils.page.PageDTO; -import com.ruoyi.management.domain.ManagementGoodsMaterials; -import com.ruoyi.management.domain.SlStoreManagement; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.management.domain.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.management.domain.SlVolumeProductionRk; import com.ruoyi.management.domain.dto.QStoreManagementQuery; import com.ruoyi.management.domain.dto.StoreManagementDTO; import com.ruoyi.management.domain.dto.StoreManagementQuery; import com.ruoyi.management.domain.vo.SlGoodsShelfVO; import com.ruoyi.management.domain.vo.SlStoreManagementInventoryVO; -import com.ruoyi.management.mapper.ManagementGoodsMaterialsMapper; -import com.ruoyi.management.mapper.SlStoreManagementMapper; -import com.ruoyi.management.mapper.SlVolumeProductionRkMapper; -import com.ruoyi.management.mapper.SlVolumeProductionRkglMapper; +import com.ruoyi.management.mapper.*; +import com.ruoyi.management.service.SlAuditRecordService; +import com.ruoyi.management.service.SlAuditService; import com.ruoyi.management.service.SlStoreManagementService; +import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.api.feignClient.SysUserClient; +import org.apache.catalina.security.SecurityUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -39,19 +45,23 @@ @Resource private ManagementGoodsMaterialsMapper managementGoodsMaterialsMapper; + @Autowired + private SlAuditMapper slAuditMapper; + @Autowired + private SlAuditRecordMapper slAuditRecordMapper; @Override public PageDTO<SlStoreManagement> getStoreManagementList(StoreManagementQuery storeManagementQuery) { Page<SlStoreManagement> page = new Page<>(storeManagementQuery.getPageCurr(), storeManagementQuery.getPageSize()); LambdaQueryWrapper< SlStoreManagement> wrapper= Wrappers.lambdaQuery(); if (storeManagementQuery.getStoreManagementName()!=null&&storeManagementQuery.getStoreManagementName()!=""){ - wrapper.eq(SlStoreManagement::getStoreManagementName,storeManagementQuery.getStoreManagementName()); + wrapper.like(SlStoreManagement::getStoreManagementName,storeManagementQuery.getStoreManagementName()); } - if(storeManagementQuery.getStoreManagementNo()!=null&&storeManagementQuery.getStoreManagementNo()!=""){ - wrapper.eq(SlStoreManagement::getStoreManagementNo,storeManagementQuery.getStoreManagementNo()); + if(storeManagementQuery.getStoreManagementNo()!=null&&storeManagementQuery.getStoreManagementNo()!="" ){ + wrapper.like(SlStoreManagement::getStoreManagementNo,storeManagementQuery.getStoreManagementNo()); } - if ( storeManagementQuery.getStoreManagementGrade()!=null &&!storeManagementQuery.getStoreManagementGrade().equals("0") ){ + if ( storeManagementQuery.getStoreManagementGrade()!=null &&!storeManagementQuery.getStoreManagementGrade().equals("0") ){ String[] split = storeManagementQuery.getStoreManagementGrade().split(","); List<Integer> arr=new ArrayList<>(); for(int i=0;i<split.length;i++){ @@ -67,8 +77,15 @@ } @Override - public void addStoreManagement(StoreManagementDTO storeManagementDTO) { + public AjaxResult addStoreManagement(StoreManagementDTO storeManagementDTO) { if (storeManagementDTO.getId()==null){ + List<SlStoreManagement> list = this.list(new QueryWrapper<SlStoreManagement>() + .eq("store_management_grade", storeManagementDTO.getStoreManagementGrade()) + .eq("store_management_no", storeManagementDTO.getStoreManagementNo()) + .eq("del_flag", 0)); + if (!list.isEmpty()){ + return AjaxResult.error("当前仓库等级已有相同编号仓库"); + } SlStoreManagement slStoreManagement=new SlStoreManagement(); slStoreManagement.setStoreManagementNo(storeManagementDTO.getStoreManagementNo()); slStoreManagement.setStoreManagementAdder(storeManagementDTO.getStoreManagementAdder()); @@ -90,6 +107,45 @@ this.save(slStoreManagement); }else { SlStoreManagement slStoreManagement = this.getById(storeManagementDTO.getId()); + if (!(slStoreManagement.getAdministratorId().equals(storeManagementDTO.getAdministratorId()) + && slStoreManagement.getCompetentId().equals(storeManagementDTO.getCompetentId()) + && slStoreManagement.getDirectorId().equals(storeManagementDTO.getDirectorId()))){ + // 如果修改了 主任 主管 管理员id 那么需要将正在走审批流程的单子全部修改 + List<SlAudit> list1 =slAuditMapper.selectList(new LambdaQueryWrapper<SlAudit>().eq(SlAudit::getManagementId, storeManagementDTO.getId()) + .eq(SlAudit::getDelFlag, "0").ne(SlAudit::getState, 4)); + for (SlAudit slAudit : list1) { + List<SlAuditRecord> list = slAuditRecordMapper.selectList(new LambdaQueryWrapper<SlAuditRecord>() + .eq(SlAuditRecord::getAuditId, slAudit.getId()) + .eq(SlAuditRecord::getDelFlag, "0")); + for (SlAuditRecord slAuditRecord : list) { + if (slAuditRecord.getType() == 1){ + if (slAuditRecord.getState()!=2){ + slAuditRecord.setShenhId(storeManagementDTO.getAdministratorId()); + } + } + if (slAuditRecord.getType() == 2){ + if (slAuditRecord.getState()!=2){ + slAuditRecord.setShenhId(storeManagementDTO.getCompetentId()); + } + } + if (slAuditRecord.getType() == 3){ + if (slAuditRecord.getState()!=2){ + slAuditRecord.setShenhId(storeManagementDTO.getDirectorId()); + } + } + slAuditRecordMapper.updateById(slAuditRecord); + } + } + } + + List<SlStoreManagement> list = this.list(new QueryWrapper<SlStoreManagement>() + .eq("store_management_grade", storeManagementDTO.getStoreManagementGrade()) + .eq("store_management_no", storeManagementDTO.getStoreManagementNo()) + .ne("id",slStoreManagement.getId()) + .eq("del_flag", 0)); + if (!list.isEmpty()){ + return AjaxResult.error("当前仓库等级已有相同编号仓库"); + } if (storeManagementDTO.getStoreManagementNo()!=null){ slStoreManagement.setStoreManagementNo(storeManagementDTO.getStoreManagementNo()); } @@ -143,46 +199,216 @@ } this.updateById(slStoreManagement); } - + return AjaxResult.success(); } + @Autowired + private TokenService tokenService; + @Resource + private SysUserClient sysUserClient; @Override public List<SlStoreManagement> QueryStoreManagementList(QStoreManagementQuery StoreManagementQuery) { LambdaQueryWrapper< SlStoreManagement> wrapper= Wrappers.lambdaQuery(); - if (StoreManagementQuery.getCityCode()!="" && StoreManagementQuery.getCityCode()!=null){ - wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode()); - } - if (StoreManagementQuery.getCountyCode()!="" && StoreManagementQuery.getCountyCode()!=null){ - wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode()); - } - if (StoreManagementQuery.getStoreManagementGrade()!=0 && StoreManagementQuery.getStoreManagementGrade()!=null){ - wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); - } - wrapper.eq( SlStoreManagement::getDelFlag,0); + wrapper.eq(SlStoreManagement::getDelFlag,0); wrapper.orderByDesc(SlStoreManagement::getCreateTime); + Long userid = tokenService.getLoginUser().getUserid(); + SysUser data = sysUserClient.getSysUser(userid).getData(); + if (data!=null){ + if (!data.getUserType().equals("00")){ + // 仓库管理员 根据仓库管理员的等级查询对应的仓库 + switch (data.getRoleType()){ + case 2: + if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=""){ + if (StoreManagementQuery.getTownCode()!=null && StoreManagementQuery.getTownCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode()); + }else if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode()); + }else if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode()); + }else{ + String[] split = StoreManagementQuery.getStoreManagementGrade().split(","); + // 如果没指定所在地 查所有 + wrapper.in(SlStoreManagement::getStoreManagementGrade,split); + } + }else{ + // 没有选择仓库等级 根据登陆人等级来查询 + wrapper.ge(SlStoreManagement::getStoreManagementGrade,2); + } + + break; + case 3: + if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=""){ + if (StoreManagementQuery.getTownCode()!=null&& StoreManagementQuery.getTownCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode()); + }else if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode()); + }else if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode()); + }else{ + // 如果没指定所在地 查所有 + String[] split = StoreManagementQuery.getStoreManagementGrade().split(","); + // 如果没指定所在地 查所有 + wrapper.in(SlStoreManagement::getStoreManagementGrade,split); + wrapper.eq(SlStoreManagement::getCityCode,data.getCityCode()); + + } + }else{ + // 没有选择仓库等级 根据登陆人等级来查询 并且根据登陆人所在市来查询 + wrapper.eq(SlStoreManagement::getCityCode,data.getCityCode()); + wrapper.ge(SlStoreManagement::getStoreManagementGrade,3); + } + break; + case 4: + if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=""){ + if (StoreManagementQuery.getTownCode()!=null && StoreManagementQuery.getTownCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode()); + }else if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode()); + }else if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode()); + }else{ + // 如果没指定所在地 查所有 + String[] split = StoreManagementQuery.getStoreManagementGrade().split(","); + // 如果没指定所在地 查所有 + wrapper.in(SlStoreManagement::getStoreManagementGrade,split); + wrapper.eq(SlStoreManagement::getCountyCode,data.getCountyCode()); + } + }else{ + // 没有选择仓库等级 根据登陆人等级来查询 + wrapper.eq(SlStoreManagement::getCountyCode,data.getCountyCode()); + wrapper.ge(SlStoreManagement::getStoreManagementGrade,4); + } + break; + case 5: + if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=""){ + if (StoreManagementQuery.getTownCode()!=null && StoreManagementQuery.getTownCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode()); + }else if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode()); + }else if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode()); + }else{ + // 如果没指定所在地 查所有 + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode()); + + } + }else{ + // 没有选择仓库等级 根据登陆人等级来查询 + wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode()); + wrapper.eq(SlStoreManagement::getStoreManagementGrade,5); + } + break; + case 6: + if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=""){ + if (StoreManagementQuery.getTownCode()!=null&& StoreManagementQuery.getTownCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode()); + }else if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode()); + }else if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode()); + }else{ + // 如果没指定所在地 查所有 + String[] split = StoreManagementQuery.getStoreManagementGrade().split(","); + // 如果没指定所在地 查所有 + wrapper.in(SlStoreManagement::getStoreManagementGrade,split); + wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode()); + } + }else{ + // 没有选择仓库等级 根据登陆人等级来查询 + wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode()); + wrapper.eq(SlStoreManagement::getStoreManagementGrade,6); + } + break; + } + + }else { + if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!="" ){ + if (StoreManagementQuery.getTownCode()!=null && StoreManagementQuery.getTownCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode()); + }else if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode()); + }else if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade()); + wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode()); + }else { + // 如果没指定所在地 查所有 + String[] split = StoreManagementQuery.getStoreManagementGrade().split(","); + // 如果没指定所在地 查所有 + wrapper.in(SlStoreManagement::getStoreManagementGrade,split); + } + } + + } + + } List<SlStoreManagement> page1 = this.list(wrapper); return page1; } @Override public PageDTO<SlStoreManagementInventoryVO> getManagementInventoryList(StoreManagementQuery storeManagementQuery) { + Long userId = SecurityUtils.getUserId(); + SysUser data = sysUserClient.getSysUser(userId).getData(); Page<SlStoreManagement> page = new Page<>(storeManagementQuery.getPageCurr(), storeManagementQuery.getPageSize()); LambdaQueryWrapper< SlStoreManagement> wrapper= Wrappers.lambdaQuery(); if (storeManagementQuery.getStoreManagementName()!=null){ - wrapper.eq(SlStoreManagement::getStoreManagementName,storeManagementQuery.getStoreManagementName()); + wrapper.like(SlStoreManagement::getStoreManagementName,storeManagementQuery.getStoreManagementName()); + } + if (!data.getUserType().equals("00")){ + // 不是平台账号 根据角色类型查询对应的仓库 + switch (data.getRoleType()){ + case 3: + wrapper.ge(SlStoreManagement::getStoreManagementGrade,3); + wrapper.eq(SlStoreManagement::getCityCode,data.getCityCode()); + break; + case 4: + wrapper.eq(SlStoreManagement::getCountyCode,data.getCountyCode()); + + wrapper.ge(SlStoreManagement::getStoreManagementGrade,4); + break; + case 5: + wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode()); + + wrapper.ge(SlStoreManagement::getStoreManagementGrade,5); + break; + case 6: + wrapper.eq(SlStoreManagement::getStoreManagementGrade,6); + wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode()); + break; + } } if (storeManagementQuery.getStoreManagementNo()!=null){ wrapper.eq(SlStoreManagement::getStoreManagementNo,storeManagementQuery.getStoreManagementNo()); } if ( storeManagementQuery.getStoreManagementGrade()!=null&&!storeManagementQuery.getStoreManagementGrade().equals("0")){ - String[] split = storeManagementQuery.getStoreManagementGrade().split(","); - List<Integer> arr=new ArrayList<>(); - for(int i=0;i<split.length;i++){ - arr.add(Integer.valueOf(split[i])); + if (!storeManagementQuery.getStoreManagementGrade().contains("0")){ + String[] split = storeManagementQuery.getStoreManagementGrade().split(","); + List<Integer> arr=new ArrayList<>(); + for(int i=0;i<split.length;i++){ + arr.add(Integer.valueOf(split[i])); + } + wrapper.in(SlStoreManagement::getStoreManagementGrade,arr); } - wrapper.in(SlStoreManagement::getStoreManagementGrade,arr); } wrapper.eq( SlStoreManagement::getDelFlag,0); wrapper.orderByDesc(SlStoreManagement::getCreateTime); -- Gitblit v1.7.1