Browse Source

feat: 对账单功能优化调整:1、应收对账查询详情方法更新,采用对账明细做过滤筛选,时间过滤采用来源单据时间过滤 2、保存对账时保存来源单据时间 3、已对账单据增加前端筛选词过滤操作

hejq 7 years ago
parent
commit
435cde18af

+ 35 - 9
src/main/java/com/uas/platform/b2b/model/ErpProdIODetail.java

@@ -144,6 +144,11 @@ public class ErpProdIODetail implements Serializable {
      */
     private String sourcetable;
 
+    /**
+     * 单据来源时间
+     */
+    private Date sourceDate;
+
     /**
      * 企业UU
      */
@@ -209,22 +214,27 @@ public class ErpProdIODetail implements Serializable {
      */
     private Short haveChecked;
 
+    /**
+     * 对账主表id
+     */
+    private Long apCheckId;
+
     public ErpProdIODetail() {}
 
     /**
      * 将已对账数据转成前台展示数据
      *
-     * @param apCheck 对账单主表
-     * @param item 对账单名
+     * @param item 对账单明细
      */
-    public ErpProdIODetail(PurchaseApCheck apCheck, PurchaseApCheckItem item) {
+    public ErpProdIODetail(PurchaseApCheckItemInfo item) {
         this.haveChecked = Constant.YES;
-        this.apCheckDate = apCheck.getRecordDate();
-        this.custname = apCheck.getCustName();
-        this.custuu = apCheck.getCustUu();
-        this.currency = apCheck.getCurrency();
-        this.enuu = apCheck.getEnUu();
-        this.recorder = apCheck.getRecorder();
+        this.apCheckDate = item.getApCheck().getRecordDate();
+        this.custname = item.getApCheck().getCustName();
+        this.custuu = item.getApCheck().getCustUu();
+        this.currency = item.getApCheck().getCurrency();
+        this.enuu = item.getApCheck().getEnUu();
+        this.recorder = item.getApCheck().getRecorder();
+        this.apCheckId = item.getApCheck().getId();
         this.orderprice = item.getPrice();
         this.nowmoney = item.getAmount();
         this.custuseruu = item.getCustUserUU();
@@ -411,6 +421,14 @@ public class ErpProdIODetail implements Serializable {
         this.sourcetable = sourcetable;
     }
 
+    public Date getSourceDate() {
+        return sourceDate;
+    }
+
+    public void setSourceDate(Date sourceDate) {
+        this.sourceDate = sourceDate;
+    }
+
     public Long getEnuu() {
         return enuu;
     }
@@ -517,4 +535,12 @@ public class ErpProdIODetail implements Serializable {
     public void setHaveChecked(Short haveChecked) {
         this.haveChecked = haveChecked;
     }
+
+    public Long getApCheckId() {
+        return apCheckId;
+    }
+
+    public void setApCheckId(Long apCheckId) {
+        this.apCheckId = apCheckId;
+    }
 }

+ 0 - 2
src/main/java/com/uas/platform/b2b/model/PurchaseApCheckInfo.java

@@ -337,8 +337,6 @@ public class PurchaseApCheckInfo implements Serializable {
 		this.code = code;
 	}
 
-	@JsonIgnore
-	@JSONField(serialize = false)
 	public Set<PurchaseApCheckItemInfo> getItems() {
 		return items;
 	}

+ 16 - 1
src/main/java/com/uas/platform/b2b/model/PurchaseApCheckItem.java

@@ -15,6 +15,7 @@ import javax.persistence.ManyToOne;
 import javax.persistence.Table;
 import java.io.*;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -169,6 +170,12 @@ public class PurchaseApCheckItem implements Serializable {
 	@Column(name = "pai_sourceid")
 	private Long sourceId;
 
+    /**
+     * 明细行数据来源对应时间
+     */
+    @Column(name = "pai_source_date")
+    private Date sourceDate;
+
 	/**
 	 * 此次转账之前的已对账数(用于删除应收对账单时)
 	 */
@@ -348,7 +355,15 @@ public class PurchaseApCheckItem implements Serializable {
 		this.sourceId = sourceId;
 	}
 
-	public Double getOldYCheckQty() {
+    public Date getSourceDate() {
+        return sourceDate;
+    }
+
+    public void setSourceDate(Date sourceDate) {
+        this.sourceDate = sourceDate;
+    }
+
+    public Double getOldYCheckQty() {
 		return oldYCheckQty;
 	}
 

+ 52 - 4
src/main/java/com/uas/platform/b2b/model/PurchaseApCheckItemInfo.java

@@ -1,9 +1,13 @@
 package com.uas.platform.b2b.model;
 
 
+import com.alibaba.fastjson.annotation.JSONField;
+import org.codehaus.jackson.annotate.JsonIgnore;
+
 import javax.persistence.*;
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -41,6 +45,12 @@ public class PurchaseApCheckItemInfo implements Serializable {
 	@Column(name = "pai_prid")
 	private Long prid;
 
+    /**
+     * 客户用户UU号
+     */
+    @Column(name = "pai_custuseruu")
+    private Long custUserUU;
+
 	/**
 	 * 客户订单单号
 	 */
@@ -89,7 +99,13 @@ public class PurchaseApCheckItemInfo implements Serializable {
 	@Column(name = "pai_prodspec")
 	private String prodSpec;
 
-	/**
+    /**
+     * 物料单位
+     */
+    @Column(name = "pai_produnit")
+    private String prodUnit;
+
+    /**
 	 * 单价
 	 */
 	@Column(name = "pai_price")
@@ -143,6 +159,12 @@ public class PurchaseApCheckItemInfo implements Serializable {
 	@Column(name = "pai_sourceid")
 	private Long sourceId;
 
+    /**
+     * 明细行数据来源对应时间
+     */
+    @Column(name = "pai_source_date")
+    private Date sourceDate;
+
 	/**
 	 * 此次转账之前的已对账数(用于删除应收对账单时)
 	 */
@@ -213,7 +235,15 @@ public class PurchaseApCheckItemInfo implements Serializable {
 		this.prid = prid;
 	}
 
-	public String getOrderCode() {
+    public Long getCustUserUU() {
+        return custUserUU;
+    }
+
+    public void setCustUserUU(Long custUserUU) {
+        this.custUserUU = custUserUU;
+    }
+
+    public String getOrderCode() {
 		return orderCode;
 	}
 
@@ -317,7 +347,15 @@ public class PurchaseApCheckItemInfo implements Serializable {
 		this.sourceId = sourceId;
 	}
 
-	public Double getOldYCheckQty() {
+    public Date getSourceDate() {
+        return sourceDate;
+    }
+
+    public void setSourceDate(Date sourceDate) {
+        this.sourceDate = sourceDate;
+    }
+
+    public Double getOldYCheckQty() {
 		return oldYCheckQty;
 	}
 
@@ -365,6 +403,8 @@ public class PurchaseApCheckItemInfo implements Serializable {
 		this.paid = paid;
 	}
 
+    @JsonIgnore
+    @JSONField(serialize = false)
 	public PurchaseApCheckInfo getApCheck() {
 		return apCheck;
 	}
@@ -389,7 +429,15 @@ public class PurchaseApCheckItemInfo implements Serializable {
 		this.prodSpec = prodSpec;
 	}
 
-	public String getSendcode() {
+    public String getProdUnit() {
+        return prodUnit;
+    }
+
+    public void setProdUnit(String prodUnit) {
+        this.prodUnit = prodUnit;
+    }
+
+    public String getSendcode() {
 		return sendcode;
 	}
 

+ 19 - 2
src/main/java/com/uas/platform/b2b/service/ErpProdIODetailService.java

@@ -5,6 +5,7 @@ import com.uas.platform.b2b.model.DateFilter;
 import com.uas.platform.b2b.model.ErpProdIODetail;
 import com.uas.platform.b2b.model.ErpProdIo;
 import com.uas.platform.b2b.model.PurchaseApCheck;
+import com.uas.platform.b2b.model.PurchaseApCheckItemInfo;
 
 import java.util.List;
 
@@ -25,6 +26,7 @@ public interface ErpProdIODetailService {
 	 * @param endDate 截止时间
      * @param checkDate 对账月份
 	 * @return 符合条件的数据
+     * @throws  InterruptedException 线程中的异常
 	 */
     ErpProdIo findXlsApChecks(List<Long> filter, ApcheckKeyWord keyWord, Long fromDate, Long endDate, String checkDate) throws InterruptedException;
 
@@ -46,14 +48,29 @@ public interface ErpProdIODetailService {
      * @param checkDate 对账月份
      * @param fromDate 起始时间
      * @param endDate 截止时间
+     * @param keyword 过滤条件
      * @return 处理后的对账单
      */
-    List<PurchaseApCheck> findApCheckList(Long vendUU, Long customerUU, String checkDate, Long fromDate, Long endDate);
+    List<PurchaseApCheckItemInfo> findApCheckList(Long vendUU, Long customerUU, String checkDate, Long fromDate, Long endDate, ApcheckKeyWord keyword);
 
     /**
      * 将PurchaseApCheck 转成 ErpProdIODetail
      * @param apCheckList 查询已对账数据
      * @return 转换成ErpProdIODetail的数据
      */
-    List<ErpProdIODetail> covertApCheckToErpIo(List<PurchaseApCheck> apCheckList);
+    List<ErpProdIODetail> covertApCheckToErpIo(List<PurchaseApCheckItemInfo> apCheckList);
+
+
+    /**
+     * 设置对账金额信息
+     *
+     * @param erpProdIo ERP出入库单
+     * @param vendorUU 供应商UU
+     * @param customerUU 客户UU
+     * @param checkDate 对账月份
+     * @param fromDate 对账起始时间
+     * @param endDate 对账截止时间
+     * @throws InterruptedException 线程中断异常
+     */
+    void setCheckAmount(ErpProdIo erpProdIo, Long vendorUU, Long customerUU, String checkDate, Long fromDate, Long endDate) throws InterruptedException;
 }

+ 81 - 49
src/main/java/com/uas/platform/b2b/service/impl/ErpProdIODetailServiceImpl.java

@@ -4,16 +4,19 @@ import com.alibaba.fastjson.JSON;
 import com.uas.platform.b2b.core.util.BoundedExecutor;
 import com.uas.platform.b2b.core.util.DateFormatUtils;
 import com.uas.platform.b2b.core.util.DateUtils;
+import com.uas.platform.b2b.core.util.StringUtil;
 import com.uas.platform.b2b.core.util.ThreadTask;
 import com.uas.platform.b2b.core.util.ThreadUtils;
 import com.uas.platform.b2b.dao.CommonDao;
 import com.uas.platform.b2b.dao.PurchaseApCheckDao;
+import com.uas.platform.b2b.dao.PurchaseApCheckItemInfoDao;
 import com.uas.platform.b2b.dao.VendorDao;
 import com.uas.platform.b2b.model.ApcheckKeyWord;
 import com.uas.platform.b2b.model.DateFilter;
 import com.uas.platform.b2b.model.ErpProdIODetail;
 import com.uas.platform.b2b.model.ErpProdIo;
 import com.uas.platform.b2b.model.PurchaseApCheck;
+import com.uas.platform.b2b.model.PurchaseApCheckItemInfo;
 import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.publicapi.model.ApCheckAmount;
 import com.uas.platform.b2b.service.ErpProdIODetailService;
@@ -62,13 +65,16 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
 
     private final BoundedExecutor executor;
 
+    private final PurchaseApCheckItemInfoDao apCheckItemInfoDao;
+
     @Autowired
     public ErpProdIODetailServiceImpl(CommonDao commonDao, PurchaseApCheckService apCheckService,
-                                      VendorDao vendorDao, PurchaseApCheckDao apCheckDao) {
+                                      VendorDao vendorDao, PurchaseApCheckDao apCheckDao, PurchaseApCheckItemInfoDao apCheckItemInfoDao) {
         this.commonDao = commonDao;
         this.apCheckService = apCheckService;
         this.vendorDao = vendorDao;
         this.apCheckDao = apCheckDao;
+        this.apCheckItemInfoDao = apCheckItemInfoDao;
         ExecutorService executorService = Executors.newCachedThreadPool();
         executor = new BoundedExecutor(executorService, 1600);
     }
@@ -137,48 +143,65 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
         threadsSignal.await();
         ErpProdIo erpProdIo = new ErpProdIo();
         erpProdIo.setDetails(details);
-        // 应收总额
-       if (null != keyword.getCustomerUU()) {
-           List<ApCheckAmount> totalTrades = apCheckService.getDueTrade(enUU, keyword.getCustomerUU());
-           if (!CollectionUtil.isEmpty(totalTrades)) {
-               List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(keyword.getCustomerUU(), enUU);
-               erpProdIo.setTotalCount(totalTrades);
-               if (!CollectionUtil.isEmpty(vendors)) {
-                   String tradeString = JSON.toJSONString(totalTrades);
-                   ThreadUtils.task(()
-                       -> commonDao.getJdbcTemplate().update(String.format(ApCheckTask.UPDATE_COUNT_SQL, tradeString, vendors.get(0).getId()))
-                   );
-               }
-           }
-           // 本月应收
-           List<ApCheckAmount> thisMonthTrades = apCheckService.getThisMonthTrade(enUU, keyword.getCustomerUU(), checkDate, fromDate, endDate);
-           erpProdIo.setThisMonthCount(thisMonthTrades);
-           if (!CollectionUtil.isEmpty(thisMonthTrades)) {
-               // 本月应收(未收)
-               List<ApCheckAmount> thisMonthTodoTrades = null;
-               try {
-                   thisMonthTodoTrades = apCheckService.getThisMonthTodoTrade(enUU, keyword.getCustomerUU(), checkDate, fromDate, endDate);
-               } catch (InterruptedException e) {
-                   e.printStackTrace();
-               }
-               erpProdIo.setThisMonthTodoCount(thisMonthTodoTrades);
-               // 本月应收(已收)
-               List<ApCheckAmount> thisMonthDoneTrades = null;
-               try {
-                   thisMonthDoneTrades = apCheckService.getThisMonthDoneTrade(enUU, keyword.getCustomerUU(), checkDate, fromDate, endDate);
-               } catch (InterruptedException e) {
-                   e.printStackTrace();
-               }
-               erpProdIo.setThisMonthDoneCount(thisMonthDoneTrades);
-           }
-       }
-       // 查询已生成的对账单(需进行转换)
-        List<PurchaseApCheck> apCheckList = findApCheckList(enUU, keyword.getCustomerUU(), checkDate, fromDate, endDate);
-        List<ErpProdIODetail> detailList = covertApCheckToErpIo(apCheckList);
-        erpProdIo.getDetails().addAll(detailList);
+        if (null != keyword.getCustomerUU()) {
+            // 设置对账金额信息
+            setCheckAmount(erpProdIo, enUU, keyword.getCustomerUU(), checkDate, fromDate, endDate);
+            // 查询已生成的对账单(需进行转换)
+            List<PurchaseApCheckItemInfo> apCheckList = findApCheckList(enUU, keyword.getCustomerUU(), checkDate, fromDate, endDate, keyword);
+            List<ErpProdIODetail> detailList = covertApCheckToErpIo(apCheckList);
+            erpProdIo.getDetails().addAll(detailList);
+        }
 		return erpProdIo;
 	}
 
+    /**
+     * 设置对账金额信息
+     *
+     * @param erpProdIo ERP出入库单
+     * @param vendorUU 供应商UU
+     * @param customerUU 客户UU
+     * @param checkDate 对账月份
+     * @param fromDate 对账起始时间
+     * @param endDate 对账截止时间
+     * @throws InterruptedException 线程中断异常
+     */
+    @Override
+    public void setCheckAmount(ErpProdIo erpProdIo, Long vendorUU, Long customerUU, String checkDate, Long fromDate, Long endDate) throws InterruptedException {
+        // 应收总额
+        List<ApCheckAmount> totalTrades = apCheckService.getDueTrade(vendorUU, customerUU);
+        if (!CollectionUtil.isEmpty(totalTrades)) {
+            List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(customerUU, vendorUU);
+            erpProdIo.setTotalCount(totalTrades);
+            if (!CollectionUtil.isEmpty(vendors)) {
+                String tradeString = JSON.toJSONString(totalTrades);
+                ThreadUtils.task(()
+                    -> commonDao.getJdbcTemplate().update(String.format(ApCheckTask.UPDATE_COUNT_SQL, tradeString, vendors.get(0).getId()))
+                );
+            }
+        }
+        // 本月应收
+        List<ApCheckAmount> thisMonthTrades = apCheckService.getThisMonthTrade(vendorUU, customerUU, checkDate, fromDate, endDate);
+        erpProdIo.setThisMonthCount(thisMonthTrades);
+        if (!CollectionUtil.isEmpty(thisMonthTrades)) {
+            // 本月应收(未收)
+            List<ApCheckAmount> thisMonthTodoTrades = null;
+            try {
+                thisMonthTodoTrades = apCheckService.getThisMonthTodoTrade(vendorUU, customerUU, checkDate, fromDate, endDate);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            erpProdIo.setThisMonthTodoCount(thisMonthTodoTrades);
+            // 本月应收(已收)
+            List<ApCheckAmount> thisMonthDoneTrades = null;
+            try {
+                thisMonthDoneTrades = apCheckService.getThisMonthDoneTrade(vendorUU, customerUU, checkDate, fromDate, endDate);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            erpProdIo.setThisMonthDoneCount(thisMonthDoneTrades);
+        }
+    }
+
     /**
      * 通过相关条件查询生成的对账单
      *
@@ -187,20 +210,30 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
      * @param checkDate 对账月份
      * @param fromDate 起始时间
      * @param endDate 截止时间
+     * @param keyword 过滤条件
      */
     @Override
-    public List<PurchaseApCheck> findApCheckList(Long vendUU, Long customerUU, String checkDate, Long fromDate, Long endDate) {
+    public List<PurchaseApCheckItemInfo> findApCheckList(Long vendUU, Long customerUU, String checkDate, Long fromDate, Long endDate, ApcheckKeyWord keyword) {
         PageInfo pageInfo = new PageInfo();
-        pageInfo.filter("enUu", vendUU);
-        pageInfo.filter("custUu", customerUU);
+        pageInfo.filter("apCheck.enUu", vendUU);
+        pageInfo.filter("apCheck.custUu", customerUU);
         DateFilter filter = initFilter(fromDate, endDate, checkDate);
         if (filter.getSqlEndDate() != null) {
-            pageInfo.expression(PredicateUtils.gte("recordDate", filter.getSqlFromDate(), false));
+            pageInfo.expression(PredicateUtils.gte("sourceDate", filter.getSqlFromDate(), false));
         }
         if (filter.getSqlEndDate() != null) {
-            pageInfo.expression(PredicateUtils.lt("recordDate", filter.getSqlEndDate(), false));
+            pageInfo.expression(PredicateUtils.lt("sourceDate", filter.getSqlEndDate(), false));
+        }
+        if (!StringUtils.isEmpty(keyword.getProdTitle())) {
+            pageInfo.expression(PredicateUtils.like("prodTitle", keyword.getProdTitle(), true));
+        }
+        if (!StringUtils.isEmpty(keyword.getProdSpec())) {
+            pageInfo.expression(PredicateUtils.like("prodSpec", keyword.getProdSpec(), true));
+        }
+        if (null != keyword.getTaxRate()) {
+            pageInfo.filter("taxrate", keyword.getTaxRate());
         }
-        return apCheckDao.findAll((Root<PurchaseApCheck> root, CriteriaQuery<?> query, CriteriaBuilder builder) ->
+        return apCheckItemInfoDao.findAll((Root<PurchaseApCheckItemInfo> root, CriteriaQuery<?> query, CriteriaBuilder builder) ->
             query.where(pageInfo.getPredicates(root, query, builder)).getRestriction());
     }
 
@@ -211,11 +244,10 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
      * @return 转换成ErpProdIODetail的数据
      */
     @Override
-    public List<ErpProdIODetail> covertApCheckToErpIo(List<PurchaseApCheck> apCheckList) {
+    public List<ErpProdIODetail> covertApCheckToErpIo(List<PurchaseApCheckItemInfo> apCheckList) {
         List<ErpProdIODetail> details = new ArrayList<>();
         apCheckList.forEach(
-            apCheck -> apCheck.getItems().forEach(
-                item -> details.add(new ErpProdIODetail(apCheck, item)))
+            apCheck -> details.add(new ErpProdIODetail(apCheck))
         );
         return details;
     }

+ 4 - 35
src/main/java/com/uas/platform/b2b/service/impl/PurchaseApBillServiceImpl.java

@@ -17,6 +17,7 @@ import com.uas.platform.b2b.model.Product;
 import com.uas.platform.b2b.model.PurchaseApBill;
 import com.uas.platform.b2b.model.PurchaseApBillItem;
 import com.uas.platform.b2b.model.PurchaseApCheck;
+import com.uas.platform.b2b.model.PurchaseApCheckItemInfo;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.ps.ProductUtils;
@@ -378,43 +379,11 @@ public class PurchaseApBillServiceImpl implements PurchaseApBillService {
         threadsSignal.await();
         ErpProdIo erpProdIo = new ErpProdIo();
         erpProdIo.setDetails(details);
-        // 应收总额
         if (null != searchKeyWord.getVendorUU()) {
-            List<ApCheckAmount> totalTrades = purchaseApCheckService.getDueTrade(searchKeyWord.getVendorUU(), enUU);
-            List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(enUU, searchKeyWord.getVendorUU());
-            erpProdIo.setVendorName(vendors.get(0).getVendorEnterprise().getEnName());
-            if (!CollectionUtil.isEmpty(totalTrades)) {
-                erpProdIo.setTotalCount(totalTrades);
-                if (!CollectionUtil.isEmpty(vendors)) {
-                    String tradeString = JSON.toJSONString(totalTrades);
-                    executor.submitTask(()
-                        -> commonDao.getJdbcTemplate().update(String.format(ApCheckTask.UPDATE_COUNT_SQL, tradeString, vendors.get(0).getId()))
-                    );
-                }
-            }
-            // 本月应付
-            List<ApCheckAmount> thisMonthTrades = purchaseApCheckService.getThisMonthTrade(searchKeyWord.getVendorUU(), enUU, checkDate, fromDate, endDate);
-            erpProdIo.setThisMonthCount(thisMonthTrades);
-            if (!CollectionUtil.isEmpty(thisMonthTrades)) {
-                // 本月应收(未收)
-                List<ApCheckAmount> thisMonthTodoTrades = null;
-                try {
-                    thisMonthTodoTrades = purchaseApCheckService.getThisMonthTodoTrade(searchKeyWord.getVendorUU(), enUU, checkDate, fromDate, endDate);
-                } catch (InterruptedException e) {
-                    e.printStackTrace();
-                }
-                erpProdIo.setThisMonthTodoCount(thisMonthTodoTrades);
-                // 本月应收(已收)
-                List<ApCheckAmount> thisMonthDoneTrades = null;
-                try {
-                    thisMonthDoneTrades = purchaseApCheckService.getThisMonthDoneTrade(searchKeyWord.getVendorUU(), enUU, checkDate, fromDate, endDate);
-                } catch (InterruptedException e) {
-                    e.printStackTrace();
-                }
-                erpProdIo.setThisMonthDoneCount(thisMonthDoneTrades);
-            }
+            // 设置对账金额信息
+            erpProdIODetailService.setCheckAmount(erpProdIo, searchKeyWord.getVendorUU(), enUU, checkDate, fromDate, endDate);
             // 查询已生成的对账单(需进行转换)
-            List<PurchaseApCheck> apCheckList = erpProdIODetailService.findApCheckList(searchKeyWord.getVendorUU(), enUU, checkDate, fromDate, endDate);
+            List<PurchaseApCheckItemInfo> apCheckList = erpProdIODetailService.findApCheckList(searchKeyWord.getVendorUU(), enUU, checkDate, fromDate, endDate, searchKeyWord);
             List<ErpProdIODetail> detailList = erpProdIODetailService.covertApCheckToErpIo(apCheckList);
             erpProdIo.getDetails().addAll(detailList);
         }