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.core.web.domain.AjaxResult;
|
import com.ruoyi.common.security.service.TokenService;
|
import com.ruoyi.common.security.utils.SecurityUtils;
|
import com.ruoyi.management.domain.ManagementGoodsMaterials;
|
import com.ruoyi.management.domain.SlStoreManagement;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.management.domain.SlVolumeProductionRk;
|
import com.ruoyi.management.domain.dto.QStoreManagementQuery;
|
import com.ruoyi.management.domain.dto.StoreManagementDTO;
|
import com.ruoyi.management.domain.dto.StoreManagementQuery;
|
import com.ruoyi.management.domain.vo.SlGoodsShelfVO;
|
import com.ruoyi.management.domain.vo.SlStoreManagementInventoryVO;
|
import com.ruoyi.management.mapper.ManagementGoodsMaterialsMapper;
|
import com.ruoyi.management.mapper.SlStoreManagementMapper;
|
import com.ruoyi.management.mapper.SlVolumeProductionRkMapper;
|
import com.ruoyi.management.mapper.SlVolumeProductionRkglMapper;
|
import com.ruoyi.management.service.SlStoreManagementService;
|
import com.ruoyi.system.api.domain.SysUser;
|
import com.ruoyi.system.api.feignClient.SysUserClient;
|
import org.apache.catalina.security.SecurityUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 仓库管理 服务实现类
|
* </p>
|
*
|
* @author hjl
|
* @since 2024-06-25
|
*/
|
@Service
|
public class SlStoreManagementServiceImpl extends ServiceImpl<SlStoreManagementMapper, SlStoreManagement> implements SlStoreManagementService {
|
|
@Resource
|
private ManagementGoodsMaterialsMapper managementGoodsMaterialsMapper;
|
|
@Override
|
public PageDTO<SlStoreManagement> getStoreManagementList(StoreManagementQuery storeManagementQuery) {
|
Page<SlStoreManagement> page = new Page<>(storeManagementQuery.getPageCurr(), storeManagementQuery.getPageSize());
|
LambdaQueryWrapper< SlStoreManagement> wrapper= Wrappers.lambdaQuery();
|
if (storeManagementQuery.getStoreManagementName()!=null&&storeManagementQuery.getStoreManagementName()!=""){
|
wrapper.like(SlStoreManagement::getStoreManagementName,storeManagementQuery.getStoreManagementName());
|
}
|
if(storeManagementQuery.getStoreManagementNo()!=null&&storeManagementQuery.getStoreManagementNo()!="" ){
|
wrapper.like(SlStoreManagement::getStoreManagementNo,storeManagementQuery.getStoreManagementNo());
|
}
|
|
if ( storeManagementQuery.getStoreManagementGrade()!=null &&!storeManagementQuery.getStoreManagementGrade().equals("0") ){
|
String[] split = storeManagementQuery.getStoreManagementGrade().split(",");
|
List<Integer> arr=new ArrayList<>();
|
for(int i=0;i<split.length;i++){
|
arr.add(Integer.valueOf(split[i]));
|
}
|
wrapper.in(SlStoreManagement::getStoreManagementGrade,arr);
|
}
|
|
wrapper.eq( SlStoreManagement::getDelFlag,0);
|
wrapper.orderByDesc(SlStoreManagement::getCreateTime);
|
Page<SlStoreManagement> page1 = this.page(page, wrapper);
|
return PageDTO.of(page1);
|
}
|
|
@Override
|
public AjaxResult addStoreManagement(StoreManagementDTO storeManagementDTO) {
|
if (storeManagementDTO.getId()==null){
|
List<SlStoreManagement> list = this.list(new QueryWrapper<SlStoreManagement>()
|
.eq("store_management_grade", storeManagementDTO.getStoreManagementGrade())
|
.eq("store_management_no", storeManagementDTO.getStoreManagementNo())
|
.eq("del_flag", 0));
|
if (!list.isEmpty()){
|
return AjaxResult.error("当前仓库等级已有相同编号仓库");
|
}
|
SlStoreManagement slStoreManagement=new SlStoreManagement();
|
slStoreManagement.setStoreManagementNo(storeManagementDTO.getStoreManagementNo());
|
slStoreManagement.setStoreManagementAdder(storeManagementDTO.getStoreManagementAdder());
|
slStoreManagement.setStoreManagementExplain(storeManagementDTO.getStoreManagementExplain());
|
slStoreManagement.setStoreManagementName(storeManagementDTO.getStoreManagementName());
|
slStoreManagement.setStoreManagementGrade(storeManagementDTO.getStoreManagementGrade());
|
slStoreManagement.setStoreManagementNumber(storeManagementDTO.getStoreManagementNumber());
|
slStoreManagement.setAdministratorId(storeManagementDTO.getAdministratorId());
|
slStoreManagement.setCompetentId(storeManagementDTO.getCompetentId());
|
slStoreManagement.setDirectorId(storeManagementDTO.getDirectorId());
|
slStoreManagement.setProvinceName(storeManagementDTO.getProvinceName());
|
slStoreManagement.setProvinceCode(storeManagementDTO.getProvinceCode());
|
slStoreManagement.setCityName(storeManagementDTO.getCityName());
|
slStoreManagement.setCityCode(storeManagementDTO.getCityCode());
|
slStoreManagement.setCountyName(storeManagementDTO.getCountyName());
|
slStoreManagement.setCountyCode(storeManagementDTO.getCountyCode());
|
slStoreManagement.setTownCode(storeManagementDTO.getTownCode());
|
slStoreManagement.setTownName(storeManagementDTO.getTownName());
|
this.save(slStoreManagement);
|
}else {
|
SlStoreManagement slStoreManagement = this.getById(storeManagementDTO.getId());
|
List<SlStoreManagement> list = this.list(new QueryWrapper<SlStoreManagement>()
|
.eq("store_management_grade", storeManagementDTO.getStoreManagementGrade())
|
.eq("store_management_no", storeManagementDTO.getStoreManagementNo())
|
.ne("id",slStoreManagement.getId())
|
.eq("del_flag", 0));
|
if (!list.isEmpty()){
|
return AjaxResult.error("当前仓库等级已有相同编号仓库");
|
}
|
if (storeManagementDTO.getStoreManagementNo()!=null){
|
slStoreManagement.setStoreManagementNo(storeManagementDTO.getStoreManagementNo());
|
}
|
if (storeManagementDTO.getStoreManagementAdder()!=null){
|
slStoreManagement.setStoreManagementAdder(storeManagementDTO.getStoreManagementAdder());
|
}
|
if (storeManagementDTO.getStoreManagementExplain()!=null){
|
slStoreManagement.setStoreManagementExplain(storeManagementDTO.getStoreManagementExplain());
|
}
|
if (storeManagementDTO.getStoreManagementName()!=null){
|
slStoreManagement.setStoreManagementName(storeManagementDTO.getStoreManagementName());
|
}
|
if (storeManagementDTO.getStoreManagementGrade()!=null){
|
slStoreManagement.setStoreManagementGrade(storeManagementDTO.getStoreManagementGrade());
|
}
|
if (storeManagementDTO.getStoreManagementNumber()!=null){
|
slStoreManagement.setStoreManagementNumber(storeManagementDTO.getStoreManagementNumber());
|
}
|
if (storeManagementDTO.getAdministratorId()!=null){
|
slStoreManagement.setAdministratorId(storeManagementDTO.getAdministratorId());
|
}
|
if (storeManagementDTO.getCompetentId()!=null){
|
slStoreManagement.setCompetentId(storeManagementDTO.getCompetentId());
|
}
|
if (storeManagementDTO.getDirectorId()!=null){
|
slStoreManagement.setDirectorId(storeManagementDTO.getDirectorId());
|
}
|
if (storeManagementDTO.getProvinceName()!=null){
|
slStoreManagement.setProvinceName(storeManagementDTO.getProvinceName());
|
}
|
if (storeManagementDTO.getProvinceCode()!=null){
|
slStoreManagement.setProvinceCode(storeManagementDTO.getProvinceCode());
|
}
|
if (storeManagementDTO.getCityName()!=null){
|
slStoreManagement.setCityName(storeManagementDTO.getCityName());
|
}
|
if (storeManagementDTO.getCityCode()!=null){
|
slStoreManagement.setCityCode(storeManagementDTO.getCityCode());
|
}
|
if (storeManagementDTO.getCountyName()!=null){
|
slStoreManagement.setCountyName(storeManagementDTO.getCountyName());
|
}
|
if (storeManagementDTO.getCountyCode()!=null){
|
slStoreManagement.setCountyCode(storeManagementDTO.getCountyCode());
|
}
|
if (storeManagementDTO.getTownCode()!=null){
|
slStoreManagement.setTownCode(storeManagementDTO.getTownCode());
|
}
|
if (storeManagementDTO.getTownName()!=null){
|
slStoreManagement.setTownName(storeManagementDTO.getTownName());
|
}
|
this.updateById(slStoreManagement);
|
}
|
return AjaxResult.success();
|
}
|
|
@Autowired
|
private TokenService tokenService;
|
@Resource
|
private SysUserClient sysUserClient;
|
@Override
|
public List<SlStoreManagement> QueryStoreManagementList(QStoreManagementQuery StoreManagementQuery) {
|
LambdaQueryWrapper< SlStoreManagement> wrapper= Wrappers.lambdaQuery();
|
wrapper.eq(SlStoreManagement::getDelFlag,0);
|
wrapper.orderByDesc(SlStoreManagement::getCreateTime);
|
Long userid = tokenService.getLoginUser().getUserid();
|
SysUser data = sysUserClient.getSysUser(userid).getData();
|
if (data!=null){
|
if (!data.getUserType().equals("00")){
|
// 仓库管理员 根据仓库管理员的等级查询对应的仓库
|
switch (data.getRoleType()){
|
case 3:
|
if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=0){
|
wrapper.ge(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
|
}else{
|
wrapper.eq(SlStoreManagement::getStoreManagementGrade,3);
|
|
}
|
if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){
|
wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode());
|
}else if (StoreManagementQuery.getCountyCode()!=null){
|
wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode());
|
wrapper.isNull(SlStoreManagement::getTownCode);
|
}else if (StoreManagementQuery.getTownCode()!=null){
|
wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode());
|
}else{
|
wrapper.eq(SlStoreManagement::getCityCode,data.getCityCode());
|
wrapper.isNull(SlStoreManagement::getCountyCode);
|
}
|
break;
|
case 4:
|
if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=0){
|
wrapper.ge(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
|
}else{
|
wrapper.eq(SlStoreManagement::getStoreManagementGrade,4);
|
}
|
if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){
|
wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode());
|
}else{
|
wrapper.eq(SlStoreManagement::getCountyCode,data.getCountyCode());
|
wrapper.isNull(SlStoreManagement::getTownCode);
|
}
|
break;
|
case 5:
|
if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=0){
|
wrapper.ge(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
|
}else{
|
wrapper.eq(SlStoreManagement::getStoreManagementGrade,5);
|
}
|
if (StoreManagementQuery.getTownCode()!=null && StoreManagementQuery.getTownCode()!=""){
|
wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode());
|
}else{
|
wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode());
|
|
}
|
break;
|
case 6:
|
if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=0){
|
wrapper.ge(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
|
}else{
|
wrapper.eq(SlStoreManagement::getStoreManagementGrade,6);
|
}
|
break;
|
}
|
|
}else {
|
if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=0){
|
wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
|
}
|
if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){
|
wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode());
|
}
|
if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){
|
wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode());
|
}
|
if (StoreManagementQuery.getTownCode()!=null && StoreManagementQuery.getTownCode()!=""){
|
wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode());
|
}
|
}
|
|
}
|
List<SlStoreManagement> page1 = this.list(wrapper);
|
return page1;
|
}
|
|
@Override
|
public PageDTO<SlStoreManagementInventoryVO> getManagementInventoryList(StoreManagementQuery storeManagementQuery) {
|
Long userId = SecurityUtils.getUserId();
|
SysUser data = sysUserClient.getSysUser(userId).getData();
|
|
Page<SlStoreManagement> page = new Page<>(storeManagementQuery.getPageCurr(), storeManagementQuery.getPageSize());
|
LambdaQueryWrapper< SlStoreManagement> wrapper= Wrappers.lambdaQuery();
|
if (storeManagementQuery.getStoreManagementName()!=null){
|
wrapper.like(SlStoreManagement::getStoreManagementName,storeManagementQuery.getStoreManagementName());
|
}
|
if (!data.getUserType().equals("00")){
|
// 不是平台账号 根据角色类型查询对应的仓库
|
switch (data.getRoleType()){
|
case 3:
|
wrapper.ge(SlStoreManagement::getStoreManagementGrade,3);
|
wrapper.eq(SlStoreManagement::getCityCode,data.getCityCode());
|
|
|
break;
|
case 4:
|
wrapper.eq(SlStoreManagement::getCountyCode,data.getCountyCode());
|
|
wrapper.ge(SlStoreManagement::getStoreManagementGrade,4);
|
break;
|
case 5:
|
wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode());
|
|
wrapper.ge(SlStoreManagement::getStoreManagementGrade,5);
|
break;
|
case 6:
|
wrapper.eq(SlStoreManagement::getStoreManagementGrade,6);
|
wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode());
|
break;
|
}
|
}
|
if (storeManagementQuery.getStoreManagementNo()!=null){
|
wrapper.eq(SlStoreManagement::getStoreManagementNo,storeManagementQuery.getStoreManagementNo());
|
}
|
|
if ( storeManagementQuery.getStoreManagementGrade()!=null&&!storeManagementQuery.getStoreManagementGrade().equals("0")){
|
String[] split = storeManagementQuery.getStoreManagementGrade().split(",");
|
List<Integer> arr=new ArrayList<>();
|
for(int i=0;i<split.length;i++){
|
arr.add(Integer.valueOf(split[i]));
|
}
|
wrapper.in(SlStoreManagement::getStoreManagementGrade,arr);
|
}
|
wrapper.eq( SlStoreManagement::getDelFlag,0);
|
wrapper.orderByDesc(SlStoreManagement::getCreateTime);
|
Page<SlStoreManagement> page1 = this.page(page, wrapper);
|
|
PageDTO<SlStoreManagementInventoryVO> InventoryVO = PageDTO.of(page1, SlStoreManagementInventoryVO.class);
|
List<SlStoreManagementInventoryVO> list2 = InventoryVO.getList();
|
for(SlStoreManagementInventoryVO list:list2){
|
LambdaQueryWrapper<ManagementGoodsMaterials> wrapper1= Wrappers.lambdaQuery();
|
|
wrapper1.eq(ManagementGoodsMaterials::getManagementId,list.getId());
|
List<ManagementGoodsMaterials> managementGoodsMaterials = managementGoodsMaterialsMapper.selectList(wrapper1);
|
list.setGoodsMaterialsNum(managementGoodsMaterials.size());
|
|
}
|
return InventoryVO;
|
}
|
}
|