无关风月
2024-08-27 b5ef65d0103a71dc7af2b9be6d2ac43aca5bb726
ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyglServiceImpl.java
@@ -18,7 +18,9 @@
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.domain.getVolumeProductionRkQuery;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.sun.org.apache.bcel.internal.generic.NEW;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.*;
@@ -68,7 +70,6 @@
        Set<Long> goodsSkuIdList = null;
        goodsSkuIdList = data1.stream().map(SysUser::getUserId)
                .collect(Collectors.toSet());
        LambdaQueryWrapper< SlVolumeProductionZygl> wrapper1= Wrappers.lambdaQuery();
        if (slVolumeProductionZyQuery.getPresentState()!=null){
            wrapper1.eq(SlVolumeProductionZygl::getPresentState,slVolumeProductionZyQuery.getPresentState());
@@ -81,7 +82,8 @@
            wrapper1.in(SlVolumeProductionZygl::getSysId,goodsSkuIdList);
        }
        wrapper1.eq( SlVolumeProductionZygl::getDelFlag,0);
        wrapper1.orderByDesc(SlVolumeProductionZygl::getCreateTime);
//        wrapper1.ne(SlVolumeProductionZygl::getAuditStatus,7);
        wrapper1.orderByDesc(SlVolumeProductionZygl::getStartiTime);
        Page<SlVolumeProductionZygl> page2 = this.page(page, wrapper1);
        PageDTO<VolumeProductionzZyglVO> SlGoodsShelfDTO = PageDTO.of(page2, VolumeProductionzZyglVO .class);
@@ -136,6 +138,10 @@
    public VolumeProductionZyglInfoVO getVolumeProductionzZyglnfo(ManagementimgVolumeProductionZyQuery managementimgVolumeProductionZyQuery) {
        SlVolumeProductionZygl byId = this.getById(managementimgVolumeProductionZyQuery.getVolumeProductionzyglId());
        VolumeProductionZyglInfoVO v= BeanUtils.copyBean(byId, VolumeProductionZyglInfoVO.class);
        SlStoreManagement slStoreManagement2 = slStoreManagementMapper.selectById(byId.getManagementId());
        v.setZhuren(slStoreManagement2.getDirectorId());
        v.setZhuguan(slStoreManagement2.getCompetentId());
        v.setGuanliyuan(slStoreManagement2.getAdministratorId());
        SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId());
        v.setStoreManagementName(slStoreManagement.getStoreManagementName());
        SlStoreManagement bslStoreManagement = slStoreManagementMapper.selectById(byId.getBmanagementId());
@@ -144,7 +150,7 @@
        v.setSysName(data1.getNickName());
        v.setSysPhone(data1.getPhonenumber());
        // 查询楼层数据
        SlStoreManagement slStoreManagement1 = slStoreManagementMapper.selectById(byId.getManagementId());
        SlStoreManagement slStoreManagement1 = slStoreManagementMapper.selectById(byId.getBmanagementId());
        List<String> number = new ArrayList<>();
        for (Integer i = 1; i <= slStoreManagement1.getStoreManagementNumber(); i++) {
            switch (i){
@@ -160,23 +166,49 @@
            }
        }
        v.setNumber(number);
        if (managementimgVolumeProductionZyQuery.getStoreManagementNumber()==null){
            managementimgVolumeProductionZyQuery.setStoreManagementNumber(1);
        }
        QueryWrapper<SlGoodsShelf> eq = new QueryWrapper<SlGoodsShelf>()
                .eq("del_flag", "0")
                .eq("store_management_id", byId.getManagementId())
                .eq("store_management_id", byId.getBmanagementId())
                .eq("store_management_number",managementimgVolumeProductionZyQuery.getStoreManagementNumber());
        List<SlGoodsShelf> slGoodsShelves = slGoodsShelfMapper.selectList(eq);
        v.setGoodsShelfList(slGoodsShelves);
        // 查询物资列表
        LambdaQueryWrapper<SlVolumeProductionRk> wrapper2= Wrappers.lambdaQuery();
        wrapper2.eq(SlVolumeProductionRk::getManagementId,byId.getBmanagementId());
        if (managementimgVolumeProductionZyQuery.getShelfId() == null){
            managementimgVolumeProductionZyQuery.setShelfId(slGoodsShelves.get(0).getId());
        // 根据转移id 查询转移数据 收集入库ids
        LambdaQueryWrapper<SlVolumeProductionZy> wrapper = Wrappers.lambdaQuery();
        wrapper.eq(SlVolumeProductionZy::getZyglId, byId.getId());
        wrapper.eq(SlVolumeProductionZy::getDelFlag, 0);
        if (managementimgVolumeProductionZyQuery.getShelfId()==null){
            if (!slGoodsShelves.isEmpty()){
                wrapper.eq(SlVolumeProductionZy::getShelfId,slGoodsShelves.get(0).getId());
            }
        }else{
            wrapper.eq(SlVolumeProductionZy::getShelfId,managementimgVolumeProductionZyQuery.getShelfId());
        }
        if (managementimgVolumeProductionZyQuery.getStoreManagementNumber()==null){
            wrapper2.eq(SlVolumeProductionRk::getStoreManagementNumber,1);
            wrapper.eq(SlVolumeProductionZy::getStoreManagementNumber,1);
        }else{
            wrapper.eq(SlVolumeProductionZy::getStoreManagementNumber,managementimgVolumeProductionZyQuery.getStoreManagementNumber());
        }
        wrapper2.eq(SlVolumeProductionRk::getShelfId,managementimgVolumeProductionZyQuery.getShelfId());
        List<Long> collect = new ArrayList<>();
        if (StringUtils.hasLength(byId.getAuthorizationUrl())){
            collect = slVolumeProductionZyMapper.selectList(wrapper)
                    .stream().map(SlVolumeProductionZy::getScrkId).collect(Collectors.toList());
        }else{
            collect = slVolumeProductionZyMapper.selectList(wrapper)
                    .stream().map(SlVolumeProductionZy::getRkId).collect(Collectors.toList());
        }
        // 入库ids
        if (collect.isEmpty()){
            // 如果为空 那么插入-1 不查询数据
            collect.add(-1L);
        }
        // 查询物资列表
        LambdaQueryWrapper<SlVolumeProductionRk> wrapper2= Wrappers.lambdaQuery();
        wrapper2.in(SlVolumeProductionRk::getId,collect);
        wrapper2.eq( SlVolumeProductionRk::getDelFlag,0);
        wrapper2.orderByDesc(SlVolumeProductionRk::getCreateTime);
        List<SlVolumeProductionRk> page1 = slVolumeProductionRkMapper.selectList(wrapper2);
@@ -186,15 +218,39 @@
                .collect(Collectors.toSet());
        Page<SlVolumeProductionZy> page = new Page<>(managementimgVolumeProductionZyQuery.getPageCurr(), managementimgVolumeProductionZyQuery.getPageSize());
        LambdaQueryWrapper< SlVolumeProductionZy> wrapper1= Wrappers.lambdaQuery();
        wrapper1.eq(SlVolumeProductionZy::getDelFlag,0);
        wrapper1.eq(SlVolumeProductionZy::getZyglId,managementimgVolumeProductionZyQuery.getVolumeProductionzyglId());
        if (goodsSkuIdList.size()>0&&goodsSkuIdList!=null){
            wrapper1.in(SlVolumeProductionZy::getScrkId,goodsSkuIdList);
        if (managementimgVolumeProductionZyQuery.getShelfId()==null){
            if (!slGoodsShelves.isEmpty()) {
                wrapper1.eq(SlVolumeProductionZy::getShelfId, slGoodsShelves.get(0).getId());
            }
        }else{
            wrapper1.eq(SlVolumeProductionZy::getShelfId,managementimgVolumeProductionZyQuery.getShelfId());
        }
        if (managementimgVolumeProductionZyQuery.getStoreManagementNumber()==null){
            wrapper1.eq(SlVolumeProductionZy::getStoreManagementNumber,1);
        }else{
            wrapper1.eq(SlVolumeProductionZy::getStoreManagementNumber,managementimgVolumeProductionZyQuery.getStoreManagementNumber());
        }
        if (goodsSkuIdList.isEmpty()){
            goodsSkuIdList.add(-1L);
        }
        // 已经确认了转移
        if (StringUtils.hasLength(byId.getAuthorizationUrl())){
            wrapper1.in(SlVolumeProductionZy::getScrkId,goodsSkuIdList);
        }else{
            wrapper1.in(SlVolumeProductionZy::getRkId,goodsSkuIdList);
        }
        wrapper1.eq( SlVolumeProductionZy::getDelFlag,0);
        wrapper1.orderByDesc(SlVolumeProductionZy::getCreateTime);
        Page<SlVolumeProductionZy> page2 = slVolumeProductionZyMapper.selectPage(page, wrapper1);
        PageDTO<com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO> SlGoodsShelfDTO = PageDTO.of(page2, com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO.class);
        List<com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO> list2 = SlGoodsShelfDTO.getList();
        PageDTO<com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO> sl = PageDTO.of(page2, com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO.class);
        List<com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO> list2 = sl.getList();
        for(com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO list:list2) {
            SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(list.getRkId());
            list.setStoreManagementNumber(slVolumeProductionRk.getStoreManagementNumber());
@@ -203,24 +259,28 @@
            SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(slVolumeProductionRk.getMaterialsId());
            list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
            list.setIsConsume(slGoodsMaterials.getIsConsume());
            SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(slVolumeProductionRk.getShelfId());
            SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId());
            list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
            list.setShelfId(slGoodsShelf.getId());
            if(list.getScrkId()!=null){
                SlVolumeProductionRk slVolumeProductionRk1 = slVolumeProductionRkMapper.selectById(list.getScrkId());
                list.setStoreManagementNumber(slVolumeProductionRk1.getStoreManagementNumber());
                list.setRkNumber(slVolumeProductionRk1.getRkNumber());
                list.setZyNumber(slVolumeProductionRk1.getRkNumber());
            }
            list.setZkNum(list.getRepertoryZhai());
        }
        v.setList(SlGoodsShelfDTO);
        v.setList(sl);
        return v;
    }
    @Override
    public VolumeProductionZyglInventoryVO getVolumeProductionZyglnventory(Integer id) {
    public VolumeProductionZyglInventoryVO getVolumeProductionZyglnventory(String id) {
        SlVolumeProductionZygl byId = this.getById(id);
        VolumeProductionZyglInventoryVO vo = new VolumeProductionZyglInventoryVO();
        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());
@@ -289,26 +349,26 @@
    }
    @Override
    public void zy(Integer id) {
    public void zy(Long id,String authorizationUrl) {
        SlVolumeProductionZygl byId = this.getById(id);
        byId.setAuthorizationUrl(authorizationUrl);
        byId.setAuditStatus(6);
        byId.setPresentState(4);
        byId.setEndTime(new Date());
        this.updateById(byId);
        LambdaQueryWrapper<SlVolumeProductionZy> wrapper1 = Wrappers.lambdaQuery();
        wrapper1.eq(SlVolumeProductionZy::getZyglId, id);
        wrapper1.eq(SlVolumeProductionZy::getDelFlag, 0);
        wrapper1.orderByDesc(SlVolumeProductionZy::getCreateTime);
        List<SlVolumeProductionZy> page2 = slVolumeProductionZyMapper.selectList(wrapper1);
        for (SlVolumeProductionZy zy:page2){
            SlVolumeProductionRk slVolumeProductionRk=new SlVolumeProductionRk();
            slVolumeProductionRk.setMaterialsId(zy.getMaterialsId());
            slVolumeProductionRk.setStoreManagementNumber(zy.getStoreManagementNumber());
            slVolumeProductionRk.setManagementId(byId.getBmanagementId());
            slVolumeProductionRk.setRkNumber("CD-"+new Date().getTime());
            slVolumeProductionRk.setRkNum(Long.valueOf(zy.getZyNum()));
            slVolumeProductionRk.setShelfId(zy.getShelfId());
            slVolumeProductionRk.setRepertoryZhai(Long.valueOf(zy.getZyNum()));
            slVolumeProductionRk.setCreateTime(new Date());
            slVolumeProductionRkMapper.insert(slVolumeProductionRk);
            zy.setScrkId(slVolumeProductionRk.getId());
            slVolumeProductionZyMapper.updateById(zy);
        // 新入库ids
        List<Long> collect = page2.stream().map(SlVolumeProductionZy::getScrkId).collect(Collectors.toList());
        for (SlVolumeProductionZy zy : page2) {
            // 确认转移之后扣库存
            SlVolumeProductionRk slVolumeProductionRk1 = slVolumeProductionRkMapper.selectById(zy.getRkId());
            slVolumeProductionRk1.setRepertoryZhai(slVolumeProductionRk1.getRepertoryZhai()-Long.valueOf(zy.getZyNum()));
            slVolumeProductionRkMapper.updateById(slVolumeProductionRk1);
            // 给被转移入仓库加库存数量
            LambdaQueryWrapper<ManagementGoodsMaterials> wrapper2 = Wrappers.lambdaQuery();
            wrapper2.eq(ManagementGoodsMaterials::getGoodsMaterialsId,zy.getMaterialsId());
            wrapper2.eq(ManagementGoodsMaterials::getManagementId,byId.getBmanagementId());
@@ -321,6 +381,7 @@
                Long re1=repertoryZhai+Long.valueOf(zy.getZyNum());
                managementGoodsMaterials.setRepertorySum(re);
                managementGoodsMaterials.setRepertoryZhai(re1);
                managementGoodsMaterials.setRepertoryChu(0);
                managementGoodsMaterialsMapper.updateById(managementGoodsMaterials);
            }else{
                ManagementGoodsMaterials managementGoodsMaterials1=new ManagementGoodsMaterials();
@@ -328,9 +389,27 @@
                managementGoodsMaterials1.setGoodsMaterialsId(zy.getMaterialsId());
                managementGoodsMaterials1.setRepertoryZhai(Long.valueOf(zy.getZyNum()));
                managementGoodsMaterials1.setRepertorySum(Long.valueOf(zy.getZyNum()));
                managementGoodsMaterials1.setRepertoryChu(0);
                managementGoodsMaterials1.setCreateTime(new Date());
                managementGoodsMaterialsMapper.insert(managementGoodsMaterials1);
            }
            // 给转移仓库减去库存数量
            LambdaQueryWrapper<ManagementGoodsMaterials> wrapper3 = Wrappers.lambdaQuery();
            wrapper3.eq(ManagementGoodsMaterials::getGoodsMaterialsId,zy.getMaterialsId());
            wrapper3.eq(ManagementGoodsMaterials::getManagementId,byId.getManagementId());
            wrapper3.eq(ManagementGoodsMaterials::getDelFlag, 0);
            ManagementGoodsMaterials managementGoodsMaterials1 = managementGoodsMaterialsMapper.selectOne(wrapper3);
            if (managementGoodsMaterials1!=null){
                Long repertorySum = managementGoodsMaterials1.getRepertorySum();
                Long repertoryZhai = managementGoodsMaterials1.getRepertoryZhai();
                Long re=repertorySum-Long.valueOf(zy.getZyNum());
                Long re1=repertoryZhai-Long.valueOf(zy.getZyNum());
//                managementGoodsMaterials1.setRepertorySum(re);
                managementGoodsMaterials1.setRepertoryZhai(re1);
                managementGoodsMaterials1.setRepertoryChu(managementGoodsMaterials1.getRepertoryChu()+zy.getZyNum());
                managementGoodsMaterialsMapper.updateById(managementGoodsMaterials1);
            }
        }
    }
}