|
@@ -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) {
|
|
|
//佣金审核
|