From b5ef65d0103a71dc7af2b9be6d2ac43aca5bb726 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 27 八月 2024 08:59:57 +0800 Subject: [PATCH] 代码提交 bug解决 --- ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkServiceImpl.java | 162 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 145 insertions(+), 17 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 2894d97..a6c2f62 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,6 +1,9 @@ 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; @@ -12,11 +15,25 @@ 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 javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.IOException; import java.math.BigDecimal; import java.sql.Array; import java.text.SimpleDateFormat; @@ -51,8 +68,11 @@ @Resource private ManagementGoodsMaterialsMapper managementGoodsMaterialsMapper; + @Autowired + private SlVolumeProductionZyService slVolumeProductionZyService; - + @Autowired + private SlVolumeProductionZyService slVolumeProductionZyglService; @Override @@ -73,7 +93,9 @@ SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId()); list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); list.setIsConsume(slGoodsMaterials.getIsConsume()); - list.setSupplierName(data.getNickName()); + if (data!=null){ + list.setSupplierName(data.getNickName()); + } SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId()); if (slGoodsShelf!=null){ list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName()); @@ -110,7 +132,9 @@ SlVolumeProductionRkgl byId = slVolumeProductionRkglMapper.selectById(list.getVolumeProductionRkglId()); if (byId!=null){ SysUser data = sysUserClient.getSysUser(byId.getSupplierId()).getData(); - list.setSupplierName(data.getNickName()); + if (data!=null){ + list.setSupplierName(data.getNickName()); + } } @@ -126,13 +150,13 @@ @Override public void addVolumeProductionRkgl(List<SlVolumeProductionRkListDTO> slVolumeProductionRkListDTO) { - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + 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()); - slVolumeProductionRk.setRkNumber("CD-"+simpleDateFormat.format(new Date())); + slVolumeProductionRk.setRkNumber("CD-"+simpleDateFormat.format(new Date())+UUIDUtil.getNumberRandom(2)); slVolumeProductionRk.setNewAddTime(m.getNewAddTime()); if ( m.getErwmNum()!=null){ slVolumeProductionRk.setErwmNum( m.getErwmNum()); @@ -147,7 +171,7 @@ }if ( m.getStoreManagementNumber()!=null){ slVolumeProductionRk.setStoreManagementNumber( m.getStoreManagementNumber()); }if ( m.getRkNumber()!=null){ - slVolumeProductionRk.setRkNumber( m.getRkNumber()); + slVolumeProductionRk.setRkNumber(m.getRkNumber()); } slVolumeProductionRk.setCreateTime(new Date()); slVolumeProductionRk.setRepertoryZhai(m.getRkNum()); @@ -160,6 +184,7 @@ public void uplSlVolumeProductionRk(List<SlVolumeProductionRkDTO> SlVolumeProductionRkDTO) { for (SlVolumeProductionRkDTO a:SlVolumeProductionRkDTO){ SlVolumeProductionRk byId = this.getById(a.getId()); + byId.setSmerwmNum(0); if (a.getErwmNum()!=null){ byId.setErwmNum(a.getErwmNum()); }if (a.getRkPice()!=null){ @@ -183,10 +208,21 @@ @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.like(SlVolumeProductionRk::getVolumeProductionRkglId,volumeProductionRkgCodeQuery.getVolumeProductionRkglId()); + 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); @@ -200,17 +236,22 @@ } @Override - public List<QRCodeVO> codeInfo(Long id) { - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + public List<QRCodeVO> codeInfo(Long id) throws Exception { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS"); List<QRCodeVO> res = new ArrayList<>(); LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery(); - wrapper1.like(SlVolumeProductionRk::getVolumeProductionRkglId,id); + 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 = 0; i < byId.getErwmNum(); i++) { + 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); @@ -218,13 +259,62 @@ vo.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); SlVolumeProductionRkgl byId1 = slVolumeProductionRkglMapper.selectById(byId.getVolumeProductionRkglId()); SysUser data = sysUserClient.getSysUser(byId1.getSupplierId()).getData(); - vo.setSupplierName(data.getNickName()); + 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; + } + @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); } @@ -234,10 +324,40 @@ 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 那么往后叠加对应的字母 + // 如果num大于26 那么往后叠加对应的字母 比如27 那么就是AA if (num > 26) { int a = num / 26; int b = num % 26; @@ -247,8 +367,11 @@ } return getLetter(a) + getLetter(b); } + return str[num - 1]; } + + @Override public PageDTO<ManagementimgVolumeProductionRkVO> getroductionRkList(umeProductionRkQuery meProductionRkQuery) { @@ -256,7 +379,7 @@ if (meProductionRkQuery.getGoodsMaterialsName()!=null&&meProductionRkQuery.getGoodsMaterialsName()!=""){ wrapper.eq(SlGoodsMaterials::getGoodsMaterialsName,meProductionRkQuery.getGoodsMaterialsName()); } - if (meProductionRkQuery.getIsConsume()!=0){ + if (meProductionRkQuery.getIsConsume()!=null && meProductionRkQuery.getIsConsume()!=0){ wrapper.eq(SlGoodsMaterials::getIsConsume,meProductionRkQuery.getIsConsume()); } wrapper.eq( SlGoodsMaterials::getDelFlag,0); @@ -292,7 +415,9 @@ list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); list.setIsConsume(slGoodsMaterials.getIsConsume()); - list.setSupplierName(data.getNickName()); + if (data!=null){ + list.setSupplierName(data.getNickName()); + } SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId()); list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName()); } @@ -305,7 +430,6 @@ if (gethuojRkQuery.getGoodsMaterialsName()!=null&&gethuojRkQuery.getGoodsMaterialsName()!=""){ wrapper.eq(SlGoodsMaterials::getGoodsMaterialsName,gethuojRkQuery.getGoodsMaterialsName()); } - wrapper.eq( SlGoodsMaterials::getDelFlag,0); List<SlGoodsMaterials> page1 = slGoodsMaterialsMapper.selectList(wrapper); @@ -326,6 +450,8 @@ } wrapper1.eq(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); @@ -349,7 +475,9 @@ SlVolumeProductionRkgl byId = slVolumeProductionRkglMapper.selectById(list.getVolumeProductionRkglId()); if (byId!=null){ SysUser data = sysUserClient.getSysUser(byId.getSupplierId()).getData(); - list.setSupplierName(data.getNickName()); + if (data!=null){ + list.setSupplierName(data.getNickName()); + } } if (slGoodsMaterials!=null){ -- Gitblit v1.7.1