无关风月
2024-09-03 56dfe0d4bf81262622a1919cceb2b039fd356209
ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkServiceImpl.java
@@ -71,6 +71,7 @@
    @Autowired
    private SlVolumeProductionZyService slVolumeProductionZyService;
    @Autowired
    private SlVolumeProductionZyService slVolumeProductionZyglService;
@@ -80,7 +81,7 @@
        Page<SlVolumeProductionRk> page = new Page<>(managementimgVolumeProductionRkDTO.getPageCurr(), managementimgVolumeProductionRkDTO.getPageSize());
        LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery();
        wrapper1.like(SlVolumeProductionRk::getVolumeProductionRkglId,managementimgVolumeProductionRkDTO.getVolumeProductionRkglId());
        wrapper1.eq(SlVolumeProductionRk::getVolumeProductionRkglId,managementimgVolumeProductionRkDTO.getVolumeProductionRkglId());
        wrapper1.eq( SlVolumeProductionRk::getDelFlag,0);
        wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime);
        Page<SlVolumeProductionRk> page2 = this.page(page, wrapper1);
@@ -96,9 +97,16 @@
            if (data!=null){
                list.setSupplierName(data.getNickName());
            }
            SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId());
            if (slGoodsShelf!=null){
                list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
            StringBuilder stringBuilder = new StringBuilder();
            for (String s : list.getShelfId().split(",")) {
                SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(s);
                if (slGoodsShelf!=null){
                    stringBuilder.append(slGoodsShelf.getGoodsShelfName()).append(",");
                }
            }
            // 去除最后一位字符
            if (StringUtils.hasLength(stringBuilder.toString())){
                list.setGoodsShelfName(stringBuilder.substring(0, stringBuilder.length() - 1));
            }
            LambdaQueryWrapper<SlGoodsShelf> wrapper5= Wrappers.lambdaQuery();
            wrapper5.eq(SlGoodsShelf::getStoreManagementId,byId.getManagementId());
@@ -118,6 +126,9 @@
        LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery();
        wrapper1.eq(SlVolumeProductionRk::getMaterialsId,SlGoodsMaterialsSlVolumeProductionRkDTO.getSlGoodsMaterialsid());
        wrapper1.eq( SlVolumeProductionRk::getDelFlag,0);
        if (SlGoodsMaterialsSlVolumeProductionRkDTO.getStoreManagementNumber()!=null){
            wrapper1.eq(SlVolumeProductionRk::getStoreManagementNumber,SlGoodsMaterialsSlVolumeProductionRkDTO.getStoreManagementNumber());
        }
        wrapper1.eq(SlVolumeProductionRk::getManagementId,SlGoodsMaterialsSlVolumeProductionRkDTO.getId());
        wrapper1.isNotNull(SlVolumeProductionRk::getNewAddTime);
        wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime);
@@ -125,6 +136,12 @@
        PageDTO<ManagementimgVolumeProductionRkVO> SlGoodsShelfDTO = PageDTO.of(page2, ManagementimgVolumeProductionRkVO.class);
        List<ManagementimgVolumeProductionRkVO> list2 = SlGoodsShelfDTO.getList();
        for(ManagementimgVolumeProductionRkVO list:list2) {{
            if (list.getSupplierId()!=null){
                SysUser data = sysUserClient.getSysUser(list.getSupplierId()).getData();
                if (data!=null){
                    list.setSupplierName(data.getNickName());
                }
            }
            SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId());
            if (slGoodsMaterials!=null){
                list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
@@ -137,10 +154,16 @@
                    list.setSupplierName(data.getNickName());
                }
            }
            SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId());
            if (slGoodsShelf!=null){
                list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
            StringBuilder stringBuilder = new StringBuilder();
            for (String s : list.getShelfId().split(",")) {
                SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(s);
                if (slGoodsShelf!=null){
                    stringBuilder.append(slGoodsShelf.getGoodsShelfName()).append(",");
                }
            }
            // 去除最后一位字符
            if (StringUtils.hasLength(stringBuilder.toString())){
                list.setGoodsShelfName(stringBuilder.substring(0, stringBuilder.length() - 1));
            }
        }
        }
@@ -155,7 +178,8 @@
            slVolumeProductionRk.setVolumeProductionRkglId(m.getVolumeProductionRkglId());
            slVolumeProductionRk.setMaterialsId(m.getMaterialsId());
            slVolumeProductionRk.setManagementId(m.getManagementId());
            slVolumeProductionRk.setRkNumber("CD-"+simpleDateFormat.format(new Date())+UUIDUtil.getNumberRandom(2));
            SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(m.getMaterialsId());
            slVolumeProductionRk.setRkNumber(slGoodsMaterials.getGoodsMaterialsNo()+"-"+simpleDateFormat.format(new Date())+UUIDUtil.getNumberRandom(2));
            slVolumeProductionRk.setNewAddTime(m.getNewAddTime());
            if ( m.getErwmNum()!=null){
                slVolumeProductionRk.setErwmNum( m.getErwmNum());
@@ -183,9 +207,12 @@
    public void uplSlVolumeProductionRk(List<SlVolumeProductionRkDTO> SlVolumeProductionRkDTO) {
        for (SlVolumeProductionRkDTO a:SlVolumeProductionRkDTO){
            SlVolumeProductionRk byId = this.getById(a.getId());
            byId.setSmerwmNum(0);
//            byId.setSmerwmNum(0);
            if (a.getErwmNum()!=null){
                byId.setErwmNum(a.getErwmNum());
                if (byId.getErwmNum() == null){
                    byId.setErwmNum(0);
                }
                byId.setErwmNum(byId.getErwmNum()+a.getErwmNum());
            }if (a.getRkPice()!=null){
                byId.setRkPice(a.getRkPice());
            }if (a.getRkNum()!=null){
@@ -234,7 +261,7 @@
    }
    @Override
    public List<QRCodeVO> codeInfo(Long id) throws Exception {
    public List<QRCodeVO> codeInfo(Long id,Integer count) throws Exception {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        List<QRCodeVO> res = new ArrayList<>();
        LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery();
@@ -244,7 +271,7 @@
        List<SlVolumeProductionRk> list = this.list(wrapper1);
        for (SlVolumeProductionRk byId : list) {
            // 根据生成二维码数量 复制
            for (int i = 1; i <= byId.getErwmNum(); i++) {
            for (int i = 1; i <= count; i++) {
                String blueS = "{\"rkNumber\": "+byId.getRkNumber()+"}";
                BufferedImage blueImage = QRCodeUtil.createImage(blueS);
                MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG");
@@ -259,6 +286,8 @@
                SysUser data = sysUserClient.getSysUser(byId1.getSupplierId()).getData();
                if (data!=null){
                    vo.setSupplierName(data.getNickName());
                }else{
                    vo.setSupplierName("-");
                }
                vo.setMaterialsNum(byId.getRkNum());
                Long materialsId = byId.getMaterialsId();
@@ -400,6 +429,7 @@
        }if(meProductionRkQuery.getShelfId()!=null&&meProductionRkQuery.getShelfId()!=0){
            wrapper1.eq(SlVolumeProductionRk::getShelfId,meProductionRkQuery.getShelfId());
        }
        wrapper1.isNotNull(SlVolumeProductionRk::getNewAddTime);
        wrapper1.eq( SlVolumeProductionRk::getDelFlag,0);
        wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime);
        Page<SlVolumeProductionRk> page2 = this.page(page, wrapper1);
@@ -407,18 +437,96 @@
        List<ManagementimgVolumeProductionRkVO> list2 = SlGoodsShelfDTO.getList();
        for(ManagementimgVolumeProductionRkVO list:list2) {
            SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId());
            SlVolumeProductionRkgl byId = slVolumeProductionRkglMapper.selectById(list.getVolumeProductionRkglId());
            SysUser data = sysUserClient.getSysUser(byId.getSupplierId()).getData();
            list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
            list.setIsConsume(slGoodsMaterials.getIsConsume());
            if (data!=null){
                list.setSupplierName(data.getNickName());
            if (byId!=null){
                SysUser data = sysUserClient.getSysUser(byId.getSupplierId()).getData();
                if (data!=null){
                    list.setSupplierName(data.getNickName());
                }
            }
            if (slGoodsMaterials!=null){
                list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
                list.setIsConsume(slGoodsMaterials.getIsConsume());
            }else{
                continue;
            }
            SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId());
            list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
            if (slGoodsShelf!=null){
                list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
            }
        }
        return SlGoodsShelfDTO;
    }
    @Override
    public PageDTO<ManagementimgVolumeProductionRkVO> getroductionRkList1(umeProductionRkQueryA meProductionRkQuery) {
        LambdaQueryWrapper< SlGoodsMaterials> wrapper= Wrappers.lambdaQuery();
        if (meProductionRkQuery.getGoodsMaterialsName()!=null&&meProductionRkQuery.getGoodsMaterialsName()!=""){
            wrapper.like(SlGoodsMaterials::getGoodsMaterialsName,meProductionRkQuery.getGoodsMaterialsName());
        }
        if (meProductionRkQuery.getIsConsume()!=null && meProductionRkQuery.getIsConsume()!=0){
            wrapper.eq(SlGoodsMaterials::getIsConsume,meProductionRkQuery.getIsConsume());
        }
        wrapper.eq( SlGoodsMaterials::getDelFlag,0);
        List<SlGoodsMaterials> page1 = slGoodsMaterialsMapper.selectList(wrapper);
        if (page1.isEmpty()){
            return new PageDTO<ManagementimgVolumeProductionRkVO>();
        }
        Set<Long> goodsSkuIdList = null;
        goodsSkuIdList = page1.stream().map(SlGoodsMaterials::getId)
                .collect(Collectors.toSet());
        Page<SlVolumeProductionRk> page = new Page<>(meProductionRkQuery.getPageCurr(), meProductionRkQuery.getPageSize());
        LambdaQueryWrapper<SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery();
        if (meProductionRkQuery.getStoreManagementNumber()!=null){
            wrapper1.eq(SlVolumeProductionRk::getStoreManagementNumber,meProductionRkQuery.getStoreManagementNumber());
        }
        if(meProductionRkQuery.getStoreManagementId()!=null&&meProductionRkQuery.getStoreManagementId()!=0){
        wrapper1.eq(SlVolumeProductionRk::getManagementId,meProductionRkQuery.getStoreManagementId());
        }
        if (goodsSkuIdList.size()>0){
            wrapper1.in(SlVolumeProductionRk::getMaterialsId,goodsSkuIdList);
        }
        if(meProductionRkQuery.getShelfId()!=null&&meProductionRkQuery.getShelfId()!=0){
            wrapper1.eq(SlVolumeProductionRk::getShelfId,meProductionRkQuery.getShelfId());
        }
        wrapper1.isNotNull(SlVolumeProductionRk::getNewAddTime);
        wrapper1.eq( SlVolumeProductionRk::getDelFlag,0);
        wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime);
        Page<SlVolumeProductionRk> page2 = this.page(page, wrapper1);
        PageDTO<ManagementimgVolumeProductionRkVO> SlGoodsShelfDTO = PageDTO.of(page2, ManagementimgVolumeProductionRkVO.class);
        List<ManagementimgVolumeProductionRkVO> list2 = SlGoodsShelfDTO.getList();
        List<Long> wzIds = new ArrayList<>();
        List<ManagementimgVolumeProductionRkVO> res = new ArrayList<>();
        for(ManagementimgVolumeProductionRkVO list:list2) {
            if (wzIds.contains(list.getMaterialsId())){
                continue;
            }else{
                wzIds.add(list.getMaterialsId());
                res.add(list);
            }
            SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId());
            SlVolumeProductionRkgl byId = slVolumeProductionRkglMapper.selectById(list.getVolumeProductionRkglId());
            if (byId!=null){
                SysUser data = sysUserClient.getSysUser(byId.getSupplierId()).getData();
                if (data!=null){
                    list.setSupplierName(data.getNickName());
                }
            }
            if (slGoodsMaterials!=null){
                list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
                list.setIsConsume(slGoodsMaterials.getIsConsume());
            }else{
                continue;
            }
            SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId());
            if (slGoodsShelf!=null){
                list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
            }
        }
        SlGoodsShelfDTO.setList(res);
        return SlGoodsShelfDTO;
    }
@@ -426,7 +534,7 @@
    public PageDTO<gethuojRkVO> gethuojRkList(gethuojRkQuery gethuojRkQuery) {
        LambdaQueryWrapper< SlGoodsMaterials> wrapper= Wrappers.lambdaQuery();
        if (gethuojRkQuery.getGoodsMaterialsName()!=null&&gethuojRkQuery.getGoodsMaterialsName()!=""){
            wrapper.eq(SlGoodsMaterials::getGoodsMaterialsName,gethuojRkQuery.getGoodsMaterialsName());
            wrapper.like(SlGoodsMaterials::getGoodsMaterialsName,gethuojRkQuery.getGoodsMaterialsName());
        }
        wrapper.eq( SlGoodsMaterials::getDelFlag,0);
        List<SlGoodsMaterials> page1 = slGoodsMaterialsMapper.selectList(wrapper);
@@ -446,7 +554,7 @@
            wrapper1.in(SlVolumeProductionRk::getMaterialsId, goodsSkuIdList);
          }
        }
        wrapper1.eq(SlVolumeProductionRk::getShelfId,gethuojRkQuery.getGoodsShelid());
        wrapper1.like(SlVolumeProductionRk::getShelfId,gethuojRkQuery.getGoodsShelid());
        wrapper1.eq( SlVolumeProductionRk::getDelFlag,0);
        // 该字段用于标记是否入库
        wrapper1.isNotNull(SlVolumeProductionRk::getNewAddTime);
@@ -455,7 +563,6 @@
        PageDTO<gethuojRkVO> SlGoodsShelfDTO = PageDTO.of(page2, gethuojRkVO.class);
        List<gethuojRkVO> list2 = SlGoodsShelfDTO.getList();
        for(gethuojRkVO list:list2) {
            LambdaQueryWrapper<ManagementGoodsMaterials> wrapper2 = Wrappers.lambdaQuery();
            wrapper2.eq(ManagementGoodsMaterials::getGoodsMaterialsId,list.getMaterialsId());
            wrapper2.eq(ManagementGoodsMaterials::getManagementId,list.getManagementId());
@@ -463,12 +570,16 @@
            ManagementGoodsMaterials managementGoodsMaterials = managementGoodsMaterialsMapper.selectOne(wrapper2);
            if (managementGoodsMaterials != null){
                list.setRkPiceSum(list.getRkPice().multiply(new BigDecimal(managementGoodsMaterials.getRepertorySum())));
                list.setRepertorySum(managementGoodsMaterials.getRepertorySum());
                list.setRepertorySum(list.getRkNum()-managementGoodsMaterials.getRepertoryYishi());
            }else{
                list.setRkPiceSum(list.getRkPice().multiply(new BigDecimal(1)));
                list.setRepertorySum(0L);
            }
            if (list.getRepertorySum()!=null && list.getRepertoryYishi()!=null){
                list.setRepertorySum(list.getRepertorySum()-list.getRepertoryYishi());
            }else{
                list.setRepertorySum(list.getRepertorySum());
            }
            SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId());
            SlVolumeProductionRkgl byId = slVolumeProductionRkglMapper.selectById(list.getVolumeProductionRkglId());
            if (byId!=null){
@@ -483,10 +594,16 @@
                list.setIsConsume(slGoodsMaterials.getIsConsume());
            }
            SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId());
            if (slGoodsShelf!=null){
                list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
            StringBuilder stringBuilder = new StringBuilder();
            for (String s : list.getShelfId().split(",")) {
                SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(s);
                if (slGoodsShelf!=null){
                    stringBuilder.append(slGoodsShelf.getGoodsShelfName()).append(",");
                }
            }
            // 去除最后一位字符
            if (StringUtils.hasLength(stringBuilder.toString())){
                list.setGoodsShelfName(stringBuilder.substring(0, stringBuilder.length() - 1));
            }
        }
        return SlGoodsShelfDTO;