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/SlVolumeProductionRkglServiceImpl.java | 343 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 329 insertions(+), 14 deletions(-) diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkglServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkglServiceImpl.java index efa5cd3..ea59871 100644 --- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkglServiceImpl.java +++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkglServiceImpl.java @@ -1,27 +1,35 @@ package com.ruoyi.management.service.impl; 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.BeanUtils; import com.ruoyi.common.core.utils.page.PageDTO; -import com.ruoyi.management.domain.SlGoodsShelf; -import com.ruoyi.management.domain.SlStoreManagement; -import com.ruoyi.management.domain.SlVolumeProductionRkgl; +import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.management.domain.*; import com.ruoyi.management.domain.dto.SupplierVolumeProductionRkglQuery; -import com.ruoyi.management.domain.vo.SlGoodsShelfVO; +import com.ruoyi.management.domain.dto.VolumeProductionRkglDTO; +import com.ruoyi.management.domain.vo.ManagementimgVolumeProductionRkVO; import com.ruoyi.management.domain.vo.SupplierVolumeProductionRkglVO; import com.ruoyi.management.domain.vo.VolumeProductionRkgInfoVO; -import com.ruoyi.management.mapper.SlStoreManagementMapper; -import com.ruoyi.management.mapper.SlVolumeProductionRkglMapper; +import com.ruoyi.management.domain.vo.VolumeProductionRkgInventoryVO; +import com.ruoyi.management.mapper.*; import com.ruoyi.management.service.SlVolumeProductionRkglService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.api.domain.getVolumeProductionRkQuery; +import com.ruoyi.system.api.feignClient.LogClient; import com.ruoyi.system.api.feignClient.SysUserClient; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.List; +import javax.xml.crypto.Data; +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; /** * <p> @@ -41,11 +49,26 @@ @Resource private SlStoreManagementMapper slStoreManagementMapper; + @Resource + private SlVolumeProductionRkMapper slVolumeProductionRkMapper; + + @Resource + private SlGoodsMaterialsMapper slGoodsMaterialsMapper; + + @Resource + private SlGoodsShelfMapper slGoodsShelfMapper; + + @Resource + private ManagementGoodsMaterialsMapper managementGoodsMaterialsMapper; + + @Resource + private LogClient logClient; + @Override public PageDTO<SupplierVolumeProductionRkglVO> getSupplierVolumeProductionRkglList(SupplierVolumeProductionRkglQuery supplierVolumeProductionRkglQuery) { Page<SlVolumeProductionRkgl> page = new Page<>(supplierVolumeProductionRkglQuery.getPageCurr(), supplierVolumeProductionRkglQuery.getPageSize()); LambdaQueryWrapper< SlVolumeProductionRkgl> wrapper1= Wrappers.lambdaQuery(); - wrapper1.like(SlVolumeProductionRkgl::getSupplierId,supplierVolumeProductionRkglQuery.getSupplierId()); + wrapper1.eq(SlVolumeProductionRkgl::getSupplierId,supplierVolumeProductionRkglQuery.getSupplierId()); wrapper1.eq( SlVolumeProductionRkgl::getDelFlag,0); wrapper1.orderByDesc(SlVolumeProductionRkgl::getCreateTime); Page<SlVolumeProductionRkgl> page2 = this.page(page, wrapper1); @@ -53,7 +76,7 @@ PageDTO<SupplierVolumeProductionRkglVO> SlGoodsShelfDTO = PageDTO.of(page2, SupplierVolumeProductionRkglVO.class); List<SupplierVolumeProductionRkglVO> list2 = SlGoodsShelfDTO.getList(); for(SupplierVolumeProductionRkglVO list:list2){ - SysUser data = sysUserClient.getSysUser(Long.valueOf(list.getSupplierId())).getData(); + SysUser data = sysUserClient.getSysUser(list.getSupplierId()).getData(); list.setNickName(data.getNickName()); list.setPhonenumber(data.getPhonenumber()); SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(list.getManagementId()); @@ -63,15 +86,307 @@ } @Override - public VolumeProductionRkgInfoVO getVolumeProductionRkgInfo(Integer id) { + public VolumeProductionRkgInfoVO getVolumeProductionRkgInfo(Long id) { SlVolumeProductionRkgl byId = this.getById(id); + // 根据仓库id 查询仓库管理员 VolumeProductionRkgInfoVO v=BeanUtils.copyBean(byId, VolumeProductionRkgInfoVO.class); SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId()); + v.setZhuren(slStoreManagement.getDirectorId()); + v.setZhuguan(slStoreManagement.getCompetentId()); + v.setGuanliyuan(slStoreManagement.getAdministratorId()); v.setStoreManagementName(slStoreManagement.getStoreManagementName()); - SysUser data = sysUserClient.getSysUser(Long.valueOf(byId.getSupplierId())).getData(); - v.setSupplierName(data.getNickName()); - SysUser data1 = sysUserClient.getSysUser(Long.valueOf(byId.getSysId())).getData(); - v.setSysName(data1.getNickName()); + if (byId.getSupplierId()!=null){ + SysUser data = sysUserClient.getSysUser(Long.valueOf(byId.getSupplierId())).getData(); + if (data!=null){ + v.setSupplierName(data.getNickName()); + v.setSupplierPhone(data.getPhonenumber()); + } + } + v.setSupplierId(byId.getSupplierId()); + if (byId.getSysId()!=null){ + SysUser data1 = sysUserClient.getSysUser(Long.valueOf(byId.getSysId())).getData(); + if (data1!=null){ + v.setSysName(data1.getNickName()); + v.setSysPhone(data1.getPhonenumber()); + } + } + v.setAuthorization(byId.getAuthorizationUrl()); + v.setReason(byId.getReasonsRefusal()); return v; } + @Autowired + private TokenService tokenService; + @Override + public PageDTO<SupplierVolumeProductionRkglVO> getslVolumeProductionRkglList(getVolumeProductionRkQuery getVolumeProductionRkQuery) { + Page<SlVolumeProductionRkgl> page = new Page<>(getVolumeProductionRkQuery.getPageCurr(), getVolumeProductionRkQuery.getPageSize()); + + List<SysUser> data1 = sysUserClient.getUserSupplierList(getVolumeProductionRkQuery).getData(); + Set<Long> goodsSkuIdList = null; + List<Long> managementIds = new ArrayList<>(); + goodsSkuIdList = data1.stream().map(SysUser::getUserId) + .collect(Collectors.toSet()); + Long userid = tokenService.getLoginUser().getUserid(); + SysUser data2 = sysUserClient.getSysUser(userid).getData(); + LambdaQueryWrapper< SlVolumeProductionRkgl> wrapper1= Wrappers.lambdaQuery(); + QueryWrapper<SlStoreManagement> storeManagementGrade = new QueryWrapper<SlStoreManagement>() + .eq("del_flag", "0"); + if (data2!=null){ + if (!data2.getUserType().equals("00")){ + // 仓库管理员 根据仓库管理员的等级查询对应的仓库 + switch (data2.getRoleType()){ + case 3: + storeManagementGrade.ge("store_management_grade",3); + storeManagementGrade.eq("city_code",data2.getCityCode()); + managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream() + .map(SlStoreManagement::getId).collect(Collectors.toList()); + break; + case 4: + storeManagementGrade.ge("store_management_grade",4); + storeManagementGrade.eq("county_code",data2.getCountyCode()); + managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream() + .map(SlStoreManagement::getId).collect(Collectors.toList()); + break; + case 5: + storeManagementGrade.ge("store_management_grade",5); + storeManagementGrade.eq("town_code",data2.getTownCode()); + managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream() + .map(SlStoreManagement::getId).collect(Collectors.toList()); + break; + case 6: + storeManagementGrade.eq("store_management_grade",6); + storeManagementGrade.eq("town_code",data2.getTownCode()); + managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream() + .map(SlStoreManagement::getId).collect(Collectors.toList()); + break; + } + + } + + } + if (!managementIds.isEmpty()){ + wrapper1.in(SlVolumeProductionRkgl::getManagementId,managementIds); + } + if (getVolumeProductionRkQuery.getPresentState()!=null && getVolumeProductionRkQuery.getPresentState()!=0){ + wrapper1.eq(SlVolumeProductionRkgl::getPresentState,getVolumeProductionRkQuery.getPresentState()); + } + if (getVolumeProductionRkQuery.getAuditStatus()!=null && getVolumeProductionRkQuery.getAuditStatus()!=0) { + wrapper1.eq(SlVolumeProductionRkgl::getAuditStatus, getVolumeProductionRkQuery.getAuditStatus()); + } + if (goodsSkuIdList.size()>0){ + wrapper1.in(SlVolumeProductionRkgl::getSysId,goodsSkuIdList); + }else{ + goodsSkuIdList=new HashSet<>(); + goodsSkuIdList.add(0l); + wrapper1.in(SlVolumeProductionRkgl::getSysId,goodsSkuIdList); + } + wrapper1.eq( SlVolumeProductionRkgl::getDelFlag,0); + wrapper1.orderByDesc(SlVolumeProductionRkgl::getStartiTime); + Page<SlVolumeProductionRkgl> page2 = this.page(page, wrapper1); + PageDTO<SupplierVolumeProductionRkglVO> SlGoodsShelfDTO = PageDTO.of(page2, SupplierVolumeProductionRkglVO.class); + List<SupplierVolumeProductionRkglVO> list2 = SlGoodsShelfDTO.getList(); + for(SupplierVolumeProductionRkglVO list:list2){ + SysUser data = sysUserClient.getSysUser(list.getSysId()).getData(); + list.setNickName(data.getNickName()); + list.setPhonenumber(data.getPhonenumber()); + SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(list.getManagementId()); + if (slStoreManagement!=null){ + list.setStoreManagementName(slStoreManagement.getStoreManagementName()); + } + } + return SlGoodsShelfDTO; + } + + @Override + public Long addVolumeProductionRkgl(VolumeProductionRkglDTO volumeProductionRkglDTO) { + SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(volumeProductionRkglDTO.getManagementId()); + String directorId = slStoreManagement.getDirectorId(); + String competentId = slStoreManagement.getCompetentId(); + String administratorId = slStoreManagement.getAdministratorId(); + Long userid = SecurityUtils.getUserId(); + List<String> list1 = Arrays.asList(administratorId.split(",")); + List<String> list2 = Arrays.asList(competentId.split(",")); + List<String> list3 = Arrays.asList(directorId.split(",")); + SlVolumeProductionRkgl slVolumeProductionRkgl=null; + if (volumeProductionRkglDTO.getId()==null){ + slVolumeProductionRkgl = new SlVolumeProductionRkgl(); + slVolumeProductionRkgl.setAttachmentUrl(volumeProductionRkglDTO.getAttachmentUrl()); + slVolumeProductionRkgl.setAuthorizationUrl(volumeProductionRkglDTO.getAuthorization()); + slVolumeProductionRkgl.setManagementId(volumeProductionRkglDTO.getManagementId()); + slVolumeProductionRkgl.setAuditStatus(1); + slVolumeProductionRkgl.setPresentState(1); + slVolumeProductionRkgl.setSupplierId(volumeProductionRkglDTO.getSupplierId()); + slVolumeProductionRkgl.setSource(volumeProductionRkglDTO.getSource()); + slVolumeProductionRkgl.setStartiTime(new Date()); + slVolumeProductionRkgl.setSysId(userid); + slVolumeProductionRkgl.setRemark(volumeProductionRkglDTO.getRemark()); + // 如果发起人是主任 主管 或 管理员 + if (list1.contains(userid.toString())){ + slVolumeProductionRkgl.setAuditStatus(1); + slVolumeProductionRkgl.setPresentState(2); + } + if (list2.contains(userid.toString())){ + slVolumeProductionRkgl.setAuditStatus(1); + slVolumeProductionRkgl.setPresentState(3); + } + if (list3.contains(userid.toString())){ + slVolumeProductionRkgl.setAuditStatus(3); + slVolumeProductionRkgl.setPresentState(4); + } + this.save(slVolumeProductionRkgl); + }else{ + slVolumeProductionRkgl = this.getById(volumeProductionRkglDTO.getId()); + slVolumeProductionRkgl.setPresentState(1); + slVolumeProductionRkgl.setAuditStatus(1); + if (volumeProductionRkglDTO.getSource()!=null){ + slVolumeProductionRkgl.setSource(volumeProductionRkglDTO.getSource()); + } + if (volumeProductionRkglDTO.getRemark()!=null){ + slVolumeProductionRkgl.setRemark(volumeProductionRkglDTO.getRemark()); + } + if (volumeProductionRkglDTO.getSupplierId()!=null){ + slVolumeProductionRkgl.setSupplierId(volumeProductionRkglDTO.getSupplierId()); + } + if (volumeProductionRkglDTO.getAttachmentUrl()!=null){ + slVolumeProductionRkgl.setAttachmentUrl(volumeProductionRkglDTO.getAttachmentUrl()); + } + if (volumeProductionRkglDTO.getAuthorization()!=null){ + slVolumeProductionRkgl.setAuthorizationUrl(volumeProductionRkglDTO.getAuthorization()); + } + // 如果发起人是主任 主管 或 管理员 + if (list1.contains(userid.toString())){ + slVolumeProductionRkgl.setAuditStatus(1); + slVolumeProductionRkgl.setPresentState(2); + } + if (list2.contains(userid.toString())){ + slVolumeProductionRkgl.setAuditStatus(1); + slVolumeProductionRkgl.setPresentState(3); + } + if (list3.contains(userid.toString())){ + slVolumeProductionRkgl.setAuditStatus(3); + slVolumeProductionRkgl.setPresentState(4); + } + this.updateById(slVolumeProductionRkgl); + + } + return slVolumeProductionRkgl.getId(); + } + + @Override + public VolumeProductionRkgInventoryVO getVolumeProductionRkgInventory(Long id) { + SlVolumeProductionRkgl byId = this.getById(id); + VolumeProductionRkgInventoryVO vo = new VolumeProductionRkgInventoryVO(); + SysUser data = sysUserClient.getSysUser(byId.getSysId()).getData(); + vo.setSysPhone(data.getPhonenumber()); + vo.setSysName(data.getNickName()); + vo.setStartiTime(byId.getStartiTime()); + SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId()); + vo.setStoreManagementName(slStoreManagement.getStoreManagementName()); + String directorId = slStoreManagement.getDirectorId(); + List<String> stri = Arrays.asList(directorId.split(",")); + String str1 =""; + if (stri.size() > 0) { + for (String str : stri) { + SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData(); + str1 += data1.getNickName() + ","; + } + } + vo.setDirectorName(str1.substring(0, str1.length() - 1)); + + String competentId = slStoreManagement.getCompetentId(); + List<String> stri1 = Arrays.asList(competentId.split(",")); + String str11 = ""; + if (stri1.size() > 0) { + for (String str : stri1) { + SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData(); + str11 += data1.getNickName() + ","; + } + } + vo.setCompetentName(str11.substring(0, str11.length() - 1)); + + String administratorId = slStoreManagement.getAdministratorId(); + List<String> stri11 = Arrays.asList(administratorId.split(",")); + String str111 = ""; + if (stri11.size() > 0) { + for (String str : stri11) { + SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData(); + str111 += data1.getNickName() + ","; + } + } + vo.setAdministratorName(str111.substring(0, str111.length() - 1)); + + List<ManagementimgVolumeProductionRkVO> managementList = new ArrayList<>(); + + + LambdaQueryWrapper<SlVolumeProductionRk> wrapper1 = Wrappers.lambdaQuery(); + wrapper1.eq(SlVolumeProductionRk::getVolumeProductionRkglId, byId.getId()); + wrapper1.eq(SlVolumeProductionRk::getDelFlag, 0); + wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime); + SysUser data1 = sysUserClient.getSysUser(byId.getSupplierId()).getData(); + List<SlVolumeProductionRk> page2 = slVolumeProductionRkMapper.selectList(wrapper1); + for (SlVolumeProductionRk list : page2) { + ManagementimgVolumeProductionRkVO rkVO = new ManagementimgVolumeProductionRkVO(); + SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId()); + rkVO.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); + rkVO.setIsConsume(slGoodsMaterials.getIsConsume()); + rkVO.setRkModel(list.getRkModel()); + rkVO.setRkNum(list.getRkNum()); + rkVO.setRkPice(list.getRkPice()); + rkVO.setStoreManagementNumber(list.getStoreManagementNumber()); + SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId()); + rkVO.setGoodsShelfName(slGoodsShelf.getGoodsShelfName()); + rkVO.setSupplierName(data1.getNickName()); + managementList.add(rkVO); + } + vo.setManagementimgVolumeProductionRkVOList(managementList); + return vo; + } + + @Override + public void rk(Long id) { + LambdaQueryWrapper<SlVolumeProductionRk> wrapper1 = Wrappers.lambdaQuery(); + wrapper1.eq(SlVolumeProductionRk::getVolumeProductionRkglId, id); + wrapper1.eq(SlVolumeProductionRk::getDelFlag, 0); + wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime); + List<SlVolumeProductionRk> page2 = slVolumeProductionRkMapper.selectList(wrapper1); + for (SlVolumeProductionRk list : page2) { + list.setNewAddTime("1"); + list.setSmerwmNum(list.getErwmNum()); + LambdaQueryWrapper<ManagementGoodsMaterials> wrapper2 = Wrappers.lambdaQuery(); + wrapper2.eq(ManagementGoodsMaterials::getGoodsMaterialsId,list.getMaterialsId()); + wrapper2.eq(ManagementGoodsMaterials::getManagementId,list.getManagementId()); + wrapper2.eq(ManagementGoodsMaterials::getDelFlag, 0); + ManagementGoodsMaterials managementGoodsMaterials = managementGoodsMaterialsMapper.selectOne(wrapper2); + + SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId()); + + if (managementGoodsMaterials!=null){ + Long repertorySum = managementGoodsMaterials.getRepertorySum(); + Long repertoryZhai = managementGoodsMaterials.getRepertoryZhai(); + Long re=repertorySum+list.getRkNum(); + Long re1=repertoryZhai+list.getRkNum(); + managementGoodsMaterials.setRepertorySum(re); + managementGoodsMaterials.setRepertoryZhai(re1); + managementGoodsMaterials.setRepertory(slGoodsMaterials.getRepertory()); + managementGoodsMaterialsMapper.updateById(managementGoodsMaterials); + }else{ + ManagementGoodsMaterials managementGoodsMaterials1=new ManagementGoodsMaterials(); + managementGoodsMaterials1.setManagementId(list.getManagementId()); + managementGoodsMaterials1.setGoodsMaterialsId(list.getMaterialsId()); + managementGoodsMaterials1.setRepertoryZhai(list.getRkNum()); + managementGoodsMaterials1.setRepertorySum(list.getRkNum()); + managementGoodsMaterials1.setCreateTime(new Date()); + managementGoodsMaterials1.setRepertory(slGoodsMaterials.getRepertory()); + managementGoodsMaterialsMapper.insert(managementGoodsMaterials1); + } + slVolumeProductionRkMapper.updateById(list); + } + SlVolumeProductionRkgl byId = this.getById(id); + byId.setPresentState(4); + byId.setAuditStatus(6); + byId.setEndTime(new Date()); + this.updateById(byId); + + logClient.savelong(); + } + } -- Gitblit v1.7.1