yangdamao il y a 2 ans
Parent
commit
8dcbafa154

+ 23 - 70
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java

@@ -410,16 +410,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         if (bo.getOrderReceived().compareTo(bo.getOrderPrice()) == 0) {
             //账款已结清
             add.setCreditTime(DateUtils.getNowTime());
-            if (ObjectUtil.isNotNull(bo.getFinishSign()) && bo.getFinishSign() == 0) {
-                //自动完单
-                add.setFinishStatus(1);
-            }
         }
-        //获取机构分成方式
-        SysTenant tenant = sysTenantService
-                .getOne(new LambdaQueryWrapper<SysTenant>()
-                        .eq(SysTenant::getTenantId, bo.getTenantId()));
-        Integer divideModel = ObjectUtil.isNotNull(tenant) ? tenant.getDivideModel() : 1;
 
         // 获取企业默认成本模板
         TopCostTp costTp = topCostTpService.getOne(new LambdaQueryWrapper<TopCostTp>()
@@ -429,7 +420,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             //成本项
             BigDecimal costTotal = new BigDecimal("0.00");//成本
             BigDecimal profitTotal = new BigDecimal("0.00"); //盈亏
-            BigDecimal divideTotal = new BigDecimal("0.00");//分成
             //平摊佣金
             BigDecimal halveBrokerage = new BigDecimal("0.0000");
             if (brokerage.compareTo(BigDecimal.ZERO) != 0) {
@@ -476,11 +466,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     //匹配不到成本项阶梯值
                     continue;
                 }
-//                if (tpItems.size() > 1) {
-//                    //匹配到多个成本项
-//                    throw new CustomException(String.format("成本项阶梯匹配有误!(有多个)请检查【%s,价格:%s】", orderGoods.getBusinessFullName(), goodsPrice.toString()));
-//                }
-                BigDecimal divideMoney = new BigDecimal("0.00");//分成
                 BigDecimal cost = new BigDecimal("0.00");//成本
                 BigDecimal bigDecimal = new BigDecimal("100");
                 for (TopCostTpItem tpItem : tpItems) {
@@ -508,28 +493,15 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                             BigDecimal divide = topCostTpItem.getTypeValue().divide(bigDecimal);
                             BigDecimal multiply = goodsPriceDecimal.multiply(divide);
                             cost = cost.add(multiply);
-                            if (topCostTpItem.getItemCategory() == 1 && add.getFinishStatus() == 1) {
-                                //订单已完单 并且是分成成本
-                                divideMoney = divideMoney.add(multiply);
-                            }
                             break;
                         case 2://固定金额
                             cost = cost.add(topCostTpItem.getTypeValue());
-                            if (topCostTpItem.getItemCategory() == 1 && add.getFinishStatus() == 1) {
-                                //分成
-                                divideMoney = divideMoney.add(topCostTpItem.getTypeValue());
-                            }
                             break;
                         default:
                             break;
                     }
                 }
                 costTotal = costTotal.add(cost);
-                if (add.getFinishStatus() == 1 && divideTotal.compareTo(BigDecimal.ZERO) > 0) {
-                    orderGoods.setDivideModel(divideModel);
-                    orderGoods.setDivideMoney(divideMoney);
-                }
-                divideTotal = divideTotal.add(divideMoney);
             }
 
             List<TopCostTpItem> costTpItemList = topCostTpItemService
@@ -547,48 +519,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             profitTotal = subtract.subtract(cost);
             add.setOrderProfit(profitTotal);
             add.setCostJson(JSONObject.toJSONString(topCostTpVo));
-            if (add.getFinishStatus() == 1 && divideTotal.compareTo(BigDecimal.ZERO) > 0) {
-                add.setDivideModel(divideModel);
-                add.setDivideStatus(2);//待审核
-                add.setAccomplishTime(DateUtils.getNowTime());
-                if (divideModel == 1) {
-                    //机构分成
-                    add.setDivideCompanyMoney(divideTotal);
-                } else {
-                    //业务员分成
-                    add.setDivideSellerMoney(divideTotal);
-                }
-
-                //创建订单分成审核流程
-                List<TopOldOrderCheck> checkList = topOldOrderCheckService
-                        .list(new LambdaQueryWrapper<TopOldOrderCheck>().in(TopOldOrderCheck::getCheckType, Arrays.asList(5, 6))
-                                .orderByAsc(TopOldOrderCheck::getCheckSort));
-                if (CollectionUtils.isNotEmpty(checkList)) {
-                    List<TopOldOrderCheckLog> logs = new ArrayList<>();
-                    for (int i = 0; i < checkList.size(); i++) {
-                        TopOldOrderCheck check = checkList.get(i);
-                        TopOldOrderCheckLog log = new TopOldOrderCheckLog();
-                        log.setOrderSn(add.getOrderSn());
-                        log.setRoleId(check.getCheckRole());
-                        log.setCheckFrom(divideModel == 1 ? 2 : 3);
-                        log.setUpdateTime(DateUtils.getNowTime());
-                        log.setCreateTime(DateUtils.getNowTime());
-                        log.setTenantId(add.getTenantId());
-                        log.setCheckSign(i > 0 ? 0 : 1);
-                        log.setCheckSort(check.getCheckSort());
-                        log.setType(check.getCheckType());
-                        log.setTenantId(bo.getTenantId());
-                        if (check.getCheckType() == 6) {
-                            //分成支付
-                            log.setCheckStatus(2);//待支付
-                        } else {
-                            log.setCheckStatus(0);//待审核
-                        }
-                        logs.add(log);
-                    }
-                    topOldOrderCheckLogService.saveBatch(logs);
-                }
-            }
         }
 
         this.save(add);
@@ -1186,6 +1116,29 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         }
 
         updateById(oldOrder);
+
+        if (bo.getCheckStatus() == 1 && oldOrder.getFinishSign() == 0 && oldOrder.getOrderUncollected().compareTo(BigDecimal.ZERO) == 0){
+            //订单审核通过,账款已结清,满足完单条件
+            //成本设置项
+            TopOldOrder order = getById(oldOrder.getOrderId());
+            String costJson = order.getCostJson();
+            if (StringUtils.isNotBlank(costJson)) {
+                //获取机构分成方式
+                SysTenant tenant = sysTenantService
+                        .getOne(new LambdaQueryWrapper<SysTenant>()
+                                .eq(SysTenant::getTenantId, order.getTenantId()));
+                Integer divideModel = ObjectUtil.isNotNull(tenant.getDivideModel())?tenant.getDivideModel():1;
+                //分成金额
+                TopCostTpVo topCostTpVo = JSONObject.parseObject(costJson, TopCostTpVo.class);
+                List<TopCostTpItemVo> itemList = topCostTpVo.getItemList();
+                if (CollectionUtils.isNotEmpty(itemList)) {
+                    //分成模板
+                    List<TopCostTpItemVo> divideList = itemList.stream().filter(x -> x.getItemCategory() == 1).collect(Collectors.toList());
+                    calculateDivide(divideList, order, divideModel);
+                }
+            }
+        }
+
         // 订单审核通知业务系统
         if (brokerageFlag) {
             //佣金审核