package com.ruoyi.management.service.impl;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
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.common.security.utils.SecurityUtils;
|
import com.ruoyi.management.domain.*;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.management.domain.dto.ADDPdDTO;
|
import com.ruoyi.management.domain.dto.InventoriesSuppliesInfoDTO;
|
import com.ruoyi.management.domain.dto.InventoriesSuppliesInfoQuery;
|
import com.ruoyi.management.domain.vo.InventoriesSuppliesInfoVO;
|
import com.ruoyi.management.domain.vo.InventoriesSuppliesVO;
|
import com.ruoyi.management.mapper.*;
|
import com.ruoyi.management.service.InventoriesSuppliesInfoService;
|
import com.ruoyi.system.api.domain.SysUser;
|
import com.ruoyi.system.api.model.LoginUser;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.security.Security;
|
import java.util.*;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author hjl
|
* @since 2024-07-01
|
*/
|
@Service
|
public class InventoriesSuppliesInfoServiceImpl extends ServiceImpl<InventoriesSuppliesInfoMapper, InventoriesSuppliesInfo> implements InventoriesSuppliesInfoService {
|
|
|
@Resource
|
private SlVolumeProductionRkMapper slVolumeProductionRkMapper;
|
|
@Resource
|
private SlGoodsMaterialsMapper slGoodsMaterialsMapper;
|
|
@Resource
|
private ManagementGoodsMaterialsMapper managementGoodsMaterialsMapper;
|
|
@Resource
|
private SlGoodsShelfMapper slGoodsShelfMapper;
|
@Autowired
|
private InventoriesSuppliesServiceImpl inventoriesSuppliesService;
|
@Override
|
public PageDTO<InventoriesSuppliesInfoVO> inventoriesSuppliesInfoService(InventoriesSuppliesInfoQuery inventoriesSuppliesInfoQuery) {
|
Page<InventoriesSuppliesInfo> page = new Page<>(inventoriesSuppliesInfoQuery.getPageCurr(), inventoriesSuppliesInfoQuery.getPageSize());
|
LambdaQueryWrapper< InventoriesSuppliesInfo> wrapper1= Wrappers.lambdaQuery();
|
wrapper1.eq(InventoriesSuppliesInfo::getSuppliesId, inventoriesSuppliesInfoQuery.getSuppliesId());
|
|
wrapper1.orderByDesc(InventoriesSuppliesInfo::getType);
|
Page<InventoriesSuppliesInfo> page2 = this.page(page, wrapper1);
|
PageDTO<InventoriesSuppliesInfoVO> slGoodsMaterialsVO = PageDTO.of(page2, InventoriesSuppliesInfoVO.class);
|
List<InventoriesSuppliesInfoVO> list = slGoodsMaterialsVO.getList();
|
for (InventoriesSuppliesInfoVO sl:list){
|
SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(sl.getRkId());
|
sl.setRkNumber(slVolumeProductionRk.getRkNumber());
|
sl.setRkModel(slVolumeProductionRk.getRkModel());
|
sl.setZkNum(slVolumeProductionRk.getRepertoryZhai());
|
SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(slVolumeProductionRk.getMaterialsId());
|
sl.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
|
sl.setIsConsume(slGoodsMaterials.getIsConsume());
|
sl.setStoreManagementNumber(slVolumeProductionRk.getStoreManagementNumber());
|
SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(slVolumeProductionRk.getShelfId());
|
sl.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
|
|
}
|
return slGoodsMaterialsVO;
|
}
|
|
@Override
|
public void addInventoriesSuppliesInfo(List<InventoriesSuppliesInfoDTO> inventoriesSuppliesInfoDTO) {
|
for (InventoriesSuppliesInfoDTO m:inventoriesSuppliesInfoDTO)
|
if (m.getId()==null){
|
InventoriesSuppliesInfo inventoriesSuppliesInf=new InventoriesSuppliesInfo();
|
inventoriesSuppliesInf.setSuppliesId(m.getSuppliesId());
|
inventoriesSuppliesInf.setRkId(m.getRkId());
|
inventoriesSuppliesInf.setCreateTime(new Date());
|
SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(m.getRkId());
|
inventoriesSuppliesInf.setZkNum(slVolumeProductionRk.getRepertoryZhai());
|
inventoriesSuppliesInf.setSuppliesNum(m.getSuppliesNum());
|
this.save(inventoriesSuppliesInf);
|
}else{
|
InventoriesSuppliesInfo byId = this.getById(m.getId());
|
byId.setSuppliesNum(m.getSuppliesNum());
|
this.updateById(byId);
|
}
|
}
|
|
@Override
|
public InventoriesSuppliesInfo getInventoriesSuppliesInfo(InventoriesSuppliesInfoDTO inventoriesSuppliesInfoDTO) {
|
LambdaQueryWrapper< InventoriesSuppliesInfo> wrapper1= Wrappers.lambdaQuery();
|
wrapper1.eq(InventoriesSuppliesInfo::getSuppliesId, inventoriesSuppliesInfoDTO.getSuppliesId());
|
wrapper1.eq(InventoriesSuppliesInfo::getRkId, inventoriesSuppliesInfoDTO.getSuppliesId());
|
wrapper1.eq( InventoriesSuppliesInfo::getDelFlag,0);
|
InventoriesSuppliesInfo page2 = this.getOne(wrapper1);
|
return page2;
|
}
|
|
@Override
|
public String submitInventoriesSuppliesInfo(ADDPdDTO dto) {
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
// 添加主表
|
InventoriesSupplies inventoriesSupplies = new InventoriesSupplies();
|
inventoriesSupplies.setMaterialsId(dto.getManagementId());
|
inventoriesSupplies.setPdrId(loginUser.getUserid());
|
inventoriesSupplies.setPdTime(new Date());
|
inventoriesSupplies.setPdrName(loginUser.getUsername());
|
inventoriesSupplies.setCreateTime(new Date());
|
inventoriesSupplies.setDelFlag("2");
|
inventoriesSuppliesService.save(inventoriesSupplies);
|
for (InventoriesSuppliesInfoDTO temp : dto.getList()) {
|
InventoriesSuppliesInfo res = new InventoriesSuppliesInfo();
|
res.setRkId(temp.getRkId());
|
res.setSuppliesId(inventoriesSupplies.getId());
|
res.setSuppliesNum(temp.getSuppliesNum());
|
res.setZkNum(temp.getZkNum());
|
res.setCreateTime(new Date());
|
if (!Objects.equals(temp.getZkNum(), temp.getSuppliesNum())){
|
res.setType(2);
|
}else{
|
res.setType(1);
|
}
|
this.save(res);
|
return inventoriesSupplies.getId().toString();
|
}
|
return null;
|
}
|
|
@Override
|
public void accomplishInventoriesSuppliesInfo(InventoriesSuppliesInfoDTO inventoriesSuppliesInfoDTO) {
|
|
InventoriesSupplies byId = inventoriesSuppliesService.getById1(inventoriesSuppliesInfoDTO.getSuppliesId());
|
byId.setDelFlag("0");
|
inventoriesSuppliesService.updateById(byId);
|
LambdaQueryWrapper< InventoriesSuppliesInfo> wrapper1= Wrappers.lambdaQuery();
|
wrapper1.eq(InventoriesSuppliesInfo::getSuppliesId, inventoriesSuppliesInfoDTO.getSuppliesId());
|
wrapper1.eq( InventoriesSuppliesInfo::getDelFlag,"0");
|
wrapper1.orderByDesc(InventoriesSuppliesInfo::getType);
|
List<InventoriesSuppliesInfo> page2 = this.list(wrapper1);
|
for (InventoriesSuppliesInfo page:page2){
|
SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(page.getRkId());
|
slVolumeProductionRk.setRepertoryZhai(page.getSuppliesNum());
|
slVolumeProductionRkMapper.updateById(slVolumeProductionRk);
|
LambdaQueryWrapper<ManagementGoodsMaterials> wrapper2 = Wrappers.lambdaQuery();
|
wrapper2.eq(ManagementGoodsMaterials::getGoodsMaterialsId,slVolumeProductionRk.getMaterialsId());
|
wrapper2.eq(ManagementGoodsMaterials::getManagementId,slVolumeProductionRk.getManagementId());
|
wrapper2.eq(ManagementGoodsMaterials::getDelFlag, 0);
|
ManagementGoodsMaterials managementGoodsMaterials = managementGoodsMaterialsMapper.selectOne(wrapper2);
|
if (managementGoodsMaterials!=null){
|
long l = page.getZkNum() - page.getSuppliesNum();
|
if (l>0){
|
managementGoodsMaterials.setRepertoryZhai(page.getSuppliesNum());
|
}else if (l<0){
|
managementGoodsMaterials.setRepertoryYishi(Integer.valueOf(String.valueOf(l)));
|
}
|
managementGoodsMaterials.setCheckNum(Integer.valueOf(String.valueOf(page.getSuppliesNum())));
|
managementGoodsMaterialsMapper.updateById(managementGoodsMaterials);
|
}
|
}
|
|
}
|
}
|