rentaiming
2024-07-16 068f7367353f9f20debc65ec4be2209ae3b90ecd
ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlAuditServiceImpl.java
@@ -1,10 +1,30 @@
package com.ruoyi.management.service.impl;
import com.ruoyi.management.domain.SlAudit;
import com.ruoyi.management.mapper.SlAuditMapper;
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.ruoyi.management.domain.dto.AuditRecordListQuery;
import com.ruoyi.management.domain.dto.SlAuditDTO;
import com.ruoyi.management.domain.vo.SlAuditVO;
import com.ruoyi.management.domain.vo.SlEquipmentVO;
import com.ruoyi.management.mapper.*;
import com.ruoyi.management.service.SlAuditService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.management.service.SlStoreManagementService;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.domain.getVolumeProductionRkQuery;
import com.ruoyi.system.api.feignClient.SysUserClient;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
 * <p>
@@ -16,5 +36,189 @@
 */
@Service
public class SlAuditServiceImpl extends ServiceImpl<SlAuditMapper, SlAudit> implements SlAuditService {
    @Resource
    private SysUserClient sysUserClient;
    @Resource
    private SlStoreManagementService slStoreManagementService;
    @Resource
    private SlVolumeProductionRkglMapper slVolumeProductionRkglMapper;
    @Resource
    private SlVolumeProductionCkglMapper slVolumeProductionCKglMapper;
    @Resource
    private SlVolumeProductionZyglMapper slVolumeProductionZyglMapper;
    @Resource
    private SlAuditRecordMapper slAuditRecordMapper;
    @Override
    public PageDTO<SlAuditVO> getslAuditList(AuditRecordListQuery auditRecordListQuery) {
        Long userid = SecurityUtils.getUserId();
        SysUser data = sysUserClient.getSysUser(userid).getData();
        getVolumeProductionRkQuery getVolumeProductionRkQuer=new getVolumeProductionRkQuery();
        getVolumeProductionRkQuer.setSupplierName(auditRecordListQuery.getSysName());
        getVolumeProductionRkQuer.setSupplierPhone(auditRecordListQuery.getSysPhone());
        List<SysUser> data1 = sysUserClient.getUserSupplierList(getVolumeProductionRkQuer).getData();
        Set<Long> goodsSkuIdList = null;
        goodsSkuIdList = data1.stream().map(SysUser::getUserId)
                .collect(Collectors.toSet());
        Page<SlAudit> page = new Page<>(auditRecordListQuery.getPageCurr(), auditRecordListQuery.getPageSize());
        LambdaQueryWrapper< SlAudit> wrapper= Wrappers.lambdaQuery();
        if (goodsSkuIdList.size()>0){
            wrapper.in(SlAudit::getSysId,goodsSkuIdList);
        }else{
            Set<Long> goodsSkuIdList1 =new HashSet<>();
            goodsSkuIdList1.add(0L);
            wrapper.in(SlAudit::getSysId,goodsSkuIdList1);
        }
        if (!data.getUserType().equals(00)){
            wrapper.in(SlAudit::getShenhId,userid);
        }
        List state=new ArrayList<>();
        state.add(1);
        state.add(2);
        state.add(3);
        state.add(4);
        state.add(5);
        wrapper.eq(SlAudit::getState,state);
        wrapper.eq(SlAudit::getType,auditRecordListQuery.getType());
        wrapper.eq( SlAudit::getDelFlag,0);
        wrapper.orderByDesc(SlAudit::getCreateTime);
        Page<SlAudit> page1 = this.page(page, wrapper);
        PageDTO<SlAuditVO> slEquipmentVOPageDTO = PageDTO.of(page1, SlAuditVO.class);
        List<SlAuditVO> list = slEquipmentVOPageDTO.getList();
        for (SlAuditVO sl:list){
            SlAuditVO slAuditVO=new SlAuditVO();
            SysUser data2 = sysUserClient.getSysUser(sl.getSysId()).getData();
            slAuditVO.setSysPhone(data2.getPhonenumber());
            slAuditVO.setSysName(data2.getNickName());
            SlStoreManagement byId = slStoreManagementService.getById(sl.getManagementId());
            slAuditVO.setStoreManagementName(byId.getStoreManagementName());
            slAuditVO.setStoreManagementNo(byId.getStoreManagementNo());
            if (sl.getZymanagementId()!=null){
                SlStoreManagement byId1 = slStoreManagementService.getById(sl.getZymanagementId());
                slAuditVO.setBstoreManagementName(byId1.getStoreManagementName());
                slAuditVO.setBstoreManagementNo(byId1.getStoreManagementNo());
            }
        }
        return slEquipmentVOPageDTO;
    }
    @Override
    public void addslAudit(SlAuditDTO slAuditDTO) {
        LambdaQueryWrapper< SlAudit> wrapper= Wrappers.lambdaQuery();
        wrapper.eq(SlAudit::getRkId,slAuditDTO.getRkId());
        wrapper.eq(SlAudit::getType,slAuditDTO.getType());
        wrapper.eq( SlAudit::getDelFlag,0);
        wrapper.orderByDesc(SlAudit::getCreateTime);
        SlAudit page1 = this.getOne(wrapper);
        if (page1!=null){
            LambdaQueryWrapper<SlAuditRecord> wrapper1= Wrappers.lambdaQuery();
            wrapper1.eq(SlAuditRecord::getAuditId,page1.getId());
            List<SlAuditRecord> slAuditRecords = slAuditRecordMapper.selectList(wrapper1);
            for (SlAuditRecord lAuditRecord:slAuditRecords){
                slAuditRecordMapper.deleteById(lAuditRecord);
            }
            this.removeById(page1);
        }
        SlAudit slAudit=new SlAudit();
        slAudit.setType(slAuditDTO.getType());
        slAudit.setState(1);
        slAudit.setRkId(slAuditDTO.getRkId());
        if (slAudit.getType()==1){
            SlVolumeProductionRkgl slVolumeProductionRkgl = slVolumeProductionRkglMapper.selectById(slAuditDTO.getRkId());
            slAudit.setSysId(slVolumeProductionRkgl.getSysId());
            slAudit.setManagementId(slVolumeProductionRkgl.getManagementId());
            SlStoreManagement byId = slStoreManagementService.getById(slVolumeProductionRkgl.getManagementId());
            slAudit.setShenhId(byId.getAdministratorId());
            this.save(slAudit);
            SlAuditRecord slAuditRecord=new SlAuditRecord();
            slAuditRecord.setAuditId(slAudit.getId());
            slAuditRecord.setShenhId(byId.getAdministratorId());
            slAuditRecord.setType(1);
            slAuditRecord.setState(1);
            slAuditRecordMapper.insert(slAuditRecord);
            SlAuditRecord slAuditRecord1=new SlAuditRecord();
            slAuditRecord1.setAuditId(slAudit.getId());
            slAuditRecord1.setShenhId(byId.getCompetentId());
            slAuditRecord1.setType(2);
            slAuditRecord1.setState(1);
            slAuditRecordMapper.insert(slAuditRecord);
            SlAuditRecord slAuditRecord2=new SlAuditRecord();
            slAuditRecord2.setAuditId(slAudit.getId());
            slAuditRecord2.setShenhId(byId.getDirectorId());
            slAuditRecord2.setType(3);
            slAuditRecord2.setState(1);
            slAuditRecordMapper.insert(slAuditRecord);
        }
        if (slAudit.getType()==2){
            SlVolumeProductionCkgl slVolumeProductionCkgl = slVolumeProductionCKglMapper.selectById(slAuditDTO.getRkId());
            slAudit.setSysId(slVolumeProductionCkgl.getSysId());
            slAudit.setManagementId(slVolumeProductionCkgl.getManagementId());
            SlStoreManagement byId = slStoreManagementService.getById(slVolumeProductionCkgl.getManagementId());
            slAudit.setShenhId(byId.getAdministratorId());
            this.save(slAudit);
            SlAuditRecord slAuditRecord=new SlAuditRecord();
            slAuditRecord.setAuditId(slAudit.getId());
            slAuditRecord.setShenhId(byId.getAdministratorId());
            slAuditRecord.setType(1);
            slAuditRecord.setState(1);
            slAuditRecordMapper.insert(slAuditRecord);
            SlAuditRecord slAuditRecord1=new SlAuditRecord();
            slAuditRecord1.setAuditId(slAudit.getId());
            slAuditRecord1.setShenhId(byId.getCompetentId());
            slAuditRecord1.setType(2);
            slAuditRecord1.setState(1);
            slAuditRecordMapper.insert(slAuditRecord);
            SlAuditRecord slAuditRecord2=new SlAuditRecord();
            slAuditRecord2.setAuditId(slAudit.getId());
            slAuditRecord2.setShenhId(byId.getDirectorId());
            slAuditRecord2.setType(3);
            slAuditRecord2.setState(1);
            slAuditRecordMapper.insert(slAuditRecord);
        }
        if (slAudit.getType()==3){
            SlVolumeProductionZygl slVolumeProductionZygl = slVolumeProductionZyglMapper.selectById(slAuditDTO.getRkId());
            slAudit.setSysId(slVolumeProductionZygl.getSysId());
            slAudit.setManagementId(slVolumeProductionZygl.getManagementId());
            slAudit.setZymanagementId(slVolumeProductionZygl.getBmanagementId());
            SlStoreManagement byId = slStoreManagementService.getById(slVolumeProductionZygl.getManagementId());
            slAudit.setShenhId(byId.getAdministratorId());
            this.save(slAudit);
            SlAuditRecord slAuditRecord=new SlAuditRecord();
            slAuditRecord.setAuditId(slAudit.getId());
            slAuditRecord.setShenhId(byId.getAdministratorId());
            slAuditRecord.setType(1);
            slAuditRecord.setState(1);
            slAuditRecordMapper.insert(slAuditRecord);
            SlAuditRecord slAuditRecord1=new SlAuditRecord();
            slAuditRecord1.setAuditId(slAudit.getId());
            slAuditRecord1.setShenhId(byId.getCompetentId());
            slAuditRecord1.setType(2);
            slAuditRecord1.setState(1);
            slAuditRecordMapper.insert(slAuditRecord);
            SlAuditRecord slAuditRecord2=new SlAuditRecord();
            slAuditRecord2.setAuditId(slAudit.getId());
            slAuditRecord2.setShenhId(byId.getDirectorId());
            slAuditRecord2.setType(3);
            slAuditRecord2.setState(1);
            slAuditRecordMapper.insert(slAuditRecord);
        }
    }
}