From ad2ac68dbc8499f3294390ee37756cd66f1fd601 Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期三, 09 七月 2025 09:29:42 +0800 Subject: [PATCH] yys 修改类名,字段名,增加修改字段信息 --- src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java | 139 ++++++++++++++++++++++++++++++++++++---------- 1 files changed, 108 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java index 112e168..92ef336 100644 --- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java +++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java @@ -5,18 +5,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.security.LoginUser; import com.ruoyi.procurementrecord.dto.*; import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper; -import com.ruoyi.procurementrecord.pojo.ProcurementRecord; +import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper; +import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage; +import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut; import com.ruoyi.procurementrecord.service.ProcurementRecordService; import com.ruoyi.sales.mapper.SalesLedgerProductMapper; -import com.ruoyi.sales.pojo.SalesLedgerProduct; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @@ -29,9 +32,11 @@ @Service @RequiredArgsConstructor @Slf4j -public class ProcurementRecordServiceImpl extends ServiceImpl<ProcurementRecordMapper, ProcurementRecord> implements ProcurementRecordService { +public class ProcurementRecordServiceImpl extends ServiceImpl<ProcurementRecordMapper, ProcurementRecordStorage> implements ProcurementRecordService { private final ProcurementRecordMapper procurementRecordMapper; + + private final ProcurementRecordOutMapper procurementRecordOutMapper; private final SalesLedgerProductMapper salesLedgerProductMapper; @@ -44,26 +49,27 @@ if(CollectionUtils.isEmpty( collect)){ return procurementDtos; } - LambdaQueryWrapper<ProcurementRecord> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>(); - procurementRecordLambdaQueryWrapper.in(ProcurementRecord::getSalesLedgerProductId, collect); - List<ProcurementRecord> procurementRecords = procurementRecordMapper.selectList(procurementRecordLambdaQueryWrapper); - if(CollectionUtils.isEmpty( procurementRecords)){ + LambdaQueryWrapper<ProcurementRecordStorage> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>(); + procurementRecordLambdaQueryWrapper.in(ProcurementRecordStorage::getSalesLedgerProductId, collect); + List<ProcurementRecordStorage> procurementRecordStorages = procurementRecordMapper.selectList(procurementRecordLambdaQueryWrapper); + if(CollectionUtils.isEmpty(procurementRecordStorages)){ return procurementDtos; } for (ProcurementDto dto : procurementDtos) { // 鏍规嵁閲囪喘鍙拌处ID绛涢�夊搴旂殑鍏ュ簱璁板綍 - List<ProcurementRecord> collect1 = procurementRecords.stream() - .filter(procurementRecord -> procurementRecord.getSalesLedgerProductId().equals(dto.getId())) + List<ProcurementRecordStorage> collect1 = procurementRecordStorages.stream() + .filter(procurementRecordStorage -> procurementRecordStorage.getSalesLedgerProductId().equals(dto.getId())) .collect(Collectors.toList()); // 濡傛灉娌℃湁鐩稿叧鐨勫叆搴撹褰曪紝璺宠繃璇ユ潯鏁版嵁 if(CollectionUtils.isEmpty(collect1)){ + dto.setQuantity0(dto.getQuantity()); continue; } // 璁$畻宸插叆搴撴暟閲忔�诲拰锛屽苟璁剧疆寰呭叆搴撴暟閲� BigDecimal totalInboundNum = collect1.stream() - .map(ProcurementRecord::getInboundNum) + .map(ProcurementRecordStorage::getInboundNum) .reduce(BigDecimal.ZERO, BigDecimal::add); // 寰呭叆搴撴暟閲� = 鎬绘暟閲� - 宸插叆搴撴暟閲� @@ -72,14 +78,50 @@ return procurementDtos; } - @Override - public int updatePro(ProcurementUpdateDto procurementDto) { - ProcurementRecord procurementRecord = procurementRecordMapper.selectById(procurementDto.getId()); - if(procurementRecord == null) { + public ProcurementRecordStorage getProcurementRecordById(Integer id){ + ProcurementRecordStorage procurementRecordStorage = procurementRecordMapper.selectById(id); + if(procurementRecordStorage == null) { throw new RuntimeException("鏈壘鍒拌閲囪喘鍏ュ簱璁板綍"); } - procurementRecord.setInboundNum(procurementDto.getQuantityStock()); - return procurementRecordMapper.updateById(procurementRecord); + return procurementRecordStorage; + } + + public List<ProcurementRecordStorage> getProcurementRecordByIds(List<Integer> id){ + List<ProcurementRecordStorage> procurementRecordStorage = procurementRecordMapper.selectBatchIds(id); + if(procurementRecordStorage == null) { + throw new RuntimeException("鏈壘鍒拌閲囪喘鍏ュ簱璁板綍"); + } + return procurementRecordStorage; + } + + @Override + public int updatePro(ProcurementUpdateDto procurementDto) { + ProcurementRecordStorage procurementRecordStorageById = getProcurementRecordById(procurementDto.getId()); + procurementRecordStorageById.setInboundNum(procurementDto.getQuantityStock()); + procurementRecordStorageById.setUpdateUser(SecurityUtils.getLoginUser().getUserId()); + procurementRecordStorageById.setUpdateTime(LocalDateTime.now()); + return procurementRecordMapper.updateById(procurementRecordStorageById); + } + + @Override + public int deletePro(ProcurementUpdateDto procurementDto) { + List<ProcurementRecordStorage> procurementRecordStorageById = getProcurementRecordByIds(procurementDto.getIds()); + procurementRecordMapper.deleteBatchIds(procurementRecordStorageById.stream().map(ProcurementRecordStorage::getId).collect(Collectors.toList())); + // 鍒犻櫎鎵�鏈夊搴旂殑鍑哄簱璁板綍 + LambdaQueryWrapper<ProcurementRecordOut> procurementRecordOutLambdaQueryWrapper = new LambdaQueryWrapper<>(); + procurementRecordOutLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, procurementDto.getIds()); + List<ProcurementRecordOut> procurementRecordOuts = procurementRecordOutMapper.selectList(procurementRecordOutLambdaQueryWrapper); + if(!CollectionUtils.isEmpty(procurementRecordOuts)){ + procurementRecordOutMapper.deleteBatchIds(procurementRecordOuts.stream().map(ProcurementRecordOut::getId).collect(Collectors.toList())); + } + return 0; + } + + @Override + public void export(HttpServletResponse response) { + List<ProcurementPageDto> list =procurementRecordMapper.list(); + ExcelUtil<ProcurementPageDto> util = new ExcelUtil<ProcurementPageDto>(ProcurementPageDto.class); + util.exportExcel(response, list, "鍏ュ簱鍙拌处"); } @Override @@ -88,36 +130,71 @@ // 鎵归噺鏂板 for (Details detail : procurementDto.getDetails()) { // 鏌ヨ閲囪喘鍏ュ簱鏁伴噺 - LambdaQueryWrapper<ProcurementRecord> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>(); - procurementRecordLambdaQueryWrapper.eq(ProcurementRecord::getSalesLedgerProductId, detail.getId()) - .eq(ProcurementRecord::getProcurementCategory, 1); + LambdaQueryWrapper<ProcurementRecordStorage> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>(); + procurementRecordLambdaQueryWrapper.eq(ProcurementRecordStorage::getSalesLedgerProductId, detail.getId()); Long aLong = procurementRecordMapper.selectCount(procurementRecordLambdaQueryWrapper); - ProcurementRecord.ProcurementRecordBuilder procurementRecordBuilder = ProcurementRecord.builder() + ProcurementRecordStorage.ProcurementRecordStorageBuilder procurementRecordBuilder = ProcurementRecordStorage.builder() .salesLedgerProductId(detail.getId()) - .procurementCategory(1) .inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规") .inboundNum(detail.getInboundQuantity()) - .createDate(LocalDateTime.now()) + .createTime(LocalDateTime.now()) + .createUser(loginUser.getUserId()) + .updateTime(LocalDateTime.now()) + .updateUser(loginUser.getUserId()) .tenantId(loginUser.getTenantId()) .createBy(procurementDto.getNickName()); this.save(procurementRecordBuilder.build()); // 鍏ュ簱鎴愬姛鍑忔帀閲囪喘鏁伴噺 - LambdaQueryWrapper<SalesLedgerProduct> salesLedgerProductLambdaQueryWrapper = new LambdaQueryWrapper<>(); - salesLedgerProductLambdaQueryWrapper.eq(SalesLedgerProduct::getId, detail.getId()); - SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectOne(salesLedgerProductLambdaQueryWrapper); - if(salesLedgerProduct == null){ - throw new RuntimeException("鏈壘鍒拌鍟嗗搧"); - } - salesLedgerProduct.setQuantity(salesLedgerProduct.getQuantity().subtract(detail.getInboundQuantity())); - salesLedgerProductMapper.updateById(salesLedgerProduct); +// LambdaQueryWrapper<SalesLedgerProduct> salesLedgerProductLambdaQueryWrapper = new LambdaQueryWrapper<>(); +// salesLedgerProductLambdaQueryWrapper.eq(SalesLedgerProduct::getId, detail.getId()); +// SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectOne(salesLedgerProductLambdaQueryWrapper); +// if(salesLedgerProduct == null){ +// throw new RuntimeException("鏈壘鍒拌鍟嗗搧"); +// } +// salesLedgerProduct.setQuantity(salesLedgerProduct.getQuantity().subtract(detail.getInboundQuantity())); +// salesLedgerProductMapper.updateById(salesLedgerProduct); } return 1; } @Override public IPage<ProcurementPageDto> listPage(Page page, ProcurementPageDto procurementDto) { - return procurementRecordMapper.listPage(page,procurementDto); + IPage<ProcurementPageDto> procurementPageDtoIPage = procurementRecordMapper.listPage(page, procurementDto); + List<ProcurementPageDto> procurementPageDtos = procurementPageDtoIPage.getRecords(); + // 璁$畻寰呭叆搴撴暟閲� + // 鏌ヨ閲囪喘璁板綍宸插叆搴撴暟閲� + List<Integer> collect = procurementPageDtos.stream().map(ProcurementPageDto::getId).collect(Collectors.toList()); + if(CollectionUtils.isEmpty( collect)){ + return procurementPageDtoIPage; + } + LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>(); + procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect); + List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper); + if(CollectionUtils.isEmpty( procurementRecords)){ + return procurementPageDtoIPage; + } + for (ProcurementPageDto dto : procurementPageDtos) { + // 鏍规嵁閲囪喘鍙拌处ID绛涢�夊搴旂殑鍑哄簱璁板綍 + List<ProcurementRecordOut> collect1 = procurementRecords.stream() + .filter(ProcurementRecordOut -> ProcurementRecordOut.getProcurementRecordStorageId().equals(dto.getId())) + .collect(Collectors.toList()); + + // 濡傛灉娌℃湁鐩稿叧鐨勫嚭搴撹褰曪紝璺宠繃璇ユ潯鏁版嵁 + if(CollectionUtils.isEmpty(collect1)){ + dto.setInboundNum0(dto.getInboundNum()); + continue; + } + + // 璁$畻宸插嚭搴撴暟閲忔�诲拰锛屽苟璁剧疆寰呭嚭搴撴暟閲� + BigDecimal totalInboundNum = collect1.stream() + .map(ProcurementRecordOut::getInboundNum) + .reduce(BigDecimal.ZERO, BigDecimal::add); + + // 寰呭嚭搴撴暟閲� = 鎬绘暟閲� - 宸插嚭搴撴暟閲� + dto.setInboundNum0(dto.getInboundNum().subtract(totalInboundNum)); + } + return procurementPageDtoIPage; } } -- Gitblit v1.9.3