Browse Source

feat(apCheck): 聚合分组优化,增加字段明细是否全对账,按是否已对账排序,默认未对账数据排列在前面

hejq 7 năm trước cách đây
mục cha
commit
ad1ce23751

+ 6 - 0
src/main/java/com/uas/platform/b2b/model/ProductIoGroup.java

@@ -1,6 +1,7 @@
 package com.uas.platform.b2b.model;
 
 import com.uas.platform.b2b.publicapi.model.ApCheckAmount;
+import com.uas.platform.core.model.Constant;
 import lombok.Data;
 
 import java.util.ArrayList;
@@ -39,4 +40,9 @@ public class ProductIoGroup {
      * 明细
      */
     private List<ErpProdIODetail> details = new ArrayList<>();
+
+    /**
+     * 明细是否全对账
+     */
+    private Short allChecked = Constant.YES;
 }

+ 10 - 0
src/main/java/com/uas/platform/b2b/service/impl/ErpProdIODetailServiceImpl.java

@@ -23,6 +23,7 @@ import com.uas.platform.b2b.support.DecimalUtils;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.task.ApCheckTask;
 import com.uas.platform.core.exception.IllegalOperatorException;
+import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import org.apache.axis.utils.StringUtils;
@@ -168,6 +169,12 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
             // 筛选单号一样的明细
             List<ErpProdIODetail> details = erpProdIo.getDetails().parallelStream()
                 .filter(detail -> code.equals(detail.getOrdercode())).collect(Collectors.toList());
+            for (ErpProdIODetail detail : details) {
+                if (Constant.NO == detail.getHaveChecked()) {
+                    group.setAllChecked(Constant.NO);
+                    break;
+                }
+            }
             group.setDetails(details);
             // 统计发货数量
             Double sendQty = details.stream().mapToDouble(ErpProdIODetail::getQty).sum();
@@ -189,6 +196,9 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
             groupList.add(group);
         });
         erpProdIo.setGroupList(groupList);
+        if (!CollectionUtil.isEmpty(groupList)) {
+            erpProdIo.getGroupList().sort(comparing(ProductIoGroup::getAllChecked));
+        }
     }
 
     /**