Эх сурвалжийг харах

其他收款已收金额改为应收金额,订单退库查询未出库货品明细接口

xuezizhuo 11 сар өмнө
parent
commit
0f0764c4df

+ 16 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/controller/ProductOutboundRecordController.java

@@ -195,4 +195,20 @@ public class ProductOutboundRecordController extends BaseController {
             util.exportExcel(response, productCodeListVOS, "出库明细");
         }
     }
+
+
+    /**
+     * 撤销出库明细记录
+     */
+    @GetMapping("/revocationOutboundDetails")
+    public TableDataInfo revocationOutboundDetails(@RequestParam String saleOrderNo) {
+        List<ProductCodeListVO> productCodeListVOS = new ArrayList<>();
+        ////根据销售单编号查询通知单编号
+        ProductInvoice productInvoice = productInvoiceService.selectProductInvoiceBySaleOrderNo(saleOrderNo);
+        if (productInvoice != null) {
+            startPage();
+            productCodeListVOS = productOutboundRecordService.revocationOutboundDetails(productInvoice.getNoticeNumber());
+        }
+        return getDataTable(productCodeListVOS);
+    }
 }

+ 6 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/ProductOutboundRecordMapper.java

@@ -135,4 +135,10 @@ public interface ProductOutboundRecordMapper
      */
     List<ProductOutboundRecord> selectProductOutboundRecordListByIds(List<Long> ids);
 
+
+    /**
+     * 根据通知单号查询出库明细过滤之前批次出库的货品信息
+     */
+    List<ProductCodeListVO> selectRevocationOutboundDetails(String noticeNumber);
+
 }

+ 8 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/IProductOutboundRecordService.java

@@ -90,4 +90,12 @@ public interface IProductOutboundRecordService {
      * @return
      */
     int removeErrorOutboundRecord(Long id);
+
+    /**
+     * 撤销出库明细记录
+     * @param saleOrderNo
+     * @return
+     */
+    List<ProductCodeListVO> revocationOutboundDetails(String saleOrderNo);
+
 }

+ 3 - 2
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/ProductInvoiceServiceImpl.java

@@ -147,7 +147,7 @@ public class ProductInvoiceServiceImpl implements IProductInvoiceService {
 
             for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList2) {
                 for (ProductInvoiceVO.SaleProductInfo saleProductInfo1 : saleProductInfoList1) {
-                    if (saleProductInfo1.getProductId().equals(saleProductInfo.getProductId()) && saleProductInfo1.getProductColor().equals(saleProductInfo.getProductColor())) {
+                    if (saleProductInfo1.getProductId().equals(saleProductInfo.getProductId())) {
                         saleProductInfoList.remove(saleProductInfo);
                     }
                 }
@@ -213,7 +213,8 @@ public class ProductInvoiceServiceImpl implements IProductInvoiceService {
 
         for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList2) {
             for (ProductInvoiceVO.SaleProductInfo saleProductInfo1 : saleProductInfoList1) {
-                if (saleProductInfo1.getProductId().equals(saleProductInfo.getProductId()) && saleProductInfo1.getProductColor().equals(saleProductInfo.getProductColor())) {
+//                if (saleProductInfo1.getProductId().equals(saleProductInfo.getProductId()) && saleProductInfo1.getProductColor().equals(saleProductInfo.getProductColor())) {
+                    if (saleProductInfo1.getProductId().equals(saleProductInfo.getProductId())) {
                     saleProductInfoList.remove(saleProductInfo);
                 }
             }

+ 5 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/ProductOutboundRecordServiceImpl.java

@@ -171,6 +171,11 @@ public class ProductOutboundRecordServiceImpl implements IProductOutboundRecordS
         return 1;
     }
 
+    @Override
+    public List<ProductCodeListVO> revocationOutboundDetails(String saleOrderNo) {
+        return productOutboundRecordMapper.selectRevocationOutboundDetails(saleOrderNo);
+    }
+
     @Override
     public List<ProductCodeListVO> outboundDetails(String noticeNumber) {
         return productOutboundRecordMapper.selectOutboundDetails(noticeNumber);

+ 2 - 2
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleAccountsReceivableDetailServiceImpl.java

@@ -282,14 +282,14 @@ public class SaleAccountsReceivableDetailServiceImpl implements ISaleAccountsRec
         Customer customer = customerMapper.selectCustomerById(saleAccountsReceivableDetail.getCustomerId());
         //客户余额
         Double amount = customer.getAmount();
-        amount += saleAccountsReceivableDetail.getReceivedAmount();
+        amount -= saleAccountsReceivableDetail.getReceivedAmount();
         customer.setAmount(handlingWeight(amount));
         customerMapper.updateCustomer(customer);
 
 
         for (SaleAccountsReceivableDetail detail : list){
             //如果是账务类型是收款或其他收款
-            if(detail.getAccountingType().equals("2") || detail.getAccountingType().equals("3")){
+            if(detail.getAccountingType().equals("2")){
                 //减后余额
                 Double addAmount = amount - detail.getReceivedAmount();
                 amount -= detail.getReceivedAmount();//已收

+ 4 - 4
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleOtherCollectionServiceImpl.java

@@ -124,8 +124,8 @@ public class SaleOtherCollectionServiceImpl implements ISaleOtherCollectionServi
         Customer customer = customerMapper.selectCustomerById(saleOtherCollection.getCustomerId());
         //客户余额
         Double amount = customer.getAmount();
-        //后余额
-        Double subtractAmount = amount - saleOtherCollection.getAmount();
+        //后余额
+        Double subtractAmount = amount + saleOtherCollection.getAmount();
         customer.setAmount(handlingWeight(subtractAmount));
         customerMapper.updateCustomer(customer);
 
@@ -137,8 +137,8 @@ public class SaleOtherCollectionServiceImpl implements ISaleOtherCollectionServi
         saleAccountsReceivableDetail.setBoxNum(0L); // 箱数
         saleAccountsReceivableDetail.setWeight(0.00);//重量
         saleAccountsReceivableDetail.setProductPrice(0.00);//单价
-        saleAccountsReceivableDetail.setAmountReceivable(0.00);//应收金额
-        saleAccountsReceivableDetail.setReceivedAmount(saleOtherCollection.getAmount());//已收金额
+        saleAccountsReceivableDetail.setReceivedAmount(0.00);//已收金额
+        saleAccountsReceivableDetail.setAmountReceivable(saleOtherCollection.getAmount());//应收金额
         saleAccountsReceivableDetail.setAmounts(handlingWeight(subtractAmount));//余额
         saleAccountsReceivableDetail.setPaymentMethod(saleOtherCollection.getPaymentMethod());//付款方式
         saleAccountsReceivableDetail.setBillingType("1");//开票类型

+ 19 - 0
zkqy-custom-business/src/main/resources/mapper/business/ProductOutboundRecordMapper.xml

@@ -417,4 +417,23 @@
         </foreach>
     </select>
 
+    <select id="selectRevocationOutboundDetails" parameterType="com.zkqy.business.domain.vo.ProductCodeListVO" resultMap="ProductCodeListResultVO">
+        SELECT
+            r.*,
+            p.product_name,
+            p.product_specifications,
+            r.product_colour AS product_color,
+            c.custom_name
+        FROM
+            {DBNAME}.product_outbound_record r
+                LEFT JOIN {DBNAME}.production p ON r.product_id = p.id
+            LEFT JOIN {DBNAME}.product_invoice pi ON r.notice_number = pi.notice_number
+            AND pi.del_flag = '0'
+            LEFT JOIN {DBNAME}.customer c ON pi.customer_id = c.id
+        where r.del_flag = '0'
+            and r.id not in (select outbound_record_id from {DBNAME}.product_outbound_record_batch where del_flag = '0' and notice_number = #{noticeNumber} )
+            and r.notice_number = #{noticeNumber}
+    </select>
+<!--    <select id="selectOutboundDetailsbyNoticeNumber"></select>-->
+
 </mapper>

+ 2 - 1
zkqy-custom-business/src/main/resources/mapper/business/SaleProductsMapper.xml

@@ -446,7 +446,8 @@
                sp.product_unit_price                                AS unitPrice,
                pt.product_type                                      AS productType,
                sp.remark                                            AS productRemark,
-               sp.product_number                                    AS actualWeight
+               sp.product_number                                    AS actualWeight,
+               sp.colours                                           AS productColor
         FROM {DBNAME}.sale_products sp
                         LEFT JOIN {DBNAME}.production pt
         ON sp.product_no = pt.product_no