| src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/dto/SimpleProductDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/mapper/sales/SalesLedgerProductMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.basic.dto.ProductDto; @@ -73,7 +74,9 @@ queryWrapper.eq(ProductModel::getProductId, productDto.getId()); queryWrapper.eq(productDto.getCreateUser() != null, ProductModel::getCreateUser, productDto.getCreateUser()); queryWrapper.eq(productDto.getDeptId() != null, ProductModel::getDeptId, productDto.getDeptId()); queryWrapper.in(productDto.getDeptIds() != null && productDto.getDeptIds().length > 0, ProductModel::getDeptId, Arrays.asList(productDto.getDeptIds())); if (ObjectUtils.isNotEmpty(productDto.getDeptIds())) { queryWrapper.in( ProductModel::getDeptId, Arrays.asList(productDto.getDeptIds())); } return productModelMapper.selectList(queryWrapper); } src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -349,9 +349,7 @@ } /*æ·»å çäº§æ ¸ç® åºåå·¥åºæ¯è®¡ä»¶è¿æ¯è®¡æ¶*/ BigDecimal workHours = (productProcess.getType() == 1) ? productProcess.getSalaryQuota().multiply(productQty) : productProcess.getSalaryQuota(); BigDecimal workHours = productProcess.getSalaryQuota(); SalesLedgerProductionAccounting salesLedgerProductionAccounting = SalesLedgerProductionAccounting.builder() .productMainId(productionProductMain.getId()) src/main/java/com/ruoyi/sales/dto/SimpleProductDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.ruoyi.sales.dto; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; /** * @author buhuazhen * @date 2026/4/15 * @email 3038525872@qq.com */ @Data @AllArgsConstructor @NoArgsConstructor public class SimpleProductDto implements Serializable { private Long id; private String productCategory; private String specificationModel; private Long productModelId; private String unit = ""; private String subUnit = ""; } src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductMapper.java
@@ -7,6 +7,7 @@ import com.ruoyi.purchase.dto.ProcurementBusinessSummaryDto; import com.ruoyi.sales.dto.LossProductModelDto; import com.ruoyi.sales.dto.SalesLedgerProductDto; import com.ruoyi.sales.dto.SimpleProductDto; import com.ruoyi.sales.pojo.SalesLedgerProduct; import org.apache.ibatis.annotations.Param; @@ -22,7 +23,7 @@ * @date 2025-05-08 */ public interface SalesLedgerProductMapper extends MyBaseMapper<SalesLedgerProduct> { List<SalesLedgerProduct> selectProduct(); List<SimpleProductDto> selectProduct(); List<SalesLedgerProduct> selectSalesLedgerProductList(@Param("salesLedgerProduct") SalesLedgerProduct salesLedgerProduct); src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -9,6 +9,7 @@ import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.web.domain.R; import com.ruoyi.sales.dto.SimpleProductDto; import com.ruoyi.sales.mapper.SalesLedgerProductMapper; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.stock.dto.StockInRecordDto; @@ -29,6 +30,7 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Optional; /** * <p> @@ -117,7 +119,7 @@ public R importStockInventory(MultipartFile file) { try { // æ¥è¯¢ææç产å List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectProduct(); List<SimpleProductDto> salesLedgerProducts = salesLedgerProductMapper.selectProduct(); ExcelUtil<StockInventoryExportData> util = new ExcelUtil<StockInventoryExportData>(StockInventoryExportData.class); List<StockInventoryExportData> list = util.importExcel(file.getInputStream()); @@ -127,12 +129,16 @@ list.forEach(dto -> { boolean matched = false; for (SalesLedgerProduct item : salesLedgerProducts) { for (SimpleProductDto item : salesLedgerProducts) { if (ObjectUtils.isEmpty(dto.getWarehouseCode())) { return; } if (item.getProductCategory().equals(dto.getProductName()) && item.getSpecificationModel().equals(dto.getModel())) { item.getSpecificationModel().equals(dto.getModel()) && Optional.ofNullable(item.getUnit()).orElse("").equals(dto.getUnit()) && Optional.ofNullable(item.getSubUnit()).orElse("").equals(dto.getSubUnit()) ) { StockInventoryDto stockInventoryDto = new StockInventoryDto(); stockInventoryDto.setWarehouseCode(dto.getWarehouseCode()); stockInventoryDto.setWarehouseName(dto.getWarehouseName()); @@ -149,8 +155,8 @@ } if (!matched) { // è®°å½æªå¹é çæ°æ® String unmatchedInfo = String.format("产ååç§°ï¼%sï¼è§æ ¼åå·ï¼%s", dto.getProductName(), dto.getModel()); String unmatchedInfo = String.format("产ååç§°ï¼%sï¼è§æ ¼åå·ï¼%s 主åä½ï¼%s è¾ åä½ï¼%s", dto.getProductName(), dto.getModel(), dto.getUnit(), dto.getSubUnit()); unmatchedRecords.add(unmatchedInfo); } }); src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -153,11 +153,14 @@ WHERE sl.id = #{salesLedegerId}) A group by a.model, a.product_name, a.unit </select> <select id="selectProduct" resultType="com.ruoyi.sales.pojo.SalesLedgerProduct"> <select id="selectProduct" resultType="com.ruoyi.sales.dto.SimpleProductDto"> select pm.id, p.product_name as product_category, pm.model as specification_model, pm.id as product_model_id pm.id as product_model_id, pm.unit, pm.sub_unit from product_model pm left join product p on pm.product_id = p.id </select>