package com.ruoyi.management.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.common.core.utils.page.PageDTO;
|
import com.ruoyi.management.domain.*;
|
import com.ruoyi.management.domain.dto.*;
|
import com.ruoyi.management.domain.vo.InventoriesSuppliesInfoVO;
|
import com.ruoyi.management.domain.vo.ManagementimgSlVolumeProductionCkVO;
|
import com.ruoyi.management.domain.vo.ManagementimgVolumeProductionCkVO;
|
import com.ruoyi.management.domain.vo.ManagementimgVolumeProductionRkVO;
|
import com.ruoyi.management.mapper.SlGoodsMaterialsMapper;
|
import com.ruoyi.management.mapper.SlGoodsShelfMapper;
|
import com.ruoyi.management.mapper.SlVolumeProductionCkMapper;
|
import com.ruoyi.management.mapper.SlVolumeProductionRkMapper;
|
import com.ruoyi.management.service.ManagementGoodsMaterialsService;
|
import com.ruoyi.management.service.SlVolumeProductionCkService;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.management.service.SlVolumeProductionCkglService;
|
import com.ruoyi.management.service.SlVolumeProductionRkService;
|
import com.ruoyi.system.api.domain.SysUser;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.StringUtils;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 发起出库 服务实现类
|
* </p>
|
*
|
* @author hjl
|
* @since 2024-06-25
|
*/
|
@Service
|
public class SlVolumeProductionCkServiceImpl extends ServiceImpl<SlVolumeProductionCkMapper, SlVolumeProductionCk> implements SlVolumeProductionCkService {
|
|
@Resource
|
private SlVolumeProductionRkMapper slVolumeProductionRkMapper;
|
@Autowired
|
private SlVolumeProductionCkglService ckglService;
|
|
@Resource
|
private SlGoodsMaterialsMapper slGoodsMaterialsMapper;
|
|
@Resource
|
private SlGoodsShelfMapper slGoodsShelfMapper;
|
@Autowired
|
private ManagementGoodsMaterialsService managementGoodsMaterialsService;
|
|
@Override
|
public PageDTO<ManagementimgSlVolumeProductionCkVO> getManagementimgSlVolumeProductionCkList(SlGoodsMaterialsSlVolumeProductionRkQuery slGoodsMaterialsSlVolumeProductionRkQuery) {
|
QueryWrapper<SlVolumeProductionRk> notNull = new QueryWrapper<SlVolumeProductionRk>()
|
|
.eq("del_flag", "0")
|
.isNotNull("new_add_time");
|
if (slGoodsMaterialsSlVolumeProductionRkQuery.getId()!=null){
|
notNull.eq("management_id", slGoodsMaterialsSlVolumeProductionRkQuery.getId());
|
}
|
|
// 查询该仓库的入库记录
|
List<Long> collect = slVolumeProductionRkMapper.selectList(notNull
|
).stream().map(SlVolumeProductionRk::getId).collect(Collectors.toList());
|
Page<SlVolumeProductionCk> page = new Page<>(slGoodsMaterialsSlVolumeProductionRkQuery.getPageCurr(), slGoodsMaterialsSlVolumeProductionRkQuery.getPageSize());
|
LambdaQueryWrapper< SlVolumeProductionCk> wrapper1= Wrappers.lambdaQuery();
|
|
wrapper1.eq(SlVolumeProductionCk::getMaterialsId,slGoodsMaterialsSlVolumeProductionRkQuery.getSlGoodsMaterialsid());
|
wrapper1.eq(SlVolumeProductionCk::getDelFlag,0);
|
wrapper1.orderByDesc(SlVolumeProductionCk::getCreateTime);
|
if (!collect.isEmpty()){
|
wrapper1.in(SlVolumeProductionCk::getRkId,collect);
|
}
|
Page<SlVolumeProductionCk> page2 = this.page(page, wrapper1);
|
PageDTO<ManagementimgSlVolumeProductionCkVO> SlGoodsShelfDTO = PageDTO.of(page2, ManagementimgSlVolumeProductionCkVO.class);
|
List<ManagementimgSlVolumeProductionCkVO> list2 = SlGoodsShelfDTO.getList();
|
for(ManagementimgSlVolumeProductionCkVO list:list2) {{
|
SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(list.getRkId());
|
list.setRkNumber(slVolumeProductionRk.getRkNumber());
|
}
|
}
|
return SlGoodsShelfDTO;
|
}
|
|
@Override
|
public void updSlVolumeProductionCk(List<AddSlVolumeProductionCkDTO> slVolumeProductionCkDTO) {
|
for (AddSlVolumeProductionCkDTO c:slVolumeProductionCkDTO){
|
SlVolumeProductionCk byId = this.getById(c.getCkgl_id());
|
byId.setCkNum(c.getCkNum());
|
byId.setGuihNum(c.getGuihNum());
|
this.updateById(byId);
|
|
}
|
}
|
@Override
|
public void updSlVolumeProductionCk1(List<AddSlVolumeProductionCkDTO> slVolumeProductionCkDTO) {
|
for (AddSlVolumeProductionCkDTO c:slVolumeProductionCkDTO){
|
SlVolumeProductionCk byId = this.getById(c.getCkgl_id());
|
byId.setCkNum(c.getCkNum());
|
byId.setGuihNum(c.getGuihNum());
|
byId.setIsGh(2);
|
this.updateById(byId);
|
// Long ckglId = byId.getCkglId();
|
// SlVolumeProductionCkgl byId1 = ckglService.getById(ckglId);
|
// byId1.setAuditStatus(1);
|
// byId1.setPresentState(1);
|
// ckglService.updateById(byId1);
|
|
}
|
}
|
|
@Override
|
public void addSlVolumeProductionCk(List<AddSlVolumeProductionCkDTO> addSlVolumeProductionCkDTO) {
|
for (AddSlVolumeProductionCkDTO m:addSlVolumeProductionCkDTO){
|
SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(m.getRkId());
|
SlVolumeProductionCk slVolumeProductionCk=new SlVolumeProductionCk();
|
slVolumeProductionCk.setRkId(m.getRkId());
|
slVolumeProductionCk.setCkglId(m.getCkgl_id());
|
slVolumeProductionCk.setState(1);
|
slVolumeProductionCk.setType(1);
|
slVolumeProductionCk.setCkNum(m.getCkNum());
|
slVolumeProductionCk.setGuihNum(m.getGuihNum());
|
slVolumeProductionCk.setMaterialsId(slVolumeProductionRk.getMaterialsId());
|
slVolumeProductionCk.setCreateTime(new Date());
|
this.save(slVolumeProductionCk);
|
}
|
}
|
|
@Override
|
public PageDTO<ManagementimgVolumeProductionCkVO> getSlVolumeProductionCkList(ManagementimgVolumeProductionCkQuery managementimgVolumeProductionCkQuery) {
|
Page<SlVolumeProductionCk> page = new Page<>(managementimgVolumeProductionCkQuery.getPageCurr(), managementimgVolumeProductionCkQuery.getPageSize());
|
LambdaQueryWrapper< SlVolumeProductionCk> wrapper1= Wrappers.lambdaQuery();
|
wrapper1.eq(SlVolumeProductionCk::getCkglId,managementimgVolumeProductionCkQuery.getVolumeProductionCKglId());
|
wrapper1.eq( SlVolumeProductionCk::getDelFlag,0);
|
wrapper1.orderByDesc(SlVolumeProductionCk::getCreateTime);
|
Page<SlVolumeProductionCk> page2 = this.page(page, wrapper1);
|
|
PageDTO<ManagementimgVolumeProductionCkVO> SlGoodsShelfDTO = PageDTO.of(page2, ManagementimgVolumeProductionCkVO.class);
|
List<ManagementimgVolumeProductionCkVO> list2 = SlGoodsShelfDTO.getList();
|
for(ManagementimgVolumeProductionCkVO list:list2) {
|
{
|
SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(list.getRkId());
|
list.setStoreManagementNumber(slVolumeProductionRk.getStoreManagementNumber());
|
list.setRkNumber(slVolumeProductionRk.getRkNumber());
|
list.setRepertoryZhai(slVolumeProductionRk.getRepertoryZhai());
|
SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(slVolumeProductionRk.getMaterialsId());
|
list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
|
list.setIsConsume(slGoodsMaterials.getIsConsume());
|
SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(slVolumeProductionRk.getShelfId());
|
list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
|
}
|
}
|
return SlGoodsShelfDTO;
|
}
|
|
@Override
|
public List<ManagementimgVolumeProductionCkVO> SlVolumeProductionCkList(ManagementimgVolumeProductionCkQuery managementimgVolumeProductionCkQuery) {
|
LambdaQueryWrapper< SlVolumeProductionCk> wrapper1= Wrappers.lambdaQuery();
|
wrapper1.eq(SlVolumeProductionCk::getCkglId,managementimgVolumeProductionCkQuery.getVolumeProductionCKglId());
|
wrapper1.eq( SlVolumeProductionCk::getDelFlag,0);
|
wrapper1.orderByDesc(SlVolumeProductionCk::getCreateTime);
|
List<SlVolumeProductionCk> page2 = this.list(wrapper1);
|
List<ManagementimgVolumeProductionCkVO> SlGoodsShelfDTO=new ArrayList<>();
|
for(SlVolumeProductionCk list1:page2) {{
|
ManagementimgVolumeProductionCkVO list=new ManagementimgVolumeProductionCkVO();
|
list.setId(list1.getId());
|
list.setCkNum(list1.getCkNum());
|
SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(list1.getRkId());
|
list.setStoreManagementNumber(slVolumeProductionRk.getStoreManagementNumber());
|
list.setRkNumber(slVolumeProductionRk.getRkNumber());
|
list.setRepertoryZhai(slVolumeProductionRk.getRepertoryZhai());
|
SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(slVolumeProductionRk.getMaterialsId());
|
list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
|
list.setIsConsume(slGoodsMaterials.getIsConsume());
|
SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(slVolumeProductionRk.getShelfId());
|
list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
|
|
SlGoodsShelfDTO.add(list);
|
}
|
}
|
return SlGoodsShelfDTO;
|
}
|
|
@Autowired
|
private SlVolumeProductionRkService slVolumeProductionRkService;
|
@Override
|
public PageDTO<InventoriesSuppliesInfoVO> getMaterialByManagementIdList(GetMaterialsByManagementIdQuery query) {
|
List<InventoriesSuppliesInfoVO> res = new ArrayList<>();
|
Page<SlVolumeProductionRk> page = new Page<>(query.getPageCurr(), query.getPageSize());
|
QueryWrapper<ManagementGoodsMaterials> wrapper1 = new QueryWrapper<>();
|
wrapper1.eq("del_flag","0");
|
wrapper1.eq("management_id",query.getManagementId());
|
// 获取对应仓库下所有入库的物资ids
|
List<Long> collect = managementGoodsMaterialsService.list(wrapper1).stream().map(ManagementGoodsMaterials::getGoodsMaterialsId).collect(Collectors.toList());
|
QueryWrapper<SlGoodsMaterials> wrapper2 = new QueryWrapper<>();
|
if (StringUtils.hasLength(query.getMaterialsName())){
|
wrapper2.like("goods_materials_name",query.getMaterialsName());
|
}
|
if (query.getIsConsume()!=null){
|
wrapper2.eq("is_consume",query.getIsConsume());
|
}
|
wrapper2.eq("del_flag","0");
|
if (collect.isEmpty())collect.add(-1L);
|
wrapper2.in("id",collect);
|
List<Long> collect1 = slGoodsMaterialsMapper.selectList(wrapper2).stream().map(SlGoodsMaterials::getId).collect(Collectors.toList());
|
QueryWrapper<SlVolumeProductionRk> wrapper = new QueryWrapper<>();
|
if (collect1.isEmpty())collect1.add(-1L);
|
wrapper.in("materials_id",collect1);
|
wrapper.eq("management_id",query.getManagementId());
|
wrapper.eq("del_flag","0");
|
wrapper.isNotNull("new_add_time");
|
|
Page<SlVolumeProductionRk> page2 = slVolumeProductionRkService.page(page, wrapper);
|
List<SlVolumeProductionRk> list = page2.getRecords();
|
|
PageDTO<InventoriesSuppliesInfoVO> slGoodsMaterialsVO = PageDTO.of(page2, InventoriesSuppliesInfoVO.class);
|
for (SlVolumeProductionRk slVolumeProductionRk : list) {
|
SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(slVolumeProductionRk.getMaterialsId());
|
SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(slVolumeProductionRk.getShelfId());
|
if (slGoodsMaterials == null || slGoodsShelf == null){
|
continue;
|
}
|
InventoriesSuppliesInfoVO inventoriesSuppliesInfoVO = new InventoriesSuppliesInfoVO();
|
inventoriesSuppliesInfoVO.setId(slVolumeProductionRk.getId());
|
inventoriesSuppliesInfoVO.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
|
inventoriesSuppliesInfoVO.setIsConsume(slGoodsMaterials.getIsConsume());
|
inventoriesSuppliesInfoVO.setRkNumber(slVolumeProductionRk.getRkNumber());
|
inventoriesSuppliesInfoVO.setRkModel(slVolumeProductionRk.getRkModel());
|
inventoriesSuppliesInfoVO.setRkId(slVolumeProductionRk.getId());
|
inventoriesSuppliesInfoVO.setZkNum(slVolumeProductionRk.getRepertoryZhai());
|
inventoriesSuppliesInfoVO.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
|
inventoriesSuppliesInfoVO.setStoreManagementNumber(slVolumeProductionRk.getStoreManagementNumber());
|
res.add(inventoriesSuppliesInfoVO);
|
}
|
slGoodsMaterialsVO.setList(res);
|
return slGoodsMaterialsVO;
|
}
|
}
|