|
@ -2,8 +2,13 @@ package com.qs.serve.modules.bms.service.impl; |
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.qs.serve.common.model.consts.BudgetLogOptFlag; |
|
|
import com.qs.serve.common.model.consts.BudgetLogOptFlag; |
|
|
|
|
|
import com.qs.serve.common.util.Assert; |
|
|
import com.qs.serve.common.util.CollectionUtil; |
|
|
import com.qs.serve.common.util.CollectionUtil; |
|
|
import com.qs.serve.common.util.CopierUtil; |
|
|
import com.qs.serve.common.util.CopierUtil; |
|
|
|
|
|
import com.qs.serve.modules.bms.entity.BmsRegion; |
|
|
|
|
|
import com.qs.serve.modules.bms.entity.BmsRegion2; |
|
|
|
|
|
import com.qs.serve.modules.bms.service.BmsRegion2Service; |
|
|
|
|
|
import com.qs.serve.modules.bms.service.BmsRegionService; |
|
|
import com.qs.serve.modules.tbs.common.TbsCenterType; |
|
|
import com.qs.serve.modules.tbs.common.TbsCenterType; |
|
|
import com.qs.serve.modules.tbs.common.TbsGoodsType; |
|
|
import com.qs.serve.modules.tbs.common.TbsGoodsType; |
|
|
import com.qs.serve.modules.tbs.entity.*; |
|
|
import com.qs.serve.modules.tbs.entity.*; |
|
@ -18,6 +23,7 @@ import lombok.extern.slf4j.Slf4j; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
import java.time.LocalDateTime; |
|
|
import java.time.LocalDateTime; |
|
|
|
|
|
import java.time.LocalTime; |
|
|
import java.util.ArrayList; |
|
|
import java.util.ArrayList; |
|
|
import java.util.HashMap; |
|
|
import java.util.HashMap; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
@ -33,6 +39,8 @@ import java.util.stream.Collectors; |
|
|
@AllArgsConstructor |
|
|
@AllArgsConstructor |
|
|
public class BmsSupplierApplicationService { |
|
|
public class BmsSupplierApplicationService { |
|
|
|
|
|
|
|
|
|
|
|
private BmsRegionService regionService; |
|
|
|
|
|
private BmsRegion2Service region2Service; |
|
|
private TbsBudgetLogService budgetLogService; |
|
|
private TbsBudgetLogService budgetLogService; |
|
|
private TbsCostUnItemService costUnItemService; |
|
|
private TbsCostUnItemService costUnItemService; |
|
|
private TbsBudgetMapper budgetMapper; |
|
|
private TbsBudgetMapper budgetMapper; |
|
@ -41,8 +49,19 @@ public class BmsSupplierApplicationService { |
|
|
private TbsActivityMapper activityMapper; |
|
|
private TbsActivityMapper activityMapper; |
|
|
|
|
|
|
|
|
public void migrateRegion(String supplierId, String regionType, String orgRegionId, String newRegionId) { |
|
|
public void migrateRegion(String supplierId, String regionType, String orgRegionId, String newRegionId) { |
|
|
//todo 待测
|
|
|
//if(1==1){return;}
|
|
|
LocalDateTime nowTime = LocalDateTime.now(); |
|
|
LocalDateTime nowTime = LocalDateTime.now(); |
|
|
|
|
|
String newRegionCode; |
|
|
|
|
|
String newRegionName; |
|
|
|
|
|
if(regionType.equals(TbsCenterType.saleRegion.name())){ |
|
|
|
|
|
BmsRegion bmsRegion = regionService.getById(newRegionId); |
|
|
|
|
|
newRegionCode = bmsRegion.getCode(); |
|
|
|
|
|
newRegionName = bmsRegion.getName(); |
|
|
|
|
|
}else { |
|
|
|
|
|
BmsRegion2 bmsRegion2 = region2Service.getById(newRegionId); |
|
|
|
|
|
newRegionCode = bmsRegion2.getCode(); |
|
|
|
|
|
newRegionName = bmsRegion2.getName(); |
|
|
|
|
|
} |
|
|
LambdaQueryWrapper<TbsBudgetLog> lqw4log = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<TbsBudgetLog> lqw4log = new LambdaQueryWrapper<>(); |
|
|
lqw4log.eq(TbsBudgetLog::getMigrateFlag,0); |
|
|
lqw4log.eq(TbsBudgetLog::getMigrateFlag,0); |
|
|
lqw4log.eq(TbsBudgetLog::getRollbackFlag,0); |
|
|
lqw4log.eq(TbsBudgetLog::getRollbackFlag,0); |
|
@ -175,7 +194,7 @@ public class BmsSupplierApplicationService { |
|
|
List<TbsScheduleItemBudget> scheduleItemBudgets = scheduleItemBudgetsMap.get(budget.getId()); |
|
|
List<TbsScheduleItemBudget> scheduleItemBudgets = scheduleItemBudgetsMap.get(budget.getId()); |
|
|
for (TbsScheduleItemBudget itemBudget : scheduleItemBudgets) { |
|
|
for (TbsScheduleItemBudget itemBudget : scheduleItemBudgets) { |
|
|
LocalDateTime actStartDate = currActivity.getPreStartDate().atStartOfDay(); |
|
|
LocalDateTime actStartDate = currActivity.getPreStartDate().atStartOfDay(); |
|
|
LocalDateTime actEndDate = currActivity.getPreStartDate().atStartOfDay().with(LocalDateTime.MAX); |
|
|
LocalDateTime actEndDate = LocalDateTime.of(currActivity.getPreStartDate(), LocalTime.MAX); |
|
|
if(actStartDate.isAfter(itemBudget.getStartDate())&&actEndDate.isBefore(itemBudget.getEndDate())){ |
|
|
if(actStartDate.isAfter(itemBudget.getStartDate())&&actEndDate.isBefore(itemBudget.getEndDate())){ |
|
|
matchBudget = budget; |
|
|
matchBudget = budget; |
|
|
matchItemBudget = itemBudget; |
|
|
matchItemBudget = itemBudget; |
|
@ -198,6 +217,13 @@ public class BmsSupplierApplicationService { |
|
|
newLog.setScheduleId(matchItemBudget.getScheduleId()); |
|
|
newLog.setScheduleId(matchItemBudget.getScheduleId()); |
|
|
newLog.setScheduleItemId(matchItemBudget.getScheduleItemId()); |
|
|
newLog.setScheduleItemId(matchItemBudget.getScheduleItemId()); |
|
|
newLog.setScheduleItemBudgetId(matchItemBudget.getId()); |
|
|
newLog.setScheduleItemBudgetId(matchItemBudget.getId()); |
|
|
|
|
|
//设置新的成本中心
|
|
|
|
|
|
newLog.setCenterOrgId(newLog.getCenterId()); |
|
|
|
|
|
newLog.setCenterOrgCode(newLog.getCenterCode()); |
|
|
|
|
|
newLog.setCenterOrgName(newLog.getCenterName()); |
|
|
|
|
|
newLog.setCenterId(newRegionId); |
|
|
|
|
|
newLog.setCenterCode(newRegionCode); |
|
|
|
|
|
newLog.setCenterName(newRegionName); |
|
|
budgetLog4Diff.add(newLog); |
|
|
budgetLog4Diff.add(newLog); |
|
|
}else { |
|
|
}else { |
|
|
//无匹配的预算
|
|
|
//无匹配的预算
|
|
|