无关风月
2024-09-03 56dfe0d4bf81262622a1919cceb2b039fd356209
ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionCkglServiceImpl.java
@@ -1,8 +1,10 @@
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.domain.R;
import com.ruoyi.common.core.utils.page.BeanUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.common.security.utils.SecurityUtils;
@@ -15,6 +17,7 @@
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 io.swagger.models.auth.In;
import org.springframework.stereotype.Service;
@@ -54,21 +57,79 @@
    @Resource
    private ManagementGoodsMaterialsMapper managementGoodsMaterialsMapper;
    @Resource
    private LogClient logClient;
    @Override
    public PageDTO<VolumeProductionCkglVO> getslVolumeProductionCkglList(getslVolumeProductionCkglQuery VolumeProductionCkglQuery) {
        Page<SlVolumeProductionCkgl> page = new Page<>(VolumeProductionCkglQuery.getPageCurr(), VolumeProductionCkglQuery.getPageSize());
        LambdaQueryWrapper< SlVolumeProductionCkgl> wrapper1= Wrappers.lambdaQuery();
        QueryWrapper<SlStoreManagement> storeManagementGrade = new QueryWrapper<SlStoreManagement>()
                .eq("del_flag", "0");
        getVolumeProductionRkQuery getVolume=new getVolumeProductionRkQuery();
        getVolume.setSupplierPhone(VolumeProductionCkglQuery.getSupplierPhone());
        getVolume.setSupplierName(VolumeProductionCkglQuery.getSupplierName());
        List<SysUser> data1 = sysUserClient.getUserSupplierList(getVolume).getData();
        SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData();
        List<Long> managementIds = new ArrayList<>();
        if (sysUser!=null){
            if (!sysUser.getUserType().equals("00")){
                // 仓库管理员 根据仓库管理员的等级查询对应的仓库
                switch (sysUser.getRoleType()){
                    case 3:
                        storeManagementGrade.ge("store_management_grade",3);
                        storeManagementGrade.eq("city_code",sysUser.getCityCode());
                        managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream()
                                .map(SlStoreManagement::getId).collect(Collectors.toList());
                        if (!managementIds.isEmpty()){
                            wrapper1.in(SlVolumeProductionCkgl::getManagementId,managementIds);
                        }
                        break;
                    case 4:
                        storeManagementGrade.ge("store_management_grade",4);
                        storeManagementGrade.eq("county_code",sysUser.getCountyCode());
                        managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream()
                                .map(SlStoreManagement::getId).collect(Collectors.toList());
                        if (!managementIds.isEmpty()){
                            wrapper1.in(SlVolumeProductionCkgl::getManagementId,managementIds);
                        }
                        break;
                    case 5:
                        storeManagementGrade.ge("store_management_grade",5);
                        storeManagementGrade.eq("town_code",sysUser.getTownCode());
                        managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream()
                                .map(SlStoreManagement::getId).collect(Collectors.toList());
                        if (!managementIds.isEmpty()){
                            wrapper1.in(SlVolumeProductionCkgl::getManagementId,managementIds);
                        }
                        break;
                    case 6:
                        storeManagementGrade.eq("store_management_grade",6);
                        storeManagementGrade.eq("town_code",sysUser.getTownCode());
                        managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream()
                                .map(SlStoreManagement::getId).collect(Collectors.toList());
                        if (!managementIds.isEmpty()){
                            wrapper1.in(SlVolumeProductionCkgl::getManagementId,managementIds);
                        }
                        break;
                }
            }
        }
        Set<Long> goodsSkuIdList = null;
        goodsSkuIdList = data1.stream().map(SysUser::getUserId)
                .collect(Collectors.toSet());
        LambdaQueryWrapper< SlVolumeProductionCkgl> wrapper1= Wrappers.lambdaQuery();
        if (VolumeProductionCkglQuery.getPresentState()!=null &&VolumeProductionCkglQuery.getPresentState()!=0){
        wrapper1.eq(SlVolumeProductionCkgl::getPresentState,VolumeProductionCkglQuery.getPresentState());
        wrapper1.eq(SlVolumeProductionCkgl::getAuditStatus,VolumeProductionCkglQuery.getAuditStatus());
        }
        if (VolumeProductionCkglQuery.getAuditStatus()!=null &&VolumeProductionCkglQuery.getAuditStatus()!=0){
            wrapper1.eq(SlVolumeProductionCkgl::getAuditStatus,VolumeProductionCkglQuery.getAuditStatus());
        }
        if (goodsSkuIdList.size()>0){
            wrapper1.in(SlVolumeProductionCkgl::getSysId,goodsSkuIdList);
        }
@@ -79,7 +140,7 @@
        PageDTO<VolumeProductionCkglVO> SlGoodsShelfDTO = PageDTO.of(page2, VolumeProductionCkglVO .class);
        List<VolumeProductionCkglVO> list2 = SlGoodsShelfDTO.getList();
        for(VolumeProductionCkglVO list:list2){
            SysUser data = sysUserClient.getSysUser(list.getSupplierId()).getData();
            SysUser data = sysUserClient.getSysUser(list.getSysId()).getData();
            list.setNickName(data.getNickName());
            list.setPhonenumber(data.getPhonenumber());
            SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(list.getManagementId());
@@ -89,19 +150,22 @@
    }
    @Override
    public void addslVolumeProductionCkgl(VolumeProductionCkglDTO volumeProductionCkglDTO) {
    public String addslVolumeProductionCkgl(VolumeProductionCkglDTO volumeProductionCkglDTO) {
        Long userid = SecurityUtils.getUserId();
        if (volumeProductionCkglDTO.getId()!=null){
        if (volumeProductionCkglDTO.getId()==null){
            SlVolumeProductionCkgl slVolumeProductionRkgl=new  SlVolumeProductionCkgl();
            slVolumeProductionRkgl.setAttachmentUrl(volumeProductionCkglDTO.getAttachmentUrl());
            slVolumeProductionRkgl.setAuthorization(volumeProductionCkglDTO.getAuthorization());
            slVolumeProductionRkgl.setAuthorizationUrl(volumeProductionCkglDTO.getAuthorization());
            slVolumeProductionRkgl.setSource(volumeProductionCkglDTO.getSource());
            slVolumeProductionRkgl.setAuditStatus(1);
            slVolumeProductionRkgl.setManagementId(volumeProductionCkglDTO.getManagementId());
            slVolumeProductionRkgl.setPresentState(1);
            slVolumeProductionRkgl.setSource(volumeProductionCkglDTO.getSource());
            slVolumeProductionRkgl.setStartiTime(new Date());
            slVolumeProductionRkgl.setSysId(userid);
            slVolumeProductionRkgl.setCreateTime(new Date());
            this.save(slVolumeProductionRkgl);
            return slVolumeProductionRkgl.getId().toString();
        }else{
            SlVolumeProductionCkgl byId = this.getById(volumeProductionCkglDTO.getId());
            if (volumeProductionCkglDTO.getSource()!=null){
@@ -111,30 +175,37 @@
                byId.setAttachmentUrl(volumeProductionCkglDTO.getAttachmentUrl());
            }
            if (volumeProductionCkglDTO.getAuthorization()!=null){
                byId.setAuthorization(volumeProductionCkglDTO.getAuthorization());
                byId.setAuthorizationUrl(volumeProductionCkglDTO.getAuthorization());
            }
            this.updateById(byId);
            return volumeProductionCkglDTO.getId().toString();
        }
    }
    @Override
    public VolumeProductionCkglInfoVO getVolumeProductionCkglnfo(Integer id) {
    public VolumeProductionCkglInfoVO getVolumeProductionCkglnfo(Long id) {
        SlVolumeProductionCkgl byId = this.getById(id);
        VolumeProductionCkglInfoVO v= BeanUtils.copyBean(byId, VolumeProductionCkglInfoVO.class);
        v.setAuthorization(byId.getAuthorizationUrl());
        SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId());
        v.setStoreManagementName(slStoreManagement.getStoreManagementName());
        v.setZhuren(slStoreManagement.getDirectorId());
        v.setZhuguan(slStoreManagement.getCompetentId());
        v.setGuanliyuan(slStoreManagement.getAdministratorId());
        v.setReasonsRefusal(byId.getReasonsRefusal());
        SysUser data1 = sysUserClient.getSysUser(Long.valueOf(byId.getSysId())).getData();
        v.setSysName(data1.getNickName());
        v.setSysPhone(data1.getPhonenumber());
        return null;
        if (data1!=null){
            v.setSysName(data1.getNickName());
            v.setSysPhone(data1.getPhonenumber());
        }
        return v;
    }
    @Override
    public VolumeProductionCkglInventoryVO getVolumeProductionCkglInventory(Integer id) {
    public VolumeProductionCkglInventoryVO getVolumeProductionCkglInventory(Long id) {
        SlVolumeProductionCkgl byId = this.getById(id);
        VolumeProductionCkglInventoryVO vo = new VolumeProductionCkglInventoryVO();
        SysUser data = sysUserClient.getSysUser(byId.getId()).getData();
        SysUser data = sysUserClient.getSysUser(byId.getSysId()).getData();
        vo.setSysPhone(data.getPhonenumber());
        vo.setSysName(data.getNickName());
        vo.setStartiTime(byId.getStartiTime());
@@ -142,7 +213,7 @@
        vo.setStoreManagementName(slStoreManagement.getStoreManagementName());
        String directorId = slStoreManagement.getDirectorId();
        List<String> stri = Arrays.asList(directorId.split(","));
        String str1 = null;
        String str1 = "";
        if (stri.size() > 0) {
            for (String str : stri) {
                SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData();
@@ -153,7 +224,7 @@
        String competentId = slStoreManagement.getCompetentId();
        List<String> stri1 = Arrays.asList(competentId.split(","));
        String str11 = null;
        String str11 = "";
        if (stri1.size() > 0) {
            for (String str : stri1) {
                SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData();
@@ -164,7 +235,7 @@
        String administratorId = slStoreManagement.getAdministratorId();
        List<String> stri11 = Arrays.asList(administratorId.split(","));
        String str111 = null;
        String str111 = "";
        if (stri11.size() > 0) {
            for (String str : stri11) {
                SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData();
@@ -201,18 +272,19 @@
    }
    @Override
    public void ck(Integer id) {
    public void ck(Long id) {
        LambdaQueryWrapper<SlVolumeProductionCk> wrapper1 = Wrappers.lambdaQuery();
        wrapper1.eq(SlVolumeProductionCk::getCkglId, id);
        wrapper1.eq(SlVolumeProductionCk::getDelFlag, 0);
        wrapper1.orderByDesc(SlVolumeProductionCk::getCreateTime);
        List<SlVolumeProductionCk> page2 = slVolumeProductionCkMapper.selectList(wrapper1);
        for (SlVolumeProductionCk list : page2) {
            list.setCkTime(new Date());
            slVolumeProductionCkMapper.updateById(list);
            SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(list.getRkId());
            Long num =slVolumeProductionRk.getRepertoryZhai()-Long.valueOf(list.getCkNum());
            slVolumeProductionRk.setRepertoryZhai(num);
            slVolumeProductionRkMapper.updateById(slVolumeProductionRk);
            LambdaQueryWrapper<ManagementGoodsMaterials> wrapper2 = Wrappers.lambdaQuery();
            wrapper2.eq(ManagementGoodsMaterials::getGoodsMaterialsId,list.getMaterialsId());
            wrapper2.eq(ManagementGoodsMaterials::getManagementId,slVolumeProductionRk.getManagementId());
@@ -223,29 +295,32 @@
                Long re1=repertoryZhai-Long.valueOf(list.getCkNum());
                Integer num1= managementGoodsMaterials.getRepertoryChu()+list.getCkNum();
                managementGoodsMaterials.setRepertoryZhai(re1);
                managementGoodsMaterials.setCheckNum(num1);
                managementGoodsMaterials.setRepertoryChu(num1);
                managementGoodsMaterialsMapper.updateById(managementGoodsMaterials);
            }
        }
        SlVolumeProductionCkgl byId = this.getById(id);
        byId.setAuditStatus(6);
        byId.setEndTime(new Date());
        this.updateById(byId);
        logClient.savelong1();
    }
    @Override
    public void gh(Integer id) {
    public void gh(Long id) {
        LambdaQueryWrapper<SlVolumeProductionCk> wrapper1 = Wrappers.lambdaQuery();
        wrapper1.eq(SlVolumeProductionCk::getCkglId, id);
        wrapper1.eq(SlVolumeProductionCk::getDelFlag, 0);
        wrapper1.orderByDesc(SlVolumeProductionCk::getCreateTime);
        List<SlVolumeProductionCk> page2 = slVolumeProductionCkMapper.selectList(wrapper1);
        for (SlVolumeProductionCk list : page2) {
            list.setIsGh(2);
            list.setGhTime(new Date());
            slVolumeProductionCkMapper.updateById(list);
            SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(list.getRkId());
            Long num =slVolumeProductionRk.getRepertoryZhai()+Long.valueOf(list.getGuihNum());
            slVolumeProductionRk.setRepertoryZhai(num);
            slVolumeProductionRkMapper.updateById(slVolumeProductionRk);
            LambdaQueryWrapper<ManagementGoodsMaterials> wrapper2 = Wrappers.lambdaQuery();
            wrapper2.eq(ManagementGoodsMaterials::getGoodsMaterialsId,list.getMaterialsId());
            wrapper2.eq(ManagementGoodsMaterials::getManagementId,slVolumeProductionRk.getManagementId());
@@ -254,12 +329,18 @@
            if (managementGoodsMaterials!=null){
                Long repertoryZhai = managementGoodsMaterials.getRepertoryZhai();
                Long re1=repertoryZhai+Long.valueOf(list.getGuihNum());
                Integer m=managementGoodsMaterials.getCheckNum()-list.getCkNum();
                Integer m=managementGoodsMaterials.getRepertoryChu()-list.getGuihNum();
                Integer m1=list.getCkNum()-list.getGuihNum();
                Integer m2=managementGoodsMaterials.getRepertoryYishi()+m1;
                managementGoodsMaterials.setRepertoryChu(m);
                managementGoodsMaterials.setRepertoryZhai(re1);
                managementGoodsMaterials.setRepertoryYishi(m2);
                SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId());
                if (slGoodsMaterials != null) {
                    if (slGoodsMaterials.getIsConsume() == 1){
                        // 非消耗品才计算遗失
                        managementGoodsMaterials.setRepertoryYishi(m2);
                    }
                }
                managementGoodsMaterialsMapper.updateById(managementGoodsMaterials);
            }
        }