Browse Source

客户地区迁移,预算占用调整

contract
Yen 2 years ago
parent
commit
f7c78f036c
  1. 2
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java
  2. 30
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierApplicationService.java
  3. 15
      src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java

2
src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java

@ -63,7 +63,7 @@ public class BmsRegion2Controller {
private List<BmsRegionTreeVo> treeByCurrentUser(){
String userId = AuthContextUtils.getSysUserId();
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsRegionUser::getType,0);
lqw.eq(BmsRegionUser::getType,1);
lqw.eq(BmsRegionUser::getUserId,userId);
List<BmsRegionUser> regionUsers = bmsRegionUserService.list(lqw);
List<String> regionIds = regionUsers.stream().map(BmsRegionUser::getRegionId).collect(Collectors.toList());

30
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierApplicationService.java

@ -2,8 +2,13 @@ package com.qs.serve.modules.bms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.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.TbsGoodsType;
import com.qs.serve.modules.tbs.entity.*;
@ -18,6 +23,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -33,6 +39,8 @@ import java.util.stream.Collectors;
@AllArgsConstructor
public class BmsSupplierApplicationService {
private BmsRegionService regionService;
private BmsRegion2Service region2Service;
private TbsBudgetLogService budgetLogService;
private TbsCostUnItemService costUnItemService;
private TbsBudgetMapper budgetMapper;
@ -41,8 +49,19 @@ public class BmsSupplierApplicationService {
private TbsActivityMapper activityMapper;
public void migrateRegion(String supplierId, String regionType, String orgRegionId, String newRegionId) {
//todo 待测
//if(1==1){return;}
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<>();
lqw4log.eq(TbsBudgetLog::getMigrateFlag,0);
lqw4log.eq(TbsBudgetLog::getRollbackFlag,0);
@ -175,7 +194,7 @@ public class BmsSupplierApplicationService {
List<TbsScheduleItemBudget> scheduleItemBudgets = scheduleItemBudgetsMap.get(budget.getId());
for (TbsScheduleItemBudget itemBudget : scheduleItemBudgets) {
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())){
matchBudget = budget;
matchItemBudget = itemBudget;
@ -198,6 +217,13 @@ public class BmsSupplierApplicationService {
newLog.setScheduleId(matchItemBudget.getScheduleId());
newLog.setScheduleItemId(matchItemBudget.getScheduleItemId());
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);
}else {
//无匹配的预算

15
src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java

@ -41,7 +41,10 @@ public class TbsBudgetLog implements Serializable {
@TableField(condition = SqlCondition.LIKE)
private String budgetCode;
/** 类型:0-预算新增;1-费用申请;2-预算调增;3-预算调减;4-费用释放;5-费用申请调增;6-费用申请调减 */
/** 类型
* 0-预算新增1-费用申请2-预算调增3-预算调减4-费用释放5-费用申请调增6-费用申请调减
* {@link com.qs.serve.common.model.consts.BudgetLogOptFlag}
**/
@NotNull(message = "类型不能为空")
private Integer optType;
@ -142,6 +145,16 @@ public class TbsBudgetLog implements Serializable {
@Length(max = 30,message = "成本中心名称长度不能超过30字")
private String centerName;
/** 原成本中心id */
private String centerOrgId;
/** 原成本中心编码 */
private String centerOrgCode;
/** 原成本中心名称 */
private String centerOrgName;
/** 客户id */
private Long supplierId;

Loading…
Cancel
Save