From ce7582bd007b671dc311ee8511cc409230ef1b1c Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期二, 08 七月 2025 17:49:29 +0800 Subject: [PATCH] yys 1.出库管理-分页查询 2.出库管理-导出 3.出库管理-领用 4.出库台账-分页查询 5.出库台账-导出 6.出库台账-删除 7.库存管理-分页查询 8.库存管理-导出 9.库存管理-删除 --- src/main/java/com/ruoyi/framework/security/LoginUser.java | 5 src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java | 60 ++++++ src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java | 21 ++ src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java | 66 +++++++ src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java | 48 +++++ src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml | 47 +++++ src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java | 4 src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java | 22 ++ src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java | 92 ++++++++++ src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecord.java | 11 src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java | 26 ++ src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml | 4 src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java | 9 + src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java | 87 +++++++++ 14 files changed, 496 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ruoyi/framework/security/LoginUser.java b/src/main/java/com/ruoyi/framework/security/LoginUser.java index 3b020b0..bb91be1 100644 --- a/src/main/java/com/ruoyi/framework/security/LoginUser.java +++ b/src/main/java/com/ruoyi/framework/security/LoginUser.java @@ -161,6 +161,11 @@ return user.getUserName(); } + public String getNickName() + { + return user.getNickName(); + } + /** * 璐︽埛鏄惁鏈繃鏈�,杩囨湡鏃犳硶楠岃瘉 */ diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java index 078a489..6778afc 100644 --- a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java +++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java @@ -16,6 +16,7 @@ import com.ruoyi.quality.pojo.QualityInspect; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; @@ -43,18 +44,21 @@ @PostMapping("/add") @Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鏂板鍏ュ簱", businessType = BusinessType.INSERT) + @Transactional public AjaxResult add(@RequestBody ProcurementAddDto procurementDto) { return AjaxResult.success(procurementRecordService.add(procurementDto)); } @PostMapping("/update") @Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-淇敼鍏ュ簱", businessType = BusinessType.UPDATE) + @Transactional public AjaxResult updatePro(@RequestBody ProcurementUpdateDto procurementDto) { return AjaxResult.success(procurementRecordService.updatePro(procurementDto)); } @PostMapping("/del") @Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鍒犻櫎鍏ュ簱", businessType = BusinessType.DELETE) + @Transactional public AjaxResult deletePro(@RequestBody ProcurementUpdateDto procurementDto) { return AjaxResult.success(procurementRecordService.deletePro(procurementDto)); } diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java new file mode 100644 index 0000000..1a656be --- /dev/null +++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java @@ -0,0 +1,60 @@ +package com.ruoyi.procurementrecord.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.framework.aspectj.lang.annotation.Log; +import com.ruoyi.framework.aspectj.lang.enums.BusinessType; +import com.ruoyi.framework.web.controller.BaseController; +import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.procurementrecord.dto.ProcurementPageDto; +import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd; +import com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto; +import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto; +import com.ruoyi.procurementrecord.service.ProcurementRecordOutService; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; + +/** + * @author :yys + * @date : 2025/7/8 13:30 + */ +@RestController +@Api(tags = "閲囪喘鍑哄簱") +@RequestMapping("/stockmanagement") +public class ProcurementRecordOutController extends BaseController { + + @Autowired + private ProcurementRecordOutService procurementRecordOutService; + + @PostMapping("/stockout") + @Log(title = "閲囪喘鍏ュ簱-鍑哄簱绠$悊-鍑哄簱", businessType = BusinessType.INSERT) + public AjaxResult stockout(@RequestBody ProcurementRecordOutAdd procurementRecordOutAdd) { + return AjaxResult.success(procurementRecordOutService.stockout(procurementRecordOutAdd)); + } + + @GetMapping("/listPage") + @Log(title = "閲囪喘鍏ュ簱-鍑哄簱绠$悊-鍑哄簱鏌ヨ", businessType = BusinessType.OTHER) + public AjaxResult listPage(Page page, ProcurementRecordOutPageDto procurementDto) { + IPage<ProcurementRecordOutPageDto> result = procurementRecordOutService.listPage(page, procurementDto); + return AjaxResult.success(result); + } + + @PostMapping("/del") + @Log(title = "閲囪喘鍏ュ簱-鍑哄簱绠$悊-鍒犻櫎鍑哄簱", businessType = BusinessType.DELETE) + public AjaxResult deletePro(@RequestBody ProcurementUpdateDto procurementDto) { + return AjaxResult.success(procurementRecordOutService.deletePro(procurementDto)); + } + + /** + * 瀵煎嚭 + * @param response + */ + @PostMapping("/export") + public void export(HttpServletResponse response) { + procurementRecordOutService.export(response); + } + +} diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java index 37ab99e..8009463 100644 --- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java +++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java @@ -27,6 +27,8 @@ */ private String purchaseContractNumber; + private String salesLedgerProductId; + /** * 鍑哄叆搴撴暟閲� */ @@ -34,6 +36,13 @@ private BigDecimal inboundNum; /** + * 寰呭嚭搴撴暟閲� + */ + @Excel(name = "寰呭嚭搴撴暟閲�") + private BigDecimal inboundNum0; + + + /** * 鍑哄叆搴撴椂闂� */ @Excel(name = "鍏ュ簱鏃堕棿") diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java new file mode 100644 index 0000000..6c76cdd --- /dev/null +++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java @@ -0,0 +1,22 @@ +package com.ruoyi.procurementrecord.dto; + +import lombok.Data; + +/** + * @author :yys + * @date : 2025/7/8 13:34 + */ +@Data +public class ProcurementRecordOutAdd { + + private String quantity; + + private String time; + + private Integer id; + + private Integer userId; + + private Integer salesLedgerProductId; + +} diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java new file mode 100644 index 0000000..b0d8cad --- /dev/null +++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java @@ -0,0 +1,87 @@ +package com.ruoyi.procurementrecord.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.framework.aspectj.lang.annotation.Excel; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * @author :yys + * @date : 2025/7/8 14:13 + */ +@Data +public class ProcurementRecordOutPageDto { + + private Integer id; + + /** + * 鍑哄叆搴撴暟閲� + */ + @Excel(name = "鍑哄簱鏁伴噺") + private BigDecimal inboundNum; + + /** + * 鍑哄叆搴撴椂闂� + */ + @Excel(name = "鍑哄簱鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime createDate; + + /** + * 鍑哄叆搴撶敤鎴� + */ + @Excel(name = "鍑哄簱浜�") + private String createBy; + + /** + * 渚涘簲鍟嗗悕绉� + */ + @Excel(name = "渚涘簲鍟嗗悕绉�") + private String supplierName; + + + /** + * 浜у搧澶х被 + */ + @Excel(name = "浜у搧澶х被") + private String productCategory; + + /** + * 瑙勬牸鍨嬪彿 + */ + @Excel(name = "瑙勬牸鍨嬪彿") + private String specificationModel; + + /** + * 鍗曚綅 + */ + @Excel(name = "鍗曚綅") + private String unit; + + /** + * 绋庣巼 + */ + @Excel(name = "绋庣巼(%)") + private BigDecimal taxRate; + + /** + * 鍚◣鍗曚环 + */ + @Excel(name = "鍚◣鍗曚环") + private BigDecimal taxInclusiveUnitPrice; + + /** + * 鍚◣鎬讳环 + */ + @Excel(name = "鍚◣鎬讳环") + private BigDecimal taxInclusiveTotalPrice; + + /** + * 涓嶅惈绋庢�讳环 + */ + @Excel(name = "涓嶅惈绋庢�讳环") + private BigDecimal taxExclusiveTotalPrice; + +} diff --git a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java new file mode 100644 index 0000000..4a9390b --- /dev/null +++ b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java @@ -0,0 +1,21 @@ +package com.ruoyi.procurementrecord.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto; +import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author :yys + * @date : 2025/7/8 13:26 + */ +public interface ProcurementRecordOutMapper extends BaseMapper<ProcurementRecordOut> { + + IPage<ProcurementRecordOutPageDto> listPage(Page page,@Param("req") ProcurementRecordOutPageDto procurementDto); + + List<ProcurementRecordOutPageDto> list(); +} diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecord.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecord.java index 1c3e04d..562e1fe 100644 --- a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecord.java +++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecord.java @@ -34,21 +34,26 @@ private String inboundBatches; /** - * 鍑哄叆搴撴暟閲� + * 鍏ュ簱鏁伴噺 */ private BigDecimal inboundNum; /** - * 鍑哄叆搴撴椂闂� + * 鍏ュ簱鏃堕棿 */ private LocalDateTime createDate; /** - * 鍑哄叆搴撶敤鎴� + * 鍏ュ簱鐢ㄦ埛 */ private String createBy; /** + * 鍏ュ簱鐢ㄦ埛id + */ + private Long userId; + + /** * 绉熸埛ID */ private Long tenantId; diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java new file mode 100644 index 0000000..e4761a2 --- /dev/null +++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java @@ -0,0 +1,66 @@ +package com.ruoyi.procurementrecord.pojo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * @author :yys + * @date : 2025/7/8 13:24 + */ +@TableName("procurement_record_out") +@Data +@Builder +public class ProcurementRecordOut { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + /** + * 浜у搧淇℃伅琛╥d + */ + private Integer salesLedgerProductId; + + /** + * 鍏ュ簱id + */ + private Integer procurementRecordStorageId; + + /** + * 鍑哄簱鎵规 + */ + private String inboundBatches; + + /** + * 鍑哄嚭搴撴暟閲� + */ + private BigDecimal inboundNum; + + /** + * 鍑哄嚭搴撴椂闂� + */ + private LocalDateTime createDate; + + /** + * 鍑哄嚭搴撶敤鎴� + */ + private String createBy; + + /** + * 鍑哄嚭搴撶敤鎴穒d + */ + private Integer userId; + + /** + * 绉熸埛ID + */ + private Long tenantId; + +} diff --git a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java new file mode 100644 index 0000000..785efc4 --- /dev/null +++ b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java @@ -0,0 +1,26 @@ +package com.ruoyi.procurementrecord.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd; +import com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto; +import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto; +import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut; + +import javax.servlet.http.HttpServletResponse; + +/** + * @author :yys + * @date : 2025/7/8 13:28 + */ +public interface ProcurementRecordOutService extends IService<ProcurementRecordOut> { + + int stockout(ProcurementRecordOutAdd procurementRecordOutAdd); + + IPage<ProcurementRecordOutPageDto> listPage(Page page, ProcurementRecordOutPageDto procurementDto); + + int deletePro(ProcurementUpdateDto procurementDto); + + void export(HttpServletResponse response); +} diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java new file mode 100644 index 0000000..078d8f9 --- /dev/null +++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java @@ -0,0 +1,92 @@ +package com.ruoyi.procurementrecord.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +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.ProcurementPageDto; +import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd; +import com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto; +import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto; +import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper; +import com.ruoyi.procurementrecord.pojo.ProcurementRecord; +import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut; +import com.ruoyi.procurementrecord.service.ProcurementRecordOutService; +import com.ruoyi.project.system.domain.SysUser; +import com.ruoyi.project.system.mapper.SysUserMapper; +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; +import java.util.stream.Collectors; + +/** + * @author :yys + * @date : 2025/7/8 13:29 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class ProcurementRecordOutServiceImpl extends ServiceImpl<ProcurementRecordOutMapper, ProcurementRecordOut> implements ProcurementRecordOutService { + + public final ProcurementRecordOutMapper procurementRecordOutMapper; + + public final SysUserMapper sysUserMapper; + + @Override + public int stockout(ProcurementRecordOutAdd procurementRecordOutAdd) { + SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(procurementRecordOutAdd.getUserId().toString())); + if(sysUser == null){ + throw new RuntimeException("鍑哄簱浜轰笉瀛樺湪"); + } + // 鏌ヨ閲囪喘鍑哄簱鏁伴噺 + LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>(); + procurementRecordLambdaQueryWrapper.eq(ProcurementRecordOut::getProcurementRecordStorageId, procurementRecordOutAdd.getId()); + Long aLong = procurementRecordOutMapper.selectCount(procurementRecordLambdaQueryWrapper); + ProcurementRecordOut.ProcurementRecordOutBuilder procurementRecordOut = ProcurementRecordOut.builder() + .procurementRecordStorageId(procurementRecordOutAdd.getId()) + .salesLedgerProductId(procurementRecordOutAdd.getSalesLedgerProductId()) + .inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规") + .inboundNum(new BigDecimal(procurementRecordOutAdd.getQuantity())) + .createDate(LocalDateTime.now()) + .userId(procurementRecordOutAdd.getUserId()) + .createBy(sysUser.getNickName()) + .tenantId(sysUser.getTenantId()); + this.save(procurementRecordOut.build()); + return 0; + } + + @Override + public IPage<ProcurementRecordOutPageDto> listPage(Page page, ProcurementRecordOutPageDto procurementDto) { + return procurementRecordOutMapper.listPage(page, procurementDto); + } + + public List<ProcurementRecordOut> getProcurementRecordOutByIds(List<Integer> id) { + return procurementRecordOutMapper.selectBatchIds(id); + } + + @Override + public int deletePro(ProcurementUpdateDto procurementDto) { + List<ProcurementRecordOut> procurementRecordOutByIds = getProcurementRecordOutByIds(procurementDto.getIds()); + if(CollectionUtils.isEmpty(procurementRecordOutByIds)){ + throw new RuntimeException("鏈煡璇㈠埌閫変腑鐨勪汉"); + } + procurementRecordOutMapper.deleteBatchIds(procurementRecordOutByIds.stream().map(ProcurementRecordOut::getId).collect(Collectors.toList())); + return 0; + } + + @Override + public void export(HttpServletResponse response) { + List<ProcurementRecordOutPageDto> list =procurementRecordOutMapper.list(); + ExcelUtil<ProcurementRecordOutPageDto> util = new ExcelUtil<>(ProcurementRecordOutPageDto.class); + util.exportExcel(response, list, "鍑哄簱鍙拌处"); + } +} 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 6abb7cf..5590a6c 100644 --- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java +++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java @@ -9,7 +9,9 @@ import com.ruoyi.framework.security.LoginUser; import com.ruoyi.procurementrecord.dto.*; import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper; +import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper; import com.ruoyi.procurementrecord.pojo.ProcurementRecord; +import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut; import com.ruoyi.procurementrecord.service.ProcurementRecordService; import com.ruoyi.quality.pojo.QualityInspect; import com.ruoyi.sales.mapper.SalesLedgerProductMapper; @@ -35,6 +37,8 @@ public class ProcurementRecordServiceImpl extends ServiceImpl<ProcurementRecordMapper, ProcurementRecord> implements ProcurementRecordService { private final ProcurementRecordMapper procurementRecordMapper; + + private final ProcurementRecordOutMapper procurementRecordOutMapper; private final SalesLedgerProductMapper salesLedgerProductMapper; @@ -103,6 +107,13 @@ public int deletePro(ProcurementUpdateDto procurementDto) { List<ProcurementRecord> procurementRecordById = getProcurementRecordByIds(procurementDto.getIds()); procurementRecordMapper.deleteBatchIds(procurementRecordById.stream().map(ProcurementRecord::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; } @@ -128,6 +139,7 @@ .inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规") .inboundNum(detail.getInboundQuantity()) .createDate(LocalDateTime.now()) + .userId(loginUser.getUserId()) .tenantId(loginUser.getTenantId()) .createBy(procurementDto.getNickName()); this.save(procurementRecordBuilder.build()); @@ -146,7 +158,41 @@ @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; } } diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml index 70c6949..cf76a56 100644 --- a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml +++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml @@ -32,16 +32,16 @@ t3.purchase_contract_number, t2.product_category, t1.id, + t1.sales_ledger_product_id, t2.specification_model, t2.unit, - t2.quantity, - t2.quantity as quantity0, t2.tax_rate, t2.tax_inclusive_unit_price, t2.tax_inclusive_total_price, t2.tax_exclusive_total_price, t1.inbound_batches, t1.inbound_num, + t1.inbound_num as inboundNum0, t1.create_date, t1.create_by from procurement_record_storage t1 diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml new file mode 100644 index 0000000..8c35ffc --- /dev/null +++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper"> + + <select id="listPage" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto"> + select + t3.supplier_name, + t2.product_category, + t1.id, + t2.specification_model, + t2.unit, + t2.tax_rate, + t2.tax_inclusive_unit_price, + t2.tax_inclusive_total_price, + t2.tax_exclusive_total_price, + t1.inbound_num, + t1.create_date, + t1.create_by + from procurement_record_out t1 + left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id + left join purchase_ledger t3 on t3.id = t2.sales_ledger_id + <where> + 1 = 1 + <if test="req.supplierName != null and req.supplierName != ''"> + and t3.supplier_name like concat('%',#{req.supplierName},'%') + </if> + </where> + </select> + <select id="list" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto"> + select + t3.supplier_name, + t2.product_category, + t1.id, + t2.specification_model, + t2.unit, + t2.tax_rate, + t2.tax_inclusive_unit_price, + t2.tax_inclusive_total_price, + t2.tax_exclusive_total_price, + t1.inbound_num, + t1.create_date, + t1.create_by + from procurement_record_out t1 + left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id + left join purchase_ledger t3 on t3.id = t2.sales_ledger_id + </select> +</mapper> \ No newline at end of file -- Gitblit v1.9.3