src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
@@ -13,10 +13,12 @@ import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto; import com.ruoyi.procurementrecord.service.ProcurementRecordService; import com.ruoyi.purchase.dto.InvoicePurchaseReportDto; import com.ruoyi.quality.pojo.QualityInspect; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -51,6 +53,12 @@ return AjaxResult.success(procurementRecordService.updatePro(procurementDto)); } @PostMapping("/del") @Log(title = "采购入库-入库管理-删除入库", businessType = BusinessType.DELETE) public AjaxResult deletePro(@RequestBody ProcurementUpdateDto procurementDto) { return AjaxResult.success(procurementRecordService.deletePro(procurementDto)); } @GetMapping("/listPage") @Log(title = "采购入库-入库管理-入库查询", businessType = BusinessType.OTHER) public AjaxResult listPage(Page page, ProcurementPageDto procurementDto) { @@ -58,5 +66,14 @@ return AjaxResult.success(result); } /** * 导出 * @param response */ @PostMapping("/export") public void export(HttpServletResponse response) { procurementRecordService.export(response); } } src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
@@ -30,20 +30,20 @@ /** * 出入库数量 */ @Excel(name = "出入库数量") @Excel(name = "入库数量") private BigDecimal inboundNum; /** * 出入库时间 */ @Excel(name = "出入库时间") @Excel(name = "入库时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime createDate; /** * 出入库用户 */ @Excel(name = "出入库用户") @Excel(name = "入库人") private String createBy; /** @@ -74,7 +74,7 @@ /** * 税率 */ @Excel(name = "税率") @Excel(name = "税率(%)") private BigDecimal taxRate; /** src/main/java/com/ruoyi/procurementrecord/dto/ProcurementUpdateDto.java
@@ -3,6 +3,7 @@ import lombok.Data; import java.math.BigDecimal; import java.util.List; /** * @author :yys @@ -15,4 +16,6 @@ private BigDecimal quantityStock; private List<Integer> ids; } src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
@@ -25,4 +25,6 @@ List<ProcurementDto> listProcurementBySalesLedgerId(@Param("req") ProcurementDto procurementDto); IPage<ProcurementPageDto> listPage(Page page,@Param("req") ProcurementPageDto procurementDto); List<ProcurementPageDto> list(); } src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
@@ -9,6 +9,7 @@ import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto; import com.ruoyi.procurementrecord.pojo.ProcurementRecord; import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -23,4 +24,8 @@ IPage<ProcurementPageDto> listPage(Page page, ProcurementPageDto procurementDto); int updatePro(ProcurementUpdateDto procurementDto); int deletePro(ProcurementUpdateDto procurementDto); void export(HttpServletResponse response); } src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -5,11 +5,13 @@ 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.service.ProcurementRecordService; import com.ruoyi.quality.pojo.QualityInspect; import com.ruoyi.sales.mapper.SalesLedgerProductMapper; import com.ruoyi.sales.pojo.SalesLedgerProduct; import lombok.RequiredArgsConstructor; @@ -17,6 +19,7 @@ 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; @@ -58,6 +61,7 @@ // 如果没有相关的入库记录,跳过该条数据 if(CollectionUtils.isEmpty(collect1)){ dto.setQuantity0(dto.getQuantity()); continue; } @@ -72,14 +76,41 @@ return procurementDtos; } @Override public int updatePro(ProcurementUpdateDto procurementDto) { ProcurementRecord procurementRecord = procurementRecordMapper.selectById(procurementDto.getId()); public ProcurementRecord getProcurementRecordById(Integer id){ ProcurementRecord procurementRecord = procurementRecordMapper.selectById(id); if(procurementRecord == null) { throw new RuntimeException("未找到该采购入库记录"); } procurementRecord.setInboundNum(procurementDto.getQuantityStock()); return procurementRecordMapper.updateById(procurementRecord); return procurementRecord; } public List<ProcurementRecord> getProcurementRecordByIds(List<Integer> id){ List<ProcurementRecord> procurementRecord = procurementRecordMapper.selectBatchIds(id); if(procurementRecord == null) { throw new RuntimeException("未找到该采购入库记录"); } return procurementRecord; } @Override public int updatePro(ProcurementUpdateDto procurementDto) { ProcurementRecord procurementRecordById = getProcurementRecordById(procurementDto.getId()); procurementRecordById.setInboundNum(procurementDto.getQuantityStock()); return procurementRecordMapper.updateById(procurementRecordById); } @Override public int deletePro(ProcurementUpdateDto procurementDto) { List<ProcurementRecord> procurementRecordById = getProcurementRecordByIds(procurementDto.getIds()); procurementRecordMapper.deleteBatchIds(procurementRecordById.stream().map(ProcurementRecord::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 @@ -103,14 +134,14 @@ .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; } src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -11,6 +11,7 @@ t2.specification_model, t2.unit, t2.quantity, t2.quantity as quantity0, t2.tax_rate, t2.tax_inclusive_unit_price, t2.tax_inclusive_total_price, @@ -53,4 +54,26 @@ </if> </where> </select> <select id="list" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDto"> select t3.supplier_name, t3.purchase_contract_number, t2.product_category, t1.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.create_date, t1.create_by from procurement_record 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>