src/main/java/com/ruoyi/procurementrecord/dto/ReturnSaleProductDto.java
@@ -15,5 +15,7 @@ private String unit; //未退货数量 private BigDecimal unReturn; private BigDecimal unQuantity; private BigDecimal totalReturnNum; } src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java
@@ -1,14 +1,11 @@ package com.ruoyi.procurementrecord.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.OrderUtils; import com.ruoyi.procurementrecord.dto.ReturnManagementDto; import com.ruoyi.procurementrecord.dto.ReturnSaleProductDto; import com.ruoyi.procurementrecord.mapper.ReturnManagementMapper; import com.ruoyi.procurementrecord.mapper.ReturnSaleProductMapper; import com.ruoyi.procurementrecord.pojo.ReturnManagement; import com.ruoyi.procurementrecord.pojo.ReturnSaleProduct; import com.ruoyi.procurementrecord.service.ReturnManagementService; @@ -17,22 +14,16 @@ import com.ruoyi.sales.dto.SalesLedgerProductDto; import com.ruoyi.sales.mapper.SalesLedgerMapper; import com.ruoyi.sales.pojo.SalesLedger; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.pojo.ShippingInfo; import com.ruoyi.sales.service.ISalesLedgerProductService; import com.ruoyi.sales.service.ShippingInfoService; import com.ruoyi.sales.service.impl.ShippingInfoServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * @author :yys @@ -55,10 +46,6 @@ @Override public IPage<ReturnManagementDto> listPage(Page page, ReturnManagementDto returnManagement) { IPage<ReturnManagementDto> returnManagementIPage = returnManagementMapper.listPage(page, returnManagement); for (ReturnManagementDto returnManagementDto : returnManagementIPage.getRecords()) { List<ReturnSaleProductDto> returnSaleProducts = returnSaleProductService.listReturnSaleProductDto(returnManagementDto.getId()); returnManagementDto.setReturnSaleProducts(returnSaleProducts); } return returnManagementIPage; } @@ -96,7 +83,7 @@ SalesLedgerDto salesLedgerDto = new SalesLedgerDto(); BeanUtils.copyProperties(salesLedger, salesLedgerDto); List<SalesLedgerProductDto> salesLedgerProductDtos = shippingInfoService.getReturnManagementDtoById(shippingId); List<SalesLedgerProductDto> salesLedgerProductDtos = shippingInfoService.getReturnManagementDtoById(byId.getId()); salesLedgerDto.setProductDtoData(salesLedgerProductDtos); return salesLedgerDto; } @@ -105,7 +92,8 @@ public boolean handle(Long returnManagementId) { ReturnManagement byId = this.getById(returnManagementId); byId.setStatus(1); return false; updateById(byId); return true; } @Override src/main/java/com/ruoyi/sales/mapper/ShippingInfoMapper.java
@@ -21,7 +21,7 @@ List<ShippingInfo> listAll(); List<SalesLedgerProductDto> getReturnManagementDtoById(Long shippingId); List<SalesLedgerProductDto> getReturnManagementDtoById(@Param("shippingId")Long shippingId); List<ShippingInfo> getShippingInfoByCustomerName(String customerName); src/main/java/com/ruoyi/sales/service/ShippingInfoService.java
@@ -7,6 +7,7 @@ import com.ruoyi.sales.dto.SalesLedgerProductDto; import com.ruoyi.sales.dto.ShippingInfoDto; import com.ruoyi.sales.pojo.ShippingInfo; import org.apache.ibatis.annotations.Param; import java.io.IOException; import java.util.List; @@ -22,7 +23,7 @@ boolean delete(List<Long> ids); List<SalesLedgerProductDto> getReturnManagementDtoById(Long shippingId); List<SalesLedgerProductDto> getReturnManagementDtoById( Long shippingId); List<ShippingInfo> getShippingInfoByCustomerName(String customerName); } src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -9,7 +9,6 @@ import com.ruoyi.common.enums.FileNameType; import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum; import com.ruoyi.other.service.impl.TempFileServiceImpl; import com.ruoyi.procurementrecord.dto.ReturnSaleProductDto; import com.ruoyi.procurementrecord.utils.StockUtils; import com.ruoyi.sales.dto.SalesLedgerProductDto; import com.ruoyi.sales.dto.ShippingInfoDto; @@ -112,7 +111,7 @@ @Override public List<SalesLedgerProductDto> getReturnManagementDtoById(Long shippingId) { return shippingInfoMapper.getReturnManagementDtoById(shippingId); return shippingInfoMapper.getReturnManagementDtoById(shippingId ); } src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -20,7 +20,7 @@ t2.tax_exclusive_total_price, t3.inbound_num as quantityStock from purchase_ledger t1 left join sales_ledger_product t2 on t1.id = t2.sales_ledger_id left join sales_ledger_product t2 on t1.id = t2.sales_ledger_id and slp.type = 2 left join procurement_record_storage t3 on t2.id = t3.sales_ledger_product_id where t1.purchase_contract_number = #{req.purchaseContractNumber} <if test="req.id != null and req.id != ''"> src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml
@@ -11,13 +11,22 @@ <result column="status" property="status" /> </resultMap> <select id="listReturnSaleProductDto" resultType="com.ruoyi.procurementrecord.dto.ReturnSaleProductDto"> select rsp.*, slp.product_category as product_name, slp.specification_model as model from return_sale_product rsp left join sales_ledger_product slp on rsp.return_sale_ledger_product_id = slp.id where rsp.return_management_id = #{returnManagementId} SELECT slp.product_category as product_name, slp.specification_model as model, rsp.*, GREATEST(slp.quantity - COALESCE(rs.total_return_num, 0), 0) AS un_quantity, COALESCE(rs.total_return_num, 0) AS total_return_num FROM return_sale_product rsp LEFT JOIN return_management rm ON rm.id = rsp.return_management_id LEFT JOIN shipping_info si ON si.id = rm.shipping_id LEFT JOIN sales_ledger_product slp ON si.sales_ledger_product_id = slp.id and slp.type = 1 LEFT JOIN (SELECT return_sale_ledger_product_id, SUM(num) AS total_return_num FROM return_sale_product WHERE 1 = 1 and return_management_id != #{returnManagementId} GROUP BY return_sale_ledger_product_id) rs ON rs.return_sale_ledger_product_id = slp.id where rm.id =#{returnManagementId} </select> </mapper> src/main/resources/mapper/production/ProductOrderMapper.xml
@@ -41,7 +41,7 @@ ) shipping_status_counts ON sl.id = shipping_status_counts.sales_ledger_id left join product_model pm on po.product_model_id = pm.id left join product p on pm.product_id = p.id left join sales_ledger_product slp on po.sale_ledger_product_id = slp.id left join sales_ledger_product slp on po.sale_ledger_product_id = slp.id and slp.type = 1 left join product_process_route ppr on po.id = ppr.product_order_id left join product_bom pb on pb.id = ppr.bom_id <where> src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml
@@ -22,7 +22,7 @@ FROM sales_ledger_production_accounting t4 LEFT JOIN sales_ledger T1 ON T1.id = t4.sales_ledger_id left join sales_ledger_product t3 on t4.sales_ledger_product_id = t3.id left join sales_ledger_product t3 on t4.sales_ledger_product_id = t3.id and slp.type = 1 <where> t3.type = 1 <if test="salesLedgerDto.schedulingUserName != null and salesLedgerDto.schedulingUserName != '' "> src/main/resources/mapper/production/SalesLedgerSchedulingMapper.xml
@@ -91,7 +91,7 @@ FROM sales_ledger_scheduling T2 LEFT JOIN sales_ledger T1 ON T1.id = T2.sales_ledger_id left join sales_ledger_product t3 on T2.sales_ledger_product_id = t3.id left join sales_ledger_product t3 on T2.sales_ledger_product_id = t3.id and slp.type = 1 <where> t3.type = 1 <if test="salesLedgerDto.status != null and salesLedgerDto.status != '' "> src/main/resources/mapper/production/SalesLedgerWorkMapper.xml
@@ -28,7 +28,7 @@ FROM sales_ledger_work t4 LEFT JOIN sales_ledger T1 ON T1.id = t4.sales_ledger_id left join sales_ledger_product t3 on t4.sales_ledger_product_id = t3.id left join sales_ledger_product t3 on t4.sales_ledger_product_id = t3.id and slp.type = 1 left join sales_ledger_scheduling t2 on t4.sales_ledger_scheduling_id = t2.id <where> t3.type = 1 src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
@@ -90,7 +90,7 @@ FROM invoice_ledger_file GROUP BY invoice_ledger_id ) T4 ON T4.invoice_ledger_id = T1.id LEFT JOIN sales_ledger_product T5 ON T2.sales_ledger_product_id = T5.id LEFT JOIN sales_ledger_product T5 ON T2.sales_ledger_product_id = T5.id and slp.type = 1 LEFT JOIN ( SELECT SUM(receipt_payment_amount) AS receipt_payment_amount_total, @@ -378,7 +378,7 @@ GROUP_CONCAT( name ORDER BY id ASC SEPARATOR ' | ') AS invoiceFileName FROM invoice_ledger_file GROUP BY invoice_ledger_id ) T4 ON T4.invoice_ledger_id = T1.id LEFT JOIN sales_ledger_product T5 ON T2.sales_ledger_product_id = T5.id LEFT JOIN sales_ledger_product T5 ON T2.sales_ledger_product_id = T5.id and slp.type = 1 LEFT JOIN ( SELECT SUM(receipt_payment_amount) AS receipt_payment_amount_total,invoice_ledger_id FROM receipt_payment GROUP BY invoice_ledger_id @@ -414,7 +414,7 @@ GROUP_CONCAT( name ORDER BY id ASC SEPARATOR ' | ') AS invoiceFileName FROM invoice_ledger_file GROUP BY invoice_ledger_id ) T4 ON T4.invoice_ledger_id = T1.id LEFT JOIN sales_ledger_product T5 ON T2.sales_ledger_product_id = T5.id LEFT JOIN sales_ledger_product T5 ON T2.sales_ledger_product_id = T5.id and slp.type = 1 LEFT JOIN ( SELECT SUM(receipt_payment_amount) AS receipt_payment_amount_total,invoice_ledger_id FROM receipt_payment GROUP BY invoice_ledger_id src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -31,7 +31,7 @@ left join production_product_main ppm on qi.product_main_id = ppm.id left join product_work_order pwo on ppm.work_order_id = pwo.id left join product_order po on pwo.product_order_id = po.id left join sales_ledger_product slp on po.sale_ledger_product_id = slp.id left join sales_ledger_product slp on po.sale_ledger_product_id = slp.id and slp.type = 1 where qi.product_main_id = #{productMainId} @@ -144,7 +144,7 @@ p.product_name, ps.unit_quantity * slp.quantity AS single_quantity FROM sales_ledger sl LEFT JOIN sales_ledger_product slp ON slp.sales_ledger_id = sl.id LEFT JOIN sales_ledger_product slp ON slp.sales_ledger_id = sl.id and slp.type = 1 LEFT JOIN product_model pm ON pm.id = slp.product_model_id LEFT JOIN product_bom pb ON pb.product_model_id = pm.id LEFT JOIN product_structure ps ON pb.id = ps.bom_id src/main/resources/mapper/sales/ShipmentApprovalMapper.xml
@@ -9,7 +9,7 @@ FROM shipment_approval sa LEFT JOIN shipping_info si ON sa.shipping_info_id = si.id LEFT JOIN sales_ledger sl ON sa.sales_ledger_id = sl.id LEFT JOIN sales_ledger_product slp ON sa.sales_ledger_product_id = slp.id LEFT JOIN sales_ledger_product slp ON sa.sales_ledger_product_id = slp.id and slp.type = 1 LEFT JOIN sys_user T2 ON sl.entry_person = T2.user_id <where> 1=1 src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -24,7 +24,7 @@ sl.customer_name FROM shipping_info s LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id LEFT JOIN sales_ledger_product slp ON s.sales_ledger_product_id = slp.id LEFT JOIN sales_ledger_product slp ON s.sales_ledger_product_id = slp.id and slp.type = 1 left join product_model pm on slp.product_model_id = pm.id left join product p on pm.product_id = p.id WHERE 1=1 @@ -61,22 +61,25 @@ <select id="getReturnManagementDtoById" resultType="com.ruoyi.sales.dto.SalesLedgerProductDto"> SELECT slp.*, slp.quantity - COALESCE(rs.total_return_num, 0) AS un_quantity, GREATEST(slp.quantity - COALESCE(rs.total_return_num, 0), 0) AS un_quantity, COALESCE(rs.total_return_num, 0) AS total_return_num FROM shipping_info si LEFT JOIN sales_ledger_product slp ON si.sales_ledger_product_id = slp.id LEFT JOIN sales_ledger_product slp ON si.sales_ledger_product_id = slp.id and slp.type = 1 LEFT JOIN ( SELECT return_sale_ledger_product_id, SUM(num) AS total_return_num FROM return_sale_product <where> <if test="productId != null"> AND return_sale_ledger_product_id = #{productId} </if> </where> FROM return_sale_product rsp left join return_management rm on rm.id = rsp.return_management_id left join shipping_info si on si.id = rm.shipping_id WHERE 1=1 GROUP BY return_sale_ledger_product_id ) rs ON rs.return_sale_ledger_product_id = slp.id <where> <if test="shippingId != null"> si.id = #{shippingId} </if> </where> </select> <select id="getShippingInfoByCustomerName" resultType="com.ruoyi.sales.pojo.ShippingInfo"> select * from shipping_info si