Jelajahi Sumber

修改驳回接口

xuezizhuo 11 bulan lalu
induk
melakukan
046e95a503

+ 8 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/ProductOutboundRecordBatchMapper.java

@@ -80,4 +80,12 @@ public interface ProductOutboundRecordBatchMapper
      */
     List<Long> selectOutboundRecordIdByBatchNumber(@Param("batchNumber") Long batchNumber,@Param("noticeNumber") String noticeNumber);
 
+    /**
+     * 删除成品出库记录批次
+     *
+     * @param outboundRecordId
+     * @return 结果
+     */
+    int deleteProductOutboundRecordBatchByOutBoundRecordId(Long outboundRecordId);
+
 }

+ 8 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/SaleAccountsReceivableDetailMapper.java

@@ -2,6 +2,7 @@ package com.zkqy.business.mapper;
 
 import java.util.List;
 import com.zkqy.business.domain.SaleAccountsReceivableDetail;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 应收帐明细Mapper接口
@@ -75,4 +76,11 @@ public interface SaleAccountsReceivableDetailMapper
      */
     List<SaleAccountsReceivableDetail> selectAccountsReceivableDetailList(SaleAccountsReceivableDetail saleAccountsReceivableDetail);
 
+    /**
+     * 查询当前客户某个明细后所有的明细
+     * @param customerId 客户编号
+     * @param id 编号
+     * @return
+     */
+    List<SaleAccountsReceivableDetail> selectAfterAccountsReceivableDetailList(@Param("customerId") Long customerId,@Param("id") Long id);
 }

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

@@ -2,6 +2,8 @@ package com.zkqy.business.service.impl;
 
 import java.text.DecimalFormat;
 import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 import com.zkqy.business.domain.*;
 import com.zkqy.business.domain.vo.FinishedProductInvoiceVo;
@@ -65,7 +67,24 @@ public class SaleAccountsReceivableDetailServiceImpl implements ISaleAccountsRec
     @Override
     public List<SaleAccountsReceivableDetail> selectSaleAccountsReceivableDetailList(SaleAccountsReceivableDetail saleAccountsReceivableDetail)
     {
-        return saleAccountsReceivableDetailMapper.selectSaleAccountsReceivableDetailList(saleAccountsReceivableDetail);
+        List<SaleAccountsReceivableDetail> list = saleAccountsReceivableDetailMapper.selectSaleAccountsReceivableDetailList(saleAccountsReceivableDetail);
+        if(saleAccountsReceivableDetail.getStatus().equals("1")){
+            //获取客户编号
+            Set<Long> customerIds = list.stream().map(SaleAccountsReceivableDetail::getCustomerId).collect(Collectors.toSet());
+            for (Long customerId : customerIds){
+                Customer customer = customerMapper.selectCustomerById(customerId);
+                //查询客户余额
+                Double amount = customer.getAmount();
+                for (SaleAccountsReceivableDetail detail : list){
+                    if (detail.getCustomerId().equals(customerId)){
+                        amount += detail.getAmountReceivable();
+                        detail.setAmounts(handlingWeight(amount));
+                    }
+                }
+
+            }
+        }
+        return list;
     }
 
     /**
@@ -255,17 +274,18 @@ public class SaleAccountsReceivableDetailServiceImpl implements ISaleAccountsRec
         saleAccountsReceivableDetailMapper.deleteSaleAccountsReceivableDetailById(saleAccountsReceivableDetail.getId());
 
         // 计算客户余额
-        //查询该客户所有的应收帐明细
-        SaleAccountsReceivableDetail saleAccountsReceivableDetail1 = new SaleAccountsReceivableDetail();
-        saleAccountsReceivableDetail1.setCustomerId(saleAccountsReceivableDetail.getCustomerId());
-        saleAccountsReceivableDetail1.setStatus("2");//审核通过明细
-        List<SaleAccountsReceivableDetail> list = saleAccountsReceivableDetailMapper.selectAccountsReceivableDetailList(saleAccountsReceivableDetail1);
+        //查询该客户当前明细后所有的应收帐明细
+        List<SaleAccountsReceivableDetail> list = saleAccountsReceivableDetailMapper.selectAfterAccountsReceivableDetailList(saleAccountsReceivableDetail.getCustomerId(),saleAccountsReceivableDetail.getId());
 
 
         //根据客户编号查询客户信息和余额
         Customer customer = customerMapper.selectCustomerById(saleAccountsReceivableDetail.getCustomerId());
         //客户余额
-        Double amount = 0.0;
+        Double amount = customer.getAmount();
+        amount += saleAccountsReceivableDetail.getReceivedAmount();
+        customer.setAmount(handlingWeight(amount));
+        customerMapper.updateCustomer(customer);
+
 
         for (SaleAccountsReceivableDetail detail : list){
             //如果是账务类型是收款或其他收款
@@ -285,10 +305,7 @@ public class SaleAccountsReceivableDetailServiceImpl implements ISaleAccountsRec
             }
         }
 
-        // 修改客户余额
-        customer.setAmount(amount);
-
-        return customerMapper.updateCustomer(customer);
+        return 1;
     }
 
     @Transactional
@@ -306,14 +323,10 @@ public class SaleAccountsReceivableDetailServiceImpl implements ISaleAccountsRec
                 productOutboundRecord.getProductColour().equals(saleAccountsReceivableDetail.getProductColour()) &&
                     productOutboundRecord.getLevels().equals(saleAccountsReceivableDetail.getProductLevel()) &&
                             productOutboundRecord.getLotNum().equals(saleAccountsReceivableDetail.getLotNumber())){
-
-
+                // 删除当前出库编号
+                productOutboundRecordBatchMapper.deleteProductOutboundRecordBatchByOutBoundRecordId(productOutboundRecord.getId());
             }
-
-
         }
-
-
         // 删除收款明细
         saleAccountsReceivableDetailMapper.deleteSaleAccountsReceivableDetailById(saleAccountsReceivableDetail.getId());
 

+ 4 - 0
zkqy-custom-business/src/main/resources/mapper/business/ProductOutboundRecordBatchMapper.xml

@@ -130,4 +130,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           AND batch_number = #{batchNumber}
     </select>
 
+    <delete id="deleteProductOutboundRecordBatchByOutBoundRecordId" parameterType="Long">
+        update {DBNAME}.product_outbound_record_batch set del_flag = '2' where outboundRecordId = #{outboundRecordId} and del_flag = '0'
+    </delete>
+
 </mapper>

+ 7 - 0
zkqy-custom-business/src/main/resources/mapper/business/SaleAccountsReceivableDetailMapper.xml

@@ -77,6 +77,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="accountsReceivableRemark != null  and accountsReceivableRemark != ''"> and sard.accounts_receivable_remark like concat('%', #{accountsReceivableRemark}, '%')</if>
         <if test="returnReceipt != null  and returnReceipt != ''"> and sard.return_receipt = #{returnReceipt}</if>
         <if test="status != null and status != ''">and sard.status in ( #{status} )</if>
+        order by sard.id asc
     </select>
     
     <select id="selectSaleAccountsReceivableDetailById" parameterType="Long" resultMap="SaleAccountsReceivableDetailResult">
@@ -326,4 +327,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by id asc
     </select>
 
+    <select id="selectAfterAccountsReceivableDetailList" resultMap="SaleAccountsReceivableDetailResult">
+        <include refid="selectSaleAccountsReceivableDetailVo"></include>
+        where del_flag = '0' and status = '2' and customer_id = #{customerId} and id &lt;#{id}
+        order by id asc
+    </select>
+
 </mapper>

+ 6 - 6
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/CommonServiceImpl.java

@@ -433,12 +433,12 @@ public class CommonServiceImpl implements ICommonService {
         //循环前端传过来的参数 跳过 sqlkey
         AtomicReference<String> replaceSql = new AtomicReference<>(tableSql.getTableCondition());
         queryMap.forEach((k, v) -> {
-            if (!k.equals("sqlkey") && !k.equals("queryCriteriaValue")) { //查询第一个表的数据是不会进行任何替换的
-                int isExistIndex = tableSql.getTableCondition().indexOf(k);
-                replaceSql.set(tableSql.getTableCondition().replace(k, v.toString()));
-                if (isExistIndex < 0) {
-                    isExist.set(false);
-                }
+            if (!k.equals("sqlkey") && !k.equals("queryCriteriaValue")&&!k.equals("timehorizon")) { //查询第一个表的数据是不会进行任何替换的
+                    int isExistIndex = tableSql.getTableCondition().indexOf(k);
+                    replaceSql.set(tableSql.getTableCondition().replace(k, v.toString()));
+                    if (isExistIndex < 0) {
+                        isExist.set(false);
+                    }
             }
         });
         //证明条件不对应不能让他进行查询