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.common.security.utils.SecurityUtils;
|
import com.ruoyi.management.domain.*;
|
import com.ruoyi.management.domain.dto.*;
|
import com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO;
|
import com.ruoyi.management.domain.vo.*;
|
import com.ruoyi.management.mapper.*;
|
import com.ruoyi.management.service.SlAuditRecordService;
|
import com.ruoyi.management.service.SlAuditService;
|
import com.ruoyi.management.service.SlStoreManagementService;
|
import com.ruoyi.management.service.SlVolumeProductionZyService;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.system.api.domain.SysUser;
|
import com.ruoyi.system.api.domain.getVolumeProductionRkQuery;
|
import com.ruoyi.system.api.feignClient.SysUserClient;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Set;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 发起转移 服务实现类
|
* </p>
|
*
|
* @author hjl
|
* @since 2024-06-25
|
*/
|
@Service
|
public class SlVolumeProductionZyServiceImpl extends ServiceImpl<SlVolumeProductionZyMapper, SlVolumeProductionZy> implements SlVolumeProductionZyService {
|
|
@Resource
|
private SlVolumeProductionRkMapper slVolumeProductionRkMapper;
|
@Resource
|
private SlVolumeProductionRkglMapper slVolumeProductionRkglMapper;
|
@Resource
|
private SlGoodsMaterialsMapper slGoodsMaterialsMapper;
|
|
@Resource
|
private SlVolumeProductionZyglMapper slVolumeProductionZyglMapper;
|
@Resource
|
private SlGoodsShelfMapper slGoodsShelfMapper;
|
@Autowired
|
private SlStoreManagementService service;
|
@Override
|
public PageDTO<getVolumeProductionzyCodeVO> getVolumeProductionzyCode(VolumeProductionZygCodeQuery volumeProductionZygCodeQuery) {
|
|
SlVolumeProductionZygl slVolumeProductionZygl = slVolumeProductionZyglMapper.selectById(volumeProductionZygCodeQuery.getVolumeProductionzylId());
|
|
LambdaQueryWrapper<SlVolumeProductionRk> wrapper2= Wrappers.lambdaQuery();
|
wrapper2.eq(SlVolumeProductionRk::getManagementId,slVolumeProductionZygl.getBmanagementId());
|
wrapper2.eq(SlVolumeProductionRk::getStoreManagementNumber,volumeProductionZygCodeQuery.getStoreManagementNumber());
|
wrapper2.eq(SlVolumeProductionRk::getShelfId,volumeProductionZygCodeQuery.getShelfId());
|
wrapper2.eq( SlVolumeProductionRk::getDelFlag,0);
|
wrapper2.orderByDesc(SlVolumeProductionRk::getCreateTime);
|
List<SlVolumeProductionRk> page1 = slVolumeProductionRkMapper.selectList(wrapper2);
|
|
Set<Long> goodsSkuIdList = null;
|
goodsSkuIdList = page1.stream().map(SlVolumeProductionRk::getId)
|
.collect(Collectors.toSet());
|
|
|
Page<SlVolumeProductionZy> page = new Page<>(volumeProductionZygCodeQuery.getPageCurr(), volumeProductionZygCodeQuery.getPageSize());
|
LambdaQueryWrapper< SlVolumeProductionZy> wrapper1= Wrappers.lambdaQuery();
|
wrapper1.eq(SlVolumeProductionZy::getZyglId,volumeProductionZygCodeQuery.getVolumeProductionzylId());
|
if (goodsSkuIdList.size()>0&&goodsSkuIdList!=null){
|
wrapper1.in(SlVolumeProductionZy::getScrkId,goodsSkuIdList);
|
}
|
wrapper1.eq( SlVolumeProductionZy::getDelFlag,0);
|
wrapper1.orderByDesc(SlVolumeProductionZy::getCreateTime);
|
Page<SlVolumeProductionZy> page2 = this.page(page, wrapper1);
|
PageDTO<getVolumeProductionzyCodeVO> SlGoodsShelfDTO = PageDTO.of(page2, getVolumeProductionzyCodeVO.class);
|
List<getVolumeProductionzyCodeVO> list2 = SlGoodsShelfDTO.getList();
|
for(getVolumeProductionzyCodeVO list:list2) {
|
SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(list.getScrkId());
|
SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(slVolumeProductionRk.getMaterialsId());
|
list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
|
list.setIsConsume(slGoodsMaterials.getIsConsume());
|
}
|
return SlGoodsShelfDTO;
|
|
}
|
|
@Resource
|
private SlAuditService slAuditService;
|
@Resource
|
private SlAuditRecordService slAuditRecordService;
|
@Override
|
public void addSlVolumeProductionZy(ADDZYDTO addaddSlVolumeProductionZyDTO) {
|
if (addaddSlVolumeProductionZyDTO.getId()==null){
|
// 新增转移管理
|
Long userid = SecurityUtils.getUserId();
|
SlVolumeProductionZygl slVolumeProductionZygl=new SlVolumeProductionZygl();
|
slVolumeProductionZygl.setAttachmentUrl(addaddSlVolumeProductionZyDTO.getAttachmentUrl());
|
slVolumeProductionZygl.setAuthorizationUrl(addaddSlVolumeProductionZyDTO.getAuthorization());
|
slVolumeProductionZygl.setSource(addaddSlVolumeProductionZyDTO.getSource());
|
slVolumeProductionZygl.setManagementId(addaddSlVolumeProductionZyDTO.getManagementId());
|
slVolumeProductionZygl.setBmanagementId(addaddSlVolumeProductionZyDTO.getBmanagementId());
|
slVolumeProductionZygl.setSysId(userid);
|
slVolumeProductionZygl.setStartiTime(new Date());
|
slVolumeProductionZygl.setAuditStatus(1);
|
slVolumeProductionZygl.setPresentState(1);
|
slVolumeProductionZyglMapper.insert(slVolumeProductionZygl);
|
addaddSlVolumeProductionZyDTO.setId(slVolumeProductionZygl.getId());
|
|
// 新增
|
List<AddZYIdsDTO> rkId = addaddSlVolumeProductionZyDTO.getAddZYIdsDTOS();
|
for (AddZYIdsDTO m:rkId){
|
SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(m.getRkId());
|
// todo 目前还不知道转移管理存不存供应商id
|
// Long volumeProductionRkglId = slVolumeProductionRk.getVolumeProductionRkglId();
|
// SlVolumeProductionRkgl slVolumeProductionRkgl = slVolumeProductionRkglMapper.selectById(volumeProductionRkglId);
|
SlVolumeProductionZy slVolumeProductionZy=new SlVolumeProductionZy();
|
slVolumeProductionZy.setRkId(m.getRkId());
|
slVolumeProductionZy.setZyglId(slVolumeProductionZygl.getId());
|
slVolumeProductionZy.setState(1);
|
slVolumeProductionZy.setMaterialsId(slVolumeProductionRk.getMaterialsId());
|
slVolumeProductionZy.setZyNum(m.getZyNum());
|
slVolumeProductionZy.setCreateTime(new Date());
|
slVolumeProductionZy.setStoreManagementNumber(m.getStoreManagementNumber());
|
slVolumeProductionZy.setShelfId(m.getShelfId());
|
slVolumeProductionZy.setRkId(m.getRkId());
|
// slVolumeProductionZy.setSupplierId(slVolumeProductionRkgl.getSupplierId());
|
this.save(slVolumeProductionZy);
|
}
|
}else{
|
// 修改
|
SlVolumeProductionZygl byId = slVolumeProductionZyglMapper.selectById(addaddSlVolumeProductionZyDTO.getId());
|
if (addaddSlVolumeProductionZyDTO.getSource()!=null){
|
byId.setSource(addaddSlVolumeProductionZyDTO.getSource());
|
}
|
if (addaddSlVolumeProductionZyDTO.getAttachmentUrl()!=null){
|
byId.setAttachmentUrl(addaddSlVolumeProductionZyDTO.getAttachmentUrl());
|
}
|
if (addaddSlVolumeProductionZyDTO.getAuthorization()!=null){
|
byId.setAuthorizationUrl(addaddSlVolumeProductionZyDTO.getAuthorization());
|
}
|
slVolumeProductionZyglMapper.updateById(byId);
|
for (AddZYIdsDTO z:addaddSlVolumeProductionZyDTO.getAddZYIdsDTOS()){
|
QueryWrapper<SlVolumeProductionZy> slVolumeProductionZyQueryWrapper = new QueryWrapper<>();
|
slVolumeProductionZyQueryWrapper.eq("zygl_id",addaddSlVolumeProductionZyDTO.getId());
|
slVolumeProductionZyQueryWrapper.eq("rk_id",z.getRkId());
|
SlVolumeProductionZy one = this.getOne(slVolumeProductionZyQueryWrapper);
|
if (one!=null){
|
one.setZyNum(z.getZyNum());
|
|
}
|
this.updateById(one);
|
}
|
}
|
// 添加/修改审核记录
|
LambdaQueryWrapper< SlAudit> wrapper= Wrappers.lambdaQuery();
|
if (addaddSlVolumeProductionZyDTO.getId()!=null){
|
wrapper.eq(SlAudit::getRkId,addaddSlVolumeProductionZyDTO.getId());
|
}
|
wrapper.eq(SlAudit::getType,3);
|
wrapper.eq( SlAudit::getDelFlag,0);
|
wrapper.orderByDesc(SlAudit::getCreateTime);
|
SlAudit page1 = slAuditService.getOne(wrapper);
|
if (page1!=null){
|
LambdaQueryWrapper<SlAuditRecord> wrapper1= Wrappers.lambdaQuery();
|
wrapper1.eq(SlAuditRecord::getAuditId,page1.getId());
|
List<SlAuditRecord> slAuditRecords = slAuditRecordService.list(wrapper1);
|
for (SlAuditRecord lAuditRecord:slAuditRecords){
|
slAuditRecordService.removeById(lAuditRecord.getId());
|
}
|
slAuditService.removeById(page1);
|
}
|
SlAudit slAudit=new SlAudit();
|
slAudit.setType(3);
|
slAudit.setState(1);
|
slAudit.setCreateTime(new Date());
|
slAudit.setRkId(addaddSlVolumeProductionZyDTO.getId());
|
if (slAudit.getType()==3){
|
SlVolumeProductionZygl slVolumeProductionZygl = slVolumeProductionZyglMapper.selectById(addaddSlVolumeProductionZyDTO.getId());
|
slAudit.setSysId(slVolumeProductionZygl.getSysId());
|
slAudit.setManagementId(slVolumeProductionZygl.getManagementId());
|
slAudit.setZymanagementId(slVolumeProductionZygl.getBmanagementId());
|
SlStoreManagement byId = slStoreManagementService.getById(slVolumeProductionZygl.getManagementId());
|
slAudit.setShenhId(byId.getAdministratorId());
|
slAuditService.save(slAudit);
|
SlAuditRecord slAuditRecord=new SlAuditRecord();
|
slAuditRecord.setAuditId(slAudit.getId());
|
slAuditRecord.setShenhId(byId.getAdministratorId());
|
slAuditRecord.setType(1);
|
slAuditRecord.setState(1);
|
slAuditRecord.setCreateTime(new Date());
|
slAuditRecordService.save(slAuditRecord);
|
|
SlAuditRecord slAuditRecord1=new SlAuditRecord();
|
slAuditRecord1.setAuditId(slAudit.getId());
|
slAuditRecord1.setShenhId(byId.getCompetentId());
|
slAuditRecord1.setType(2);
|
slAuditRecord1.setState(1);
|
slAuditRecord1.setCreateTime(new Date());
|
slAuditRecordService.save(slAuditRecord1);
|
|
SlAuditRecord slAuditRecord2=new SlAuditRecord();
|
slAuditRecord2.setAuditId(slAudit.getId());
|
slAuditRecord2.setShenhId(byId.getDirectorId());
|
slAuditRecord2.setType(3);
|
slAuditRecord2.setState(1);
|
slAuditRecord2.setCreateTime(new Date());
|
slAuditRecordService.save(slAuditRecord2);
|
}
|
}
|
@Resource
|
private SlStoreManagementService slStoreManagementService;
|
@Override
|
public void updSlVolumeProductionZy(List<UpdaddSlVolumeProductionZyDTO> updaddSlVolumeProductionZyDTO) {
|
for (UpdaddSlVolumeProductionZyDTO z:updaddSlVolumeProductionZyDTO){
|
SlVolumeProductionZy byId = this.getById(z.getId());
|
byId.setZyNum(z.getZyNum());
|
this.updateById(byId);
|
}
|
|
}
|
|
@Override
|
public PageDTO<ManagementimgVolumeProductionZyVO> getSlVolumeProductionZyList(ManagementimgVolumeProductionZyQuery managementimgVolumeProductionZyQuery) {
|
SlVolumeProductionZygl slVolumeProductionZygl = slVolumeProductionZyglMapper.selectById(managementimgVolumeProductionZyQuery.getVolumeProductionzyglId());
|
LambdaQueryWrapper<SlVolumeProductionRk> wrapper2= Wrappers.lambdaQuery();
|
wrapper2.eq(SlVolumeProductionRk::getManagementId,slVolumeProductionZygl.getBmanagementId());
|
wrapper2.eq(SlVolumeProductionRk::getStoreManagementNumber,managementimgVolumeProductionZyQuery.getStoreManagementNumber());
|
wrapper2.eq(SlVolumeProductionRk::getShelfId,managementimgVolumeProductionZyQuery.getShelfId());
|
wrapper2.eq( SlVolumeProductionRk::getDelFlag,0);
|
wrapper2.orderByDesc(SlVolumeProductionRk::getCreateTime);
|
List<SlVolumeProductionRk> page1 = slVolumeProductionRkMapper.selectList(wrapper2);
|
|
Set<Long> goodsSkuIdList = null;
|
goodsSkuIdList = page1.stream().map(SlVolumeProductionRk::getId)
|
.collect(Collectors.toSet());
|
|
|
Page<SlVolumeProductionZy> page = new Page<>(managementimgVolumeProductionZyQuery.getPageCurr(), managementimgVolumeProductionZyQuery.getPageSize());
|
LambdaQueryWrapper< SlVolumeProductionZy> wrapper1= Wrappers.lambdaQuery();
|
wrapper1.eq(SlVolumeProductionZy::getZyglId,managementimgVolumeProductionZyQuery.getVolumeProductionzyglId());
|
if (goodsSkuIdList.size()>0&&goodsSkuIdList!=null){
|
wrapper1.in(SlVolumeProductionZy::getScrkId,goodsSkuIdList);
|
}
|
wrapper1.eq( SlVolumeProductionZy::getDelFlag,0);
|
wrapper1.orderByDesc(SlVolumeProductionZy::getCreateTime);
|
Page<SlVolumeProductionZy> page2 = this.page(page, wrapper1);
|
PageDTO<ManagementimgVolumeProductionZyVO> SlGoodsShelfDTO = PageDTO.of(page2, ManagementimgVolumeProductionZyVO.class);
|
List<ManagementimgVolumeProductionZyVO> list2 = SlGoodsShelfDTO.getList();
|
for(ManagementimgVolumeProductionZyVO 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());
|
if(list.getScrkId()!=null){
|
SlVolumeProductionRk slVolumeProductionRk1 = slVolumeProductionRkMapper.selectById(list.getScrkId());
|
list.setStoreManagementNumber(slVolumeProductionRk1.getStoreManagementNumber());
|
list.setRkNumber(slVolumeProductionRk1.getRkNumber());
|
}
|
}
|
return SlGoodsShelfDTO;
|
}
|
|
@Override
|
public NumberAndShelfVO getNumberAndShelfByManagementId(QueryDTO dto) {
|
NumberAndShelfVO numberAndShelfVO = new NumberAndShelfVO();
|
SlStoreManagement byId = service.getById(dto.getManagementId());
|
List<String> number = new ArrayList<>();
|
for (Integer i = 1; i <= byId.getStoreManagementNumber(); i++) {
|
switch (i){
|
case 1:
|
number.add("一层");
|
break;
|
case 2:
|
number.add("二层");
|
break;
|
case 3:
|
number.add("三层");
|
break;
|
}
|
}
|
numberAndShelfVO.setNumber(number);
|
QueryWrapper<SlGoodsShelf> eq = new QueryWrapper<SlGoodsShelf>()
|
.eq("del_flag", "0")
|
.eq("store_management_id", dto.getManagementId())
|
.eq("store_management_number",dto.getManagementNumber());
|
List<SlGoodsShelf> slGoodsShelves = slGoodsShelfMapper.selectList(eq);
|
numberAndShelfVO.setGoodsShelfList(slGoodsShelves);
|
return numberAndShelfVO;
|
}
|
}
|