| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | 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); |
| | |
| | | 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; |
| | | } |
| | | |
| | | } |