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/SlVolumeProductionRkServiceImpl.java | 560 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 551 insertions(+), 9 deletions(-) diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkServiceImpl.java index 1d3be5d..42632be 100644 --- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkServiceImpl.java +++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkServiceImpl.java @@ -1,25 +1,43 @@ package com.ruoyi.management.service.impl; +import com.alibaba.fastjson2.util.UUIDUtils; +import com.alibaba.nacos.common.utils.UuidUtils; 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.*; -import com.ruoyi.management.domain.dto.ManagementimgVolumeProductionRkQuery; -import com.ruoyi.management.domain.vo.ManagementimgVolumeProductionRkVO; -import com.ruoyi.management.domain.vo.SlGoodsShelfVO; +import com.ruoyi.management.domain.dto.*; +import com.ruoyi.management.domain.vo.*; import com.ruoyi.management.mapper.*; import com.ruoyi.management.service.SlStoreManagementService; import com.ruoyi.management.service.SlVolumeProductionRkService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.management.service.SlVolumeProductionRkglService; +import com.ruoyi.management.service.SlVolumeProductionZyService; +import com.ruoyi.management.util.ObsUploadUtil; +import com.ruoyi.management.util.QRCodeUtil; +import com.ruoyi.management.util.UUIDUtil; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; +import org.apache.logging.log4j.core.util.UuidUtil; +import org.apache.tomcat.util.http.fileupload.ByteArrayOutputStream; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.ByteArrayResource; +import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.List; -import java.util.Set; +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.math.BigDecimal; +import java.sql.Array; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.stream.Collectors; /** @@ -36,18 +54,34 @@ private SlGoodsMaterialsMapper slGoodsMaterialsMapper; @Resource private SlVolumeProductionRkglMapper slVolumeProductionRkglMapper; + @Resource + private SlVolumeProductionRkMapper slVolumeProductionRkMapper; @Resource private SlGoodsShelfMapper slGoodsShelfMapper; @Resource + private SlStoreManagementMapper slStoreManagementMapper; + + @Resource private SysUserClient sysUserClient; + + @Resource + private ManagementGoodsMaterialsMapper managementGoodsMaterialsMapper; + @Autowired + private SlVolumeProductionZyService slVolumeProductionZyService; + + + @Autowired + private SlVolumeProductionZyService slVolumeProductionZyglService; + + @Override public PageDTO<ManagementimgVolumeProductionRkVO> getManagementimgVolumeProductionList(ManagementimgVolumeProductionRkQuery managementimgVolumeProductionRkDTO) { Page<SlVolumeProductionRk> page = new Page<>(managementimgVolumeProductionRkDTO.getPageCurr(), managementimgVolumeProductionRkDTO.getPageSize()); LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery(); - wrapper1.like(SlVolumeProductionRk::getVolumeProductionRkglId,managementimgVolumeProductionRkDTO.getVolumeProductionRkglId()); + wrapper1.eq(SlVolumeProductionRk::getVolumeProductionRkglId,managementimgVolumeProductionRkDTO.getVolumeProductionRkglId()); wrapper1.eq( SlVolumeProductionRk::getDelFlag,0); wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime); Page<SlVolumeProductionRk> page2 = this.page(page, wrapper1); @@ -60,11 +94,519 @@ SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId()); list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); list.setIsConsume(slGoodsMaterials.getIsConsume()); - list.setSupplierName(data.getNickName()); - SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId()); - list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName()); + if (data!=null){ + list.setSupplierName(data.getNickName()); + } + StringBuilder stringBuilder = new StringBuilder(); + for (String s : list.getShelfId().split(",")) { + SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(s); + if (slGoodsShelf!=null){ + stringBuilder.append(slGoodsShelf.getGoodsShelfName()).append(","); + } + } + // 去除最后一位字符 + if (StringUtils.hasLength(stringBuilder.toString())){ + list.setGoodsShelfName(stringBuilder.substring(0, stringBuilder.length() - 1)); + } + LambdaQueryWrapper<SlGoodsShelf> wrapper5= Wrappers.lambdaQuery(); + wrapper5.eq(SlGoodsShelf::getStoreManagementId,byId.getManagementId()); + wrapper5.eq(SlGoodsShelf::getStoreManagementNumber,list.getStoreManagementNumber()); + wrapper5.eq( SlGoodsShelf::getDelFlag,0); + wrapper5.orderByDesc(SlGoodsShelf::getCreateTime); + List<SlGoodsShelf> page3 = slGoodsShelfMapper.selectList(wrapper5); + list.setSlGoodsShelfs(page3); } } return SlGoodsShelfDTO; } + + @Override + public PageDTO<ManagementimgVolumeProductionRkVO> getSlGoodsMaterialsSlVolumeProductionRkList(SlGoodsMaterialsSlVolumeProductionRkQuery SlGoodsMaterialsSlVolumeProductionRkDTO) { + Page<SlVolumeProductionRk> page = new Page<>(SlGoodsMaterialsSlVolumeProductionRkDTO.getPageCurr(), SlGoodsMaterialsSlVolumeProductionRkDTO.getPageSize()); + LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery(); + wrapper1.eq(SlVolumeProductionRk::getMaterialsId,SlGoodsMaterialsSlVolumeProductionRkDTO.getSlGoodsMaterialsid()); + wrapper1.eq( SlVolumeProductionRk::getDelFlag,0); + if (SlGoodsMaterialsSlVolumeProductionRkDTO.getStoreManagementNumber()!=null){ + wrapper1.eq(SlVolumeProductionRk::getStoreManagementNumber,SlGoodsMaterialsSlVolumeProductionRkDTO.getStoreManagementNumber()); + } + wrapper1.eq(SlVolumeProductionRk::getManagementId,SlGoodsMaterialsSlVolumeProductionRkDTO.getId()); + wrapper1.isNotNull(SlVolumeProductionRk::getNewAddTime); + wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime); + Page<SlVolumeProductionRk> page2 = this.page(page, wrapper1); + PageDTO<ManagementimgVolumeProductionRkVO> SlGoodsShelfDTO = PageDTO.of(page2, ManagementimgVolumeProductionRkVO.class); + List<ManagementimgVolumeProductionRkVO> list2 = SlGoodsShelfDTO.getList(); + for(ManagementimgVolumeProductionRkVO list:list2) {{ + if (list.getSupplierId()!=null){ + SysUser data = sysUserClient.getSysUser(list.getSupplierId()).getData(); + if (data!=null){ + list.setSupplierName(data.getNickName()); + } + } + SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId()); + if (slGoodsMaterials!=null){ + list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); + list.setIsConsume(slGoodsMaterials.getIsConsume()); + } + SlVolumeProductionRkgl byId = slVolumeProductionRkglMapper.selectById(list.getVolumeProductionRkglId()); + if (byId!=null){ + SysUser data = sysUserClient.getSysUser(byId.getSupplierId()).getData(); + if (data!=null){ + list.setSupplierName(data.getNickName()); + } + } + StringBuilder stringBuilder = new StringBuilder(); + for (String s : list.getShelfId().split(",")) { + SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(s); + if (slGoodsShelf!=null){ + stringBuilder.append(slGoodsShelf.getGoodsShelfName()).append(","); + } + } + // 去除最后一位字符 + if (StringUtils.hasLength(stringBuilder.toString())){ + list.setGoodsShelfName(stringBuilder.substring(0, stringBuilder.length() - 1)); + } + } + } + return SlGoodsShelfDTO; + } + + @Override + public void addVolumeProductionRkgl(List<SlVolumeProductionRkListDTO> slVolumeProductionRkListDTO) { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + for (SlVolumeProductionRkListDTO m:slVolumeProductionRkListDTO){ + SlVolumeProductionRk slVolumeProductionRk=new SlVolumeProductionRk(); + slVolumeProductionRk.setVolumeProductionRkglId(m.getVolumeProductionRkglId()); + slVolumeProductionRk.setMaterialsId(m.getMaterialsId()); + slVolumeProductionRk.setManagementId(m.getManagementId()); + SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(m.getMaterialsId()); + slVolumeProductionRk.setRkNumber(slGoodsMaterials.getGoodsMaterialsNo()+"-"+simpleDateFormat.format(new Date())+UUIDUtil.getNumberRandom(2)); + slVolumeProductionRk.setNewAddTime(m.getNewAddTime()); + if ( m.getErwmNum()!=null){ + slVolumeProductionRk.setErwmNum( m.getErwmNum()); + }if ( m.getRkPice()!=null){ + slVolumeProductionRk.setRkPice( m.getRkPice()); + }if ( m.getRkNum()!=null){ + slVolumeProductionRk.setRkNum( m.getRkNum()); + }if ( m.getShelfId()!=null){ + slVolumeProductionRk.setShelfId( m.getShelfId()); + }if ( m.getRkModel()!=null){ + slVolumeProductionRk.setRkModel( m.getRkModel()); + }if ( m.getStoreManagementNumber()!=null){ + slVolumeProductionRk.setStoreManagementNumber( m.getStoreManagementNumber()); + }if ( m.getRkNumber()!=null){ + slVolumeProductionRk.setRkNumber(m.getRkNumber()); + } + slVolumeProductionRk.setCreateTime(new Date()); + slVolumeProductionRk.setRepertoryZhai(m.getRkNum()); + this.save(slVolumeProductionRk); + } + + } + + @Override + public void uplSlVolumeProductionRk(List<SlVolumeProductionRkDTO> SlVolumeProductionRkDTO) { + for (SlVolumeProductionRkDTO a:SlVolumeProductionRkDTO){ + SlVolumeProductionRk byId = this.getById(a.getId()); +// byId.setSmerwmNum(0); + if (a.getErwmNum()!=null){ + if (byId.getErwmNum() == null){ + byId.setErwmNum(0); + } + byId.setErwmNum(byId.getErwmNum()+a.getErwmNum()); + }if (a.getRkPice()!=null){ + byId.setRkPice(a.getRkPice()); + }if (a.getRkNum()!=null){ + byId.setRkNum(a.getRkNum()); + }if (a.getShelfId()!=null){ + byId.setShelfId(a.getShelfId()); + }if (a.getRkModel()!=null){ + byId.setRkModel(a.getRkModel()); + }if (a.getStoreManagementNumber()!=null){ + byId.setStoreManagementNumber(a.getStoreManagementNumber()); + }if (a.getRkNumber()!=null){ + byId.setRkNumber(a.getRkNumber()); + } + this.updateById(byId); + } + + } + + @Override + public PageDTO<getVolumeProductionRkgCodeVO> getVolumeProductionRkgCode(VolumeProductionRkgCodeQuery volumeProductionRkgCodeQuery) { + QueryWrapper<SlGoodsMaterials> slGoodsMaterialsQueryWrapper = new QueryWrapper<>(); + slGoodsMaterialsQueryWrapper.eq("del_flag", 0); + if (StringUtils.hasLength(volumeProductionRkgCodeQuery.getGoodsMaterialsName())){ + slGoodsMaterialsQueryWrapper.like("goods_materials_name", volumeProductionRkgCodeQuery.getGoodsMaterialsName()); + } + List<Long> collect = slGoodsMaterialsMapper.selectList(slGoodsMaterialsQueryWrapper) + .stream().map(SlGoodsMaterials::getId).collect(Collectors.toList()); + if (collect.isEmpty()){ + collect.add(-1L); + } + Page<SlVolumeProductionRk> page = new Page<>(volumeProductionRkgCodeQuery.getPageCurr(), volumeProductionRkgCodeQuery.getPageSize()); + LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery(); + wrapper1.eq(SlVolumeProductionRk::getVolumeProductionRkglId,volumeProductionRkgCodeQuery.getVolumeProductionRkglId()); + wrapper1.eq( SlVolumeProductionRk::getDelFlag,0); + wrapper1.in( SlVolumeProductionRk::getMaterialsId,collect); + wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime); + Page<SlVolumeProductionRk> page2 = this.page(page, wrapper1); + PageDTO<getVolumeProductionRkgCodeVO> SlGoodsShelfDTO = PageDTO.of(page2, getVolumeProductionRkgCodeVO.class); + List<getVolumeProductionRkgCodeVO> list2 = SlGoodsShelfDTO.getList(); + for(getVolumeProductionRkgCodeVO list:list2) { + SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId()); + list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); + list.setIsConsume(slGoodsMaterials.getIsConsume()); + } + return SlGoodsShelfDTO; + } + + @Override + public List<QRCodeVO> codeInfo(Long id,Integer count) throws Exception { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + List<QRCodeVO> res = new ArrayList<>(); + LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery(); + wrapper1.eq(SlVolumeProductionRk::getId,id); + wrapper1.eq( SlVolumeProductionRk::getDelFlag,0); + wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime); + List<SlVolumeProductionRk> list = this.list(wrapper1); + for (SlVolumeProductionRk byId : list) { + // 根据生成二维码数量 复制 + for (int i = 1; i <= count; i++) { + String blueS = "{\"rkNumber\": "+byId.getRkNumber()+"}"; + BufferedImage blueImage = QRCodeUtil.createImage(blueS); + MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG"); + // 生成的二维码连接 + String s = ObsUploadUtil.obsUpload(blueFile); + QRCodeVO vo=new QRCodeVO(); + String letter = getLetter(i); + vo.setCategory(letter); + SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(byId.getMaterialsId()); + vo.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); + SlVolumeProductionRkgl byId1 = slVolumeProductionRkglMapper.selectById(byId.getVolumeProductionRkglId()); + SysUser data = sysUserClient.getSysUser(byId1.getSupplierId()).getData(); + if (data!=null){ + vo.setSupplierName(data.getNickName()); + }else{ + vo.setSupplierName("-"); + } + vo.setMaterialsNum(byId.getRkNum()); + Long materialsId = byId.getMaterialsId(); + // 查询物资缩写 + vo.setMaterials(byId.getRkNumber()); + SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId()); + vo.setStoreManagementName(slStoreManagement.getStoreManagementName()); + vo.setQrCode(s); + res.add(vo); + } + + } + + + return res; + } + @Override + public List<QRCodeVO> codeInfo1(Long id,Long zyId) throws Exception { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + List<QRCodeVO> res = new ArrayList<>(); + LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery(); + wrapper1.eq(SlVolumeProductionRk::getId,id); + wrapper1.eq( SlVolumeProductionRk::getDelFlag,0); + wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime); + List<SlVolumeProductionRk> list = this.list(wrapper1); + for (SlVolumeProductionRk byId : list) { + // 根据生成二维码数量 复制 + for (int i = 1; i <= byId.getErwmNum(); i++) { + String blueS = "{\"rkNumber\": "+byId.getRkNumber()+"}"; + BufferedImage blueImage = QRCodeUtil.createImage(blueS); + MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG"); + // 生成的二维码连接 + String s = ObsUploadUtil.obsUpload(blueFile); + QRCodeVO vo=new QRCodeVO(); + String letter = getLetter(i); + vo.setCategory(letter); + SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(byId.getMaterialsId()); + vo.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); + + SlVolumeProductionZy byId1 = slVolumeProductionZyService.getById(zyId); + if (byId1.getSupplierId()!=null){ + SysUser data = sysUserClient.getSysUser(byId1.getSupplierId().longValue()).getData(); + if (data!=null){ + vo.setSupplierName(data.getNickName()); + + } + } + vo.setMaterialsNum(byId.getRkNum()); + Long materialsId = byId.getMaterialsId(); + // 查询物资缩写 + vo.setMaterials(byId.getRkNumber()); + SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId()); + vo.setStoreManagementName(slStoreManagement.getStoreManagementName()); + vo.setQrCode(s); + res.add(vo); + } + + } + + + return res; + } + + public static void main(String[] args) throws Exception { +// String blueS = "{\"rkNumber\": CD-1721989472748"+"}"; +// BufferedImage blueImage = QRCodeUtil.createImage(blueS); +// MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG"); +// // 生成的二维码连接 +// String s = ObsUploadUtil.obsUpload(blueFile); +// System.err.println(s); +// String letter = getLetter(27); +// System.err.println(letter); + + } + public static MultipartFile convert(BufferedImage bufferedImage, String fileName) throws IOException { + // 将 BufferedImage 转换为字节数组 + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ImageIO.write(bufferedImage, "png", baos); + byte[] bytes = baos.toByteArray(); + + // 创建 ByteArrayResource + ByteArrayResource resource = new ByteArrayResource(bytes); + + // 创建 MockMultipartFile + MockMultipartFile multipartFile = new MockMultipartFile( + "file", + fileName, + "image/png", + resource.getInputStream() + ); + + return multipartFile; + } + // 根据传入数字是几 返回对应的字母 + public static String getLetter(int num) { + String[] str = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}; + // 如果num大于26 那么往后叠加对应的字母 比如27 那么就是AA + if (num > 26) { + int a = num / 26; + int b = num % 26; + if (b == 0) { + a = a - 1; + b = 26; + } + return getLetter(a) + getLetter(b); + } + + return str[num - 1]; + } + + + @Override + public PageDTO<ManagementimgVolumeProductionRkVO> getroductionRkList(umeProductionRkQuery meProductionRkQuery) { + + LambdaQueryWrapper< SlGoodsMaterials> wrapper= Wrappers.lambdaQuery(); + if (meProductionRkQuery.getGoodsMaterialsName()!=null&&meProductionRkQuery.getGoodsMaterialsName()!=""){ + wrapper.eq(SlGoodsMaterials::getGoodsMaterialsName,meProductionRkQuery.getGoodsMaterialsName()); + } + if (meProductionRkQuery.getIsConsume()!=null && meProductionRkQuery.getIsConsume()!=0){ + wrapper.eq(SlGoodsMaterials::getIsConsume,meProductionRkQuery.getIsConsume()); + } + wrapper.eq( SlGoodsMaterials::getDelFlag,0); + List<SlGoodsMaterials> page1 = slGoodsMaterialsMapper.selectList(wrapper); + + Set<Long> goodsSkuIdList = null; + goodsSkuIdList = page1.stream().map(SlGoodsMaterials::getId) + .collect(Collectors.toSet()); + + + Page<SlVolumeProductionRk> page = new Page<>(meProductionRkQuery.getPageCurr(), meProductionRkQuery.getPageSize()); + LambdaQueryWrapper<SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery(); + if(meProductionRkQuery.getManagementId()!=null&&meProductionRkQuery.getManagementId()!=0){ + wrapper1.eq(SlVolumeProductionRk::getManagementId,meProductionRkQuery.getManagementId()); + } + if (goodsSkuIdList.size()>0){ + wrapper1.in(SlVolumeProductionRk::getMaterialsId,goodsSkuIdList); + }if(meProductionRkQuery.getStoreManagementNumber()!=null&&meProductionRkQuery.getStoreManagementNumber()!=0){ + wrapper1.eq(SlVolumeProductionRk::getStoreManagementNumber,meProductionRkQuery.getStoreManagementNumber()); + }if(meProductionRkQuery.getShelfId()!=null&&meProductionRkQuery.getShelfId()!=0){ + wrapper1.eq(SlVolumeProductionRk::getShelfId,meProductionRkQuery.getShelfId()); + } + wrapper1.isNotNull(SlVolumeProductionRk::getNewAddTime); + wrapper1.eq( SlVolumeProductionRk::getDelFlag,0); + wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime); + Page<SlVolumeProductionRk> page2 = this.page(page, wrapper1); + PageDTO<ManagementimgVolumeProductionRkVO> SlGoodsShelfDTO = PageDTO.of(page2, ManagementimgVolumeProductionRkVO.class); + List<ManagementimgVolumeProductionRkVO> list2 = SlGoodsShelfDTO.getList(); + for(ManagementimgVolumeProductionRkVO list:list2) { + SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId()); + SlVolumeProductionRkgl byId = slVolumeProductionRkglMapper.selectById(list.getVolumeProductionRkglId()); + if (byId!=null){ + SysUser data = sysUserClient.getSysUser(byId.getSupplierId()).getData(); + if (data!=null){ + list.setSupplierName(data.getNickName()); + } + } + if (slGoodsMaterials!=null){ + list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); + list.setIsConsume(slGoodsMaterials.getIsConsume()); + }else{ + continue; + } + SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId()); + if (slGoodsShelf!=null){ + list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName()); + } + } + return SlGoodsShelfDTO; + } + @Override + public PageDTO<ManagementimgVolumeProductionRkVO> getroductionRkList1(umeProductionRkQueryA meProductionRkQuery) { + + LambdaQueryWrapper< SlGoodsMaterials> wrapper= Wrappers.lambdaQuery(); + if (meProductionRkQuery.getGoodsMaterialsName()!=null&&meProductionRkQuery.getGoodsMaterialsName()!=""){ + wrapper.like(SlGoodsMaterials::getGoodsMaterialsName,meProductionRkQuery.getGoodsMaterialsName()); + } + if (meProductionRkQuery.getIsConsume()!=null && meProductionRkQuery.getIsConsume()!=0){ + wrapper.eq(SlGoodsMaterials::getIsConsume,meProductionRkQuery.getIsConsume()); + } + wrapper.eq( SlGoodsMaterials::getDelFlag,0); + List<SlGoodsMaterials> page1 = slGoodsMaterialsMapper.selectList(wrapper); + if (page1.isEmpty()){ + return new PageDTO<ManagementimgVolumeProductionRkVO>(); + } + Set<Long> goodsSkuIdList = null; + goodsSkuIdList = page1.stream().map(SlGoodsMaterials::getId) + .collect(Collectors.toSet()); + + Page<SlVolumeProductionRk> page = new Page<>(meProductionRkQuery.getPageCurr(), meProductionRkQuery.getPageSize()); + LambdaQueryWrapper<SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery(); + if (meProductionRkQuery.getStoreManagementNumber()!=null){ + wrapper1.eq(SlVolumeProductionRk::getStoreManagementNumber,meProductionRkQuery.getStoreManagementNumber()); + } + + if(meProductionRkQuery.getStoreManagementId()!=null&&meProductionRkQuery.getStoreManagementId()!=0){ + wrapper1.eq(SlVolumeProductionRk::getManagementId,meProductionRkQuery.getStoreManagementId()); + } + if (goodsSkuIdList.size()>0){ + wrapper1.in(SlVolumeProductionRk::getMaterialsId,goodsSkuIdList); + } + if(meProductionRkQuery.getShelfId()!=null&&meProductionRkQuery.getShelfId()!=0){ + wrapper1.eq(SlVolumeProductionRk::getShelfId,meProductionRkQuery.getShelfId()); + } + wrapper1.isNotNull(SlVolumeProductionRk::getNewAddTime); + wrapper1.eq( SlVolumeProductionRk::getDelFlag,0); + wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime); + Page<SlVolumeProductionRk> page2 = this.page(page, wrapper1); + PageDTO<ManagementimgVolumeProductionRkVO> SlGoodsShelfDTO = PageDTO.of(page2, ManagementimgVolumeProductionRkVO.class); + List<ManagementimgVolumeProductionRkVO> list2 = SlGoodsShelfDTO.getList(); + List<Long> wzIds = new ArrayList<>(); + List<ManagementimgVolumeProductionRkVO> res = new ArrayList<>(); + + for(ManagementimgVolumeProductionRkVO list:list2) { + if (wzIds.contains(list.getMaterialsId())){ + continue; + }else{ + wzIds.add(list.getMaterialsId()); + res.add(list); + } + SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId()); + SlVolumeProductionRkgl byId = slVolumeProductionRkglMapper.selectById(list.getVolumeProductionRkglId()); + if (byId!=null){ + SysUser data = sysUserClient.getSysUser(byId.getSupplierId()).getData(); + if (data!=null){ + list.setSupplierName(data.getNickName()); + } + } + if (slGoodsMaterials!=null){ + list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); + list.setIsConsume(slGoodsMaterials.getIsConsume()); + }else{ + continue; + } + SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId()); + if (slGoodsShelf!=null){ + list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName()); + } + } + SlGoodsShelfDTO.setList(res); + return SlGoodsShelfDTO; + } + + @Override + public PageDTO<gethuojRkVO> gethuojRkList(gethuojRkQuery gethuojRkQuery) { + LambdaQueryWrapper< SlGoodsMaterials> wrapper= Wrappers.lambdaQuery(); + if (gethuojRkQuery.getGoodsMaterialsName()!=null&&gethuojRkQuery.getGoodsMaterialsName()!=""){ + wrapper.like(SlGoodsMaterials::getGoodsMaterialsName,gethuojRkQuery.getGoodsMaterialsName()); + } + wrapper.eq( SlGoodsMaterials::getDelFlag,0); + List<SlGoodsMaterials> page1 = slGoodsMaterialsMapper.selectList(wrapper); + + Set<Long> goodsSkuIdList = null; + goodsSkuIdList = page1.stream().map(SlGoodsMaterials::getId) + .collect(Collectors.toSet()); + + Page<SlVolumeProductionRk> page = new Page<>(gethuojRkQuery.getPageCurr(), gethuojRkQuery.getPageSize()); + LambdaQueryWrapper<SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery(); + if (gethuojRkQuery.getGoodsMaterialsName()!=null&&gethuojRkQuery.getGoodsMaterialsName()!=""){ + if (goodsSkuIdList.size()>0) { + wrapper1.in(SlVolumeProductionRk::getMaterialsId, goodsSkuIdList); + }else{ + goodsSkuIdList=new HashSet<>(); + goodsSkuIdList.add(0L); + wrapper1.in(SlVolumeProductionRk::getMaterialsId, goodsSkuIdList); + } + } + wrapper1.like(SlVolumeProductionRk::getShelfId,gethuojRkQuery.getGoodsShelid()); + wrapper1.eq( SlVolumeProductionRk::getDelFlag,0); + // 该字段用于标记是否入库 + wrapper1.isNotNull(SlVolumeProductionRk::getNewAddTime); + wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime); + Page<SlVolumeProductionRk> page2 = this.page(page, wrapper1); + PageDTO<gethuojRkVO> SlGoodsShelfDTO = PageDTO.of(page2, gethuojRkVO.class); + List<gethuojRkVO> list2 = SlGoodsShelfDTO.getList(); + for(gethuojRkVO list:list2) { + 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); + if (managementGoodsMaterials != null){ + list.setRkPiceSum(list.getRkPice().multiply(new BigDecimal(managementGoodsMaterials.getRepertorySum()))); + list.setRepertorySum(list.getRkNum()-managementGoodsMaterials.getRepertoryYishi()); + }else{ + list.setRkPiceSum(list.getRkPice().multiply(new BigDecimal(1))); + list.setRepertorySum(0L); + } + if (list.getRepertorySum()!=null && list.getRepertoryYishi()!=null){ + list.setRepertorySum(list.getRepertorySum()-list.getRepertoryYishi()); + }else{ + list.setRepertorySum(list.getRepertorySum()); + } + SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId()); + SlVolumeProductionRkgl byId = slVolumeProductionRkglMapper.selectById(list.getVolumeProductionRkglId()); + if (byId!=null){ + SysUser data = sysUserClient.getSysUser(byId.getSupplierId()).getData(); + if (data!=null){ + list.setSupplierName(data.getNickName()); + } + } + + if (slGoodsMaterials!=null){ + list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); + list.setIsConsume(slGoodsMaterials.getIsConsume()); + } + + StringBuilder stringBuilder = new StringBuilder(); + for (String s : list.getShelfId().split(",")) { + SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(s); + if (slGoodsShelf!=null){ + stringBuilder.append(slGoodsShelf.getGoodsShelfName()).append(","); + } + } + // 去除最后一位字符 + if (StringUtils.hasLength(stringBuilder.toString())){ + list.setGoodsShelfName(stringBuilder.substring(0, stringBuilder.length() - 1)); + } + } + return SlGoodsShelfDTO; + } + } -- Gitblit v1.7.1