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.BeanUtils;
|
import com.ruoyi.common.core.utils.page.PageDTO;
|
import com.ruoyi.common.security.service.TokenService;
|
import com.ruoyi.common.security.utils.SecurityUtils;
|
import com.ruoyi.management.domain.*;
|
import com.ruoyi.management.domain.dto.SupplierVolumeProductionRkglQuery;
|
import com.ruoyi.management.domain.dto.VolumeProductionRkglDTO;
|
import com.ruoyi.management.domain.vo.ManagementimgVolumeProductionRkVO;
|
import com.ruoyi.management.domain.vo.SupplierVolumeProductionRkglVO;
|
import com.ruoyi.management.domain.vo.VolumeProductionRkgInfoVO;
|
import com.ruoyi.management.domain.vo.VolumeProductionRkgInventoryVO;
|
import com.ruoyi.management.mapper.*;
|
import com.ruoyi.management.service.SlVolumeProductionRkglService;
|
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.LogClient;
|
import com.ruoyi.system.api.feignClient.SysUserClient;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import javax.xml.crypto.Data;
|
import java.time.LocalDateTime;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 入库管理 服务实现类
|
* </p>
|
*
|
* @author hjl
|
* @since 2024-06-25
|
*/
|
@Service
|
public class SlVolumeProductionRkglServiceImpl extends ServiceImpl<SlVolumeProductionRkglMapper, SlVolumeProductionRkgl> implements SlVolumeProductionRkglService {
|
|
|
@Resource
|
private SysUserClient sysUserClient;
|
|
@Resource
|
private SlStoreManagementMapper slStoreManagementMapper;
|
|
@Resource
|
private SlVolumeProductionRkMapper slVolumeProductionRkMapper;
|
|
@Resource
|
private SlGoodsMaterialsMapper slGoodsMaterialsMapper;
|
|
@Resource
|
private SlGoodsShelfMapper slGoodsShelfMapper;
|
|
@Resource
|
private ManagementGoodsMaterialsMapper managementGoodsMaterialsMapper;
|
|
@Resource
|
private LogClient logClient;
|
|
@Override
|
public PageDTO<SupplierVolumeProductionRkglVO> getSupplierVolumeProductionRkglList(SupplierVolumeProductionRkglQuery supplierVolumeProductionRkglQuery) {
|
Page<SlVolumeProductionRkgl> page = new Page<>(supplierVolumeProductionRkglQuery.getPageCurr(), supplierVolumeProductionRkglQuery.getPageSize());
|
LambdaQueryWrapper< SlVolumeProductionRkgl> wrapper1= Wrappers.lambdaQuery();
|
wrapper1.eq(SlVolumeProductionRkgl::getSupplierId,supplierVolumeProductionRkglQuery.getSupplierId());
|
wrapper1.eq( SlVolumeProductionRkgl::getDelFlag,0);
|
wrapper1.orderByDesc(SlVolumeProductionRkgl::getCreateTime);
|
Page<SlVolumeProductionRkgl> page2 = this.page(page, wrapper1);
|
|
PageDTO<SupplierVolumeProductionRkglVO> SlGoodsShelfDTO = PageDTO.of(page2, SupplierVolumeProductionRkglVO.class);
|
List<SupplierVolumeProductionRkglVO> list2 = SlGoodsShelfDTO.getList();
|
for(SupplierVolumeProductionRkglVO list:list2){
|
SysUser data = sysUserClient.getSysUser(list.getSupplierId()).getData();
|
list.setNickName(data.getNickName());
|
list.setPhonenumber(data.getPhonenumber());
|
SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(list.getManagementId());
|
list.setStoreManagementName(slStoreManagement.getStoreManagementName());
|
}
|
return SlGoodsShelfDTO;
|
}
|
|
@Override
|
public VolumeProductionRkgInfoVO getVolumeProductionRkgInfo(Long id) {
|
SlVolumeProductionRkgl byId = this.getById(id);
|
// 根据仓库id 查询仓库管理员
|
VolumeProductionRkgInfoVO v=BeanUtils.copyBean(byId, VolumeProductionRkgInfoVO.class);
|
SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId());
|
v.setZhuren(slStoreManagement.getDirectorId());
|
v.setZhuguan(slStoreManagement.getCompetentId());
|
v.setGuanliyuan(slStoreManagement.getAdministratorId());
|
v.setStoreManagementName(slStoreManagement.getStoreManagementName());
|
if (byId.getSupplierId()!=null){
|
SysUser data = sysUserClient.getSysUser(Long.valueOf(byId.getSupplierId())).getData();
|
if (data!=null){
|
v.setSupplierName(data.getNickName());
|
v.setSupplierPhone(data.getPhonenumber());
|
}
|
}
|
v.setSupplierId(byId.getSupplierId());
|
if (byId.getSysId()!=null){
|
SysUser data1 = sysUserClient.getSysUser(Long.valueOf(byId.getSysId())).getData();
|
if (data1!=null){
|
v.setSysName(data1.getNickName());
|
v.setSysPhone(data1.getPhonenumber());
|
}
|
}
|
v.setAuthorization(byId.getAuthorizationUrl());
|
v.setReason(byId.getReasonsRefusal());
|
return v;
|
}
|
@Autowired
|
private TokenService tokenService;
|
@Override
|
public PageDTO<SupplierVolumeProductionRkglVO> getslVolumeProductionRkglList(getVolumeProductionRkQuery getVolumeProductionRkQuery) {
|
Page<SlVolumeProductionRkgl> page = new Page<>(getVolumeProductionRkQuery.getPageCurr(), getVolumeProductionRkQuery.getPageSize());
|
|
List<SysUser> data1 = sysUserClient.getUserSupplierList(getVolumeProductionRkQuery).getData();
|
Set<Long> goodsSkuIdList = null;
|
List<Long> managementIds = new ArrayList<>();
|
goodsSkuIdList = data1.stream().map(SysUser::getUserId)
|
.collect(Collectors.toSet());
|
Long userid = tokenService.getLoginUser().getUserid();
|
SysUser data2 = sysUserClient.getSysUser(userid).getData();
|
LambdaQueryWrapper< SlVolumeProductionRkgl> wrapper1= Wrappers.lambdaQuery();
|
QueryWrapper<SlStoreManagement> storeManagementGrade = new QueryWrapper<SlStoreManagement>()
|
.eq("del_flag", "0");
|
if (data2!=null){
|
if (!data2.getUserType().equals("00")){
|
// 仓库管理员 根据仓库管理员的等级查询对应的仓库
|
switch (data2.getRoleType()){
|
case 3:
|
storeManagementGrade.ge("store_management_grade",3);
|
storeManagementGrade.eq("city_code",data2.getCityCode());
|
managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream()
|
.map(SlStoreManagement::getId).collect(Collectors.toList());
|
break;
|
case 4:
|
storeManagementGrade.ge("store_management_grade",4);
|
storeManagementGrade.eq("county_code",data2.getCountyCode());
|
managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream()
|
.map(SlStoreManagement::getId).collect(Collectors.toList());
|
break;
|
case 5:
|
storeManagementGrade.ge("store_management_grade",5);
|
storeManagementGrade.eq("town_code",data2.getTownCode());
|
managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream()
|
.map(SlStoreManagement::getId).collect(Collectors.toList());
|
break;
|
case 6:
|
storeManagementGrade.eq("store_management_grade",6);
|
storeManagementGrade.eq("town_code",data2.getTownCode());
|
managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream()
|
.map(SlStoreManagement::getId).collect(Collectors.toList());
|
break;
|
}
|
|
}
|
|
}
|
if (!managementIds.isEmpty()){
|
wrapper1.in(SlVolumeProductionRkgl::getManagementId,managementIds);
|
}
|
if (getVolumeProductionRkQuery.getPresentState()!=null && getVolumeProductionRkQuery.getPresentState()!=0){
|
wrapper1.eq(SlVolumeProductionRkgl::getPresentState,getVolumeProductionRkQuery.getPresentState());
|
}
|
if (getVolumeProductionRkQuery.getAuditStatus()!=null && getVolumeProductionRkQuery.getAuditStatus()!=0) {
|
wrapper1.eq(SlVolumeProductionRkgl::getAuditStatus, getVolumeProductionRkQuery.getAuditStatus());
|
}
|
if (goodsSkuIdList.size()>0){
|
wrapper1.in(SlVolumeProductionRkgl::getSysId,goodsSkuIdList);
|
}else{
|
goodsSkuIdList=new HashSet<>();
|
goodsSkuIdList.add(0l);
|
wrapper1.in(SlVolumeProductionRkgl::getSysId,goodsSkuIdList);
|
}
|
wrapper1.eq( SlVolumeProductionRkgl::getDelFlag,0);
|
wrapper1.orderByDesc(SlVolumeProductionRkgl::getStartiTime);
|
Page<SlVolumeProductionRkgl> page2 = this.page(page, wrapper1);
|
PageDTO<SupplierVolumeProductionRkglVO> SlGoodsShelfDTO = PageDTO.of(page2, SupplierVolumeProductionRkglVO.class);
|
List<SupplierVolumeProductionRkglVO> list2 = SlGoodsShelfDTO.getList();
|
for(SupplierVolumeProductionRkglVO list:list2){
|
SysUser data = sysUserClient.getSysUser(list.getSysId()).getData();
|
list.setNickName(data.getNickName());
|
list.setPhonenumber(data.getPhonenumber());
|
SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(list.getManagementId());
|
if (slStoreManagement!=null){
|
list.setStoreManagementName(slStoreManagement.getStoreManagementName());
|
}
|
}
|
return SlGoodsShelfDTO;
|
}
|
|
@Override
|
public Long addVolumeProductionRkgl(VolumeProductionRkglDTO volumeProductionRkglDTO) {
|
SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(volumeProductionRkglDTO.getManagementId());
|
String directorId = slStoreManagement.getDirectorId();
|
String competentId = slStoreManagement.getCompetentId();
|
String administratorId = slStoreManagement.getAdministratorId();
|
Long userid = SecurityUtils.getUserId();
|
List<String> list1 = Arrays.asList(administratorId.split(","));
|
List<String> list2 = Arrays.asList(competentId.split(","));
|
List<String> list3 = Arrays.asList(directorId.split(","));
|
SlVolumeProductionRkgl slVolumeProductionRkgl=null;
|
if (volumeProductionRkglDTO.getId()==null){
|
slVolumeProductionRkgl = new SlVolumeProductionRkgl();
|
slVolumeProductionRkgl.setAttachmentUrl(volumeProductionRkglDTO.getAttachmentUrl());
|
slVolumeProductionRkgl.setAuthorizationUrl(volumeProductionRkglDTO.getAuthorization());
|
slVolumeProductionRkgl.setManagementId(volumeProductionRkglDTO.getManagementId());
|
slVolumeProductionRkgl.setAuditStatus(1);
|
slVolumeProductionRkgl.setPresentState(1);
|
slVolumeProductionRkgl.setSupplierId(volumeProductionRkglDTO.getSupplierId());
|
slVolumeProductionRkgl.setSource(volumeProductionRkglDTO.getSource());
|
slVolumeProductionRkgl.setStartiTime(new Date());
|
slVolumeProductionRkgl.setSysId(userid);
|
slVolumeProductionRkgl.setRemark(volumeProductionRkglDTO.getRemark());
|
// 如果发起人是主任 主管 或 管理员
|
if (list1.contains(userid.toString())){
|
slVolumeProductionRkgl.setAuditStatus(1);
|
slVolumeProductionRkgl.setPresentState(2);
|
}
|
if (list2.contains(userid.toString())){
|
slVolumeProductionRkgl.setAuditStatus(1);
|
slVolumeProductionRkgl.setPresentState(3);
|
}
|
if (list3.contains(userid.toString())){
|
slVolumeProductionRkgl.setAuditStatus(3);
|
slVolumeProductionRkgl.setPresentState(4);
|
}
|
this.save(slVolumeProductionRkgl);
|
}else{
|
slVolumeProductionRkgl = this.getById(volumeProductionRkglDTO.getId());
|
slVolumeProductionRkgl.setPresentState(1);
|
slVolumeProductionRkgl.setAuditStatus(1);
|
if (volumeProductionRkglDTO.getSource()!=null){
|
slVolumeProductionRkgl.setSource(volumeProductionRkglDTO.getSource());
|
}
|
if (volumeProductionRkglDTO.getRemark()!=null){
|
slVolumeProductionRkgl.setRemark(volumeProductionRkglDTO.getRemark());
|
}
|
if (volumeProductionRkglDTO.getSupplierId()!=null){
|
slVolumeProductionRkgl.setSupplierId(volumeProductionRkglDTO.getSupplierId());
|
}
|
if (volumeProductionRkglDTO.getAttachmentUrl()!=null){
|
slVolumeProductionRkgl.setAttachmentUrl(volumeProductionRkglDTO.getAttachmentUrl());
|
}
|
if (volumeProductionRkglDTO.getAuthorization()!=null){
|
slVolumeProductionRkgl.setAuthorizationUrl(volumeProductionRkglDTO.getAuthorization());
|
}
|
// 如果发起人是主任 主管 或 管理员
|
if (list1.contains(userid.toString())){
|
slVolumeProductionRkgl.setAuditStatus(1);
|
slVolumeProductionRkgl.setPresentState(2);
|
}
|
if (list2.contains(userid.toString())){
|
slVolumeProductionRkgl.setAuditStatus(1);
|
slVolumeProductionRkgl.setPresentState(3);
|
}
|
if (list3.contains(userid.toString())){
|
slVolumeProductionRkgl.setAuditStatus(3);
|
slVolumeProductionRkgl.setPresentState(4);
|
}
|
this.updateById(slVolumeProductionRkgl);
|
|
}
|
return slVolumeProductionRkgl.getId();
|
}
|
|
@Override
|
public VolumeProductionRkgInventoryVO getVolumeProductionRkgInventory(Long id) {
|
SlVolumeProductionRkgl byId = this.getById(id);
|
VolumeProductionRkgInventoryVO vo = new VolumeProductionRkgInventoryVO();
|
SysUser data = sysUserClient.getSysUser(byId.getSysId()).getData();
|
vo.setSysPhone(data.getPhonenumber());
|
vo.setSysName(data.getNickName());
|
vo.setStartiTime(byId.getStartiTime());
|
SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId());
|
vo.setStoreManagementName(slStoreManagement.getStoreManagementName());
|
String directorId = slStoreManagement.getDirectorId();
|
List<String> stri = Arrays.asList(directorId.split(","));
|
String str1 ="";
|
if (stri.size() > 0) {
|
for (String str : stri) {
|
SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData();
|
str1 += data1.getNickName() + ",";
|
}
|
}
|
vo.setDirectorName(str1.substring(0, str1.length() - 1));
|
|
String competentId = slStoreManagement.getCompetentId();
|
List<String> stri1 = Arrays.asList(competentId.split(","));
|
String str11 = "";
|
if (stri1.size() > 0) {
|
for (String str : stri1) {
|
SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData();
|
str11 += data1.getNickName() + ",";
|
}
|
}
|
vo.setCompetentName(str11.substring(0, str11.length() - 1));
|
|
String administratorId = slStoreManagement.getAdministratorId();
|
List<String> stri11 = Arrays.asList(administratorId.split(","));
|
String str111 = "";
|
if (stri11.size() > 0) {
|
for (String str : stri11) {
|
SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData();
|
str111 += data1.getNickName() + ",";
|
}
|
}
|
vo.setAdministratorName(str111.substring(0, str111.length() - 1));
|
|
List<ManagementimgVolumeProductionRkVO> managementList = new ArrayList<>();
|
|
|
LambdaQueryWrapper<SlVolumeProductionRk> wrapper1 = Wrappers.lambdaQuery();
|
wrapper1.eq(SlVolumeProductionRk::getVolumeProductionRkglId, byId.getId());
|
wrapper1.eq(SlVolumeProductionRk::getDelFlag, 0);
|
wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime);
|
SysUser data1 = sysUserClient.getSysUser(byId.getSupplierId()).getData();
|
List<SlVolumeProductionRk> page2 = slVolumeProductionRkMapper.selectList(wrapper1);
|
for (SlVolumeProductionRk list : page2) {
|
ManagementimgVolumeProductionRkVO rkVO = new ManagementimgVolumeProductionRkVO();
|
SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId());
|
rkVO.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
|
rkVO.setIsConsume(slGoodsMaterials.getIsConsume());
|
rkVO.setRkModel(list.getRkModel());
|
rkVO.setRkNum(list.getRkNum());
|
rkVO.setRkPice(list.getRkPice());
|
rkVO.setStoreManagementNumber(list.getStoreManagementNumber());
|
SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId());
|
rkVO.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
|
rkVO.setSupplierName(data1.getNickName());
|
managementList.add(rkVO);
|
}
|
vo.setManagementimgVolumeProductionRkVOList(managementList);
|
return vo;
|
}
|
|
@Override
|
public void rk(Long id) {
|
LambdaQueryWrapper<SlVolumeProductionRk> wrapper1 = Wrappers.lambdaQuery();
|
wrapper1.eq(SlVolumeProductionRk::getVolumeProductionRkglId, id);
|
wrapper1.eq(SlVolumeProductionRk::getDelFlag, 0);
|
wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime);
|
List<SlVolumeProductionRk> page2 = slVolumeProductionRkMapper.selectList(wrapper1);
|
for (SlVolumeProductionRk list : page2) {
|
list.setNewAddTime("1");
|
list.setSmerwmNum(list.getErwmNum());
|
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);
|
|
SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId());
|
|
if (managementGoodsMaterials!=null){
|
Long repertorySum = managementGoodsMaterials.getRepertorySum();
|
Long repertoryZhai = managementGoodsMaterials.getRepertoryZhai();
|
Long re=repertorySum+list.getRkNum();
|
Long re1=repertoryZhai+list.getRkNum();
|
managementGoodsMaterials.setRepertorySum(re);
|
managementGoodsMaterials.setRepertoryZhai(re1);
|
managementGoodsMaterials.setRepertory(slGoodsMaterials.getRepertory());
|
managementGoodsMaterialsMapper.updateById(managementGoodsMaterials);
|
}else{
|
ManagementGoodsMaterials managementGoodsMaterials1=new ManagementGoodsMaterials();
|
managementGoodsMaterials1.setManagementId(list.getManagementId());
|
managementGoodsMaterials1.setGoodsMaterialsId(list.getMaterialsId());
|
managementGoodsMaterials1.setRepertoryZhai(list.getRkNum());
|
managementGoodsMaterials1.setRepertorySum(list.getRkNum());
|
managementGoodsMaterials1.setCreateTime(new Date());
|
managementGoodsMaterials1.setRepertory(slGoodsMaterials.getRepertory());
|
managementGoodsMaterialsMapper.insert(managementGoodsMaterials1);
|
}
|
slVolumeProductionRkMapper.updateById(list);
|
}
|
SlVolumeProductionRkgl byId = this.getById(id);
|
byId.setPresentState(4);
|
byId.setAuditStatus(6);
|
byId.setEndTime(new Date());
|
this.updateById(byId);
|
|
logClient.savelong();
|
}
|
|
}
|