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.*;
|
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 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;
|
|
/**
|
* <p>
|
* 发起入库管理 服务实现类
|
* </p>
|
*
|
* @author hjl
|
* @since 2024-06-25
|
*/
|
@Service
|
public class SlVolumeProductionRkServiceImpl extends ServiceImpl<SlVolumeProductionRkMapper, SlVolumeProductionRk> implements SlVolumeProductionRkService {
|
@Resource
|
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::getDelFlag,0);
|
wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime);
|
Page<SlVolumeProductionRk> page2 = this.page(page, wrapper1);
|
|
SlVolumeProductionRkgl byId = slVolumeProductionRkglMapper.selectById(managementimgVolumeProductionRkDTO.getVolumeProductionRkglId());
|
SysUser data = sysUserClient.getSysUser(byId.getSupplierId()).getData();
|
PageDTO<ManagementimgVolumeProductionRkVO> SlGoodsShelfDTO = PageDTO.of(page2, ManagementimgVolumeProductionRkVO.class);
|
List<ManagementimgVolumeProductionRkVO> list2 = SlGoodsShelfDTO.getList();
|
for(ManagementimgVolumeProductionRkVO list:list2) {{
|
SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId());
|
list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
|
list.setIsConsume(slGoodsMaterials.getIsConsume());
|
if (data!=null){
|
list.setSupplierName(data.getNickName());
|
}
|
SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId());
|
if (slGoodsShelf!=null){
|
list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
|
}
|
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);
|
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());
|
|
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());
|
}
|
}
|
|
|
SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId());
|
if (slGoodsShelf!=null){
|
list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
|
|
}
|
}
|
}
|
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());
|
slVolumeProductionRk.setRkNumber("CD-"+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){
|
byId.setErwmNum(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());
|
}
|
byId.setNewAddTime(a.getNewAddTime());
|
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) 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());
|
SlVolumeProductionRkgl byId1 = slVolumeProductionRkglMapper.selectById(byId.getVolumeProductionRkglId());
|
SysUser data = sysUserClient.getSysUser(byId1.getSupplierId()).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;
|
}
|
@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.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());
|
SysUser data = sysUserClient.getSysUser(byId.getSupplierId()).getData();
|
|
list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
|
list.setIsConsume(slGoodsMaterials.getIsConsume());
|
if (data!=null){
|
list.setSupplierName(data.getNickName());
|
}
|
SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId());
|
list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
|
}
|
return SlGoodsShelfDTO;
|
}
|
|
@Override
|
public PageDTO<gethuojRkVO> gethuojRkList(gethuojRkQuery gethuojRkQuery) {
|
LambdaQueryWrapper< SlGoodsMaterials> wrapper= Wrappers.lambdaQuery();
|
if (gethuojRkQuery.getGoodsMaterialsName()!=null&&gethuojRkQuery.getGoodsMaterialsName()!=""){
|
wrapper.eq(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.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);
|
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(managementGoodsMaterials.getRepertorySum());
|
}else{
|
list.setRkPiceSum(list.getRkPice().multiply(new BigDecimal(1)));
|
list.setRepertorySum(0L);
|
}
|
|
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());
|
}
|
|
SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId());
|
if (slGoodsShelf!=null){
|
list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
|
|
}
|
}
|
return SlGoodsShelfDTO;
|
}
|
|
}
|