Browse Source

Merge remote-tracking branch 'origin/v1.0' into v1.0

v1.0
Yen 2 years ago
parent
commit
924c2335e1
  1. 88
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java
  2. 14
      src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java
  3. 19
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java
  4. 511
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierApplicationService.java
  5. 20
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java
  6. 147
      src/main/java/com/qs/serve/modules/sys/controller/SysOperationManualController.java
  7. 54
      src/main/java/com/qs/serve/modules/sys/entity/SysOperationManual.java
  8. 14
      src/main/java/com/qs/serve/modules/sys/mapper/SysOperationManualMapper.java
  9. 14
      src/main/java/com/qs/serve/modules/sys/service/SysOperationManualService.java
  10. 22
      src/main/java/com/qs/serve/modules/sys/service/impl/SysOperationManualServiceImpl.java
  11. 11
      src/main/resources/mapper/bms/BmsSupplierMapper.xml

88
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java

@ -281,6 +281,94 @@ public class BmsSupplierController {
return R.byPageHelperList(list); return R.byPageHelperList(list);
} }
@PostMapping("/exportExcel")
@PreAuthorize("hasRole('bms:supplier:query')")
public R<List<BmsSupplier>> exportExcel(@RequestBody BmsSupplier param){
//兼容 前端接错参数
if(param.getSupplierName()!=null){
param.setName(param.getSupplierName());
}
if(param.getSupplierCode()!=null){
param.setCode(param.getSupplierCode());
}
if(StringUtils.hasText(param.getRegion2Label())){
LambdaQueryWrapper<BmsRegion2> region2LambdaQueryWrapper = new LambdaQueryWrapper<>();
region2LambdaQueryWrapper.like(BmsRegion2::getPathNames,param.getRegion2Label());
List<BmsRegion2> region2List = bmsRegion2Service.list(region2LambdaQueryWrapper);
if(region2List.size()>0) {
param.setRegion2Ids(region2List.stream().map(a -> a.getId()).collect(Collectors.toList()));
}else{
param.setRegion2Ids(Arrays.asList("#"));
}
}
if(StringUtils.hasText(param.getSearchRegion2FirstName())){
LambdaQueryWrapper<BmsRegion2> region2LambdaQueryWrapper = new LambdaQueryWrapper<>();
region2LambdaQueryWrapper.like(BmsRegion2::getName,param.getSearchRegion2FirstName());
List<BmsRegion2> region2List = bmsRegion2Service.list(region2LambdaQueryWrapper);
if(region2List.size()>0) {
param.setSearchRegion2First(region2List.stream().map(a -> a.getId()).collect(Collectors.toList()));
}else{
param.setSearchRegion2First(Arrays.asList("#"));
}
}
if(StringUtils.hasText(param.getSearchRegion2SecondName())){
LambdaQueryWrapper<BmsRegion2> region2LambdaQueryWrapper = new LambdaQueryWrapper<>();
region2LambdaQueryWrapper.like(BmsRegion2::getName,param.getSearchRegion2SecondName());
List<BmsRegion2> region2List = bmsRegion2Service.list(region2LambdaQueryWrapper);
if(region2List.size()>0) {
param.setSearchRegion2Second(region2List.stream().map(a -> a.getId()).collect(Collectors.toList()));
}else{
param.setSearchRegion2Second(Arrays.asList("#"));
}
}
if(StringUtils.hasText(param.getSearchRegion2ThirdName())){
LambdaQueryWrapper<BmsRegion2> region2LambdaQueryWrapper = new LambdaQueryWrapper<>();
region2LambdaQueryWrapper.like(BmsRegion2::getName,param.getSearchRegion2ThirdName());
List<BmsRegion2> region2List = bmsRegion2Service.list(region2LambdaQueryWrapper);
if(region2List.size()>0) {
param.setSearchRegion2Third(region2List.stream().map(a -> a.getId()).collect(Collectors.toList()));
}else{
param.setSearchRegion2Third(Arrays.asList("#"));
}
}
if(StringUtils.hasText(param.getRegionLabel())){
LambdaQueryWrapper<BmsRegion> regionLambdaQueryWrapper = new LambdaQueryWrapper<>();
regionLambdaQueryWrapper.like(BmsRegion::getPathNames,param.getRegionLabel());
List<BmsRegion> regionList = bmsRegionService.list(regionLambdaQueryWrapper);
if(regionList.size()>0) {
param.setRegionIds(regionList.stream().map(a -> a.getId()).collect(Collectors.toList()));
}else{
param.setRegion2Ids(Arrays.asList("#"));
}
}
if(StringUtils.hasText(param.getSearchRegionFirstName())){
LambdaQueryWrapper<BmsRegion> regionLambdaQueryWrapper = new LambdaQueryWrapper<>();
regionLambdaQueryWrapper.like(BmsRegion::getName,param.getSearchRegionFirstName());
List<BmsRegion> regionList = bmsRegionService.list(regionLambdaQueryWrapper);
if(regionList.size()>0) {
param.setSearchRegionFirst(regionList.stream().map(a -> a.getId()).collect(Collectors.toList()));
}else{
param.setSearchRegionFirst(Arrays.asList("#"));
}
}
if(StringUtils.hasText(param.getSearchRegionSecondName())){
LambdaQueryWrapper<BmsRegion> regionLambdaQueryWrapper = new LambdaQueryWrapper<>();
regionLambdaQueryWrapper.like(BmsRegion::getName,param.getSearchRegionSecondName());
List<BmsRegion> regionList = bmsRegionService.list(regionLambdaQueryWrapper);
if(regionList.size()>0) {
param.setSearchRegionSecond(regionList.stream().map(a -> a.getId()).collect(Collectors.toList()));
}else{
param.setSearchRegionSecond(Arrays.asList("#"));
}
}
List<BmsSupplier> list = bmsSupplierService.selectSupplierList(param);
initSupplierList(list);
initParentList(list);
return R.ok(list);
}
/** /**
* 树查询 * 树查询

14
src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java

@ -106,15 +106,27 @@ public class BmsSupplier implements Serializable {
private String otherUserCodes; private String otherUserCodes;
/** 停用 */ /** 闭户 */
private Integer stopFlag; private Integer stopFlag;
/** 闭户日期 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime stopFlagDate;
/** 所属账套 */ /** 所属账套 */
private String belong; private String belong;
/** 是否供应商 */ /** 是否供应商 */
private Integer supplierFlag; private Integer supplierFlag;
private Integer cooperatePauseFlag;
/** 暂不合作日期 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime cooperatePauseFlagDate;
/** 创建时间 */ /** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

19
src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java

@ -2,11 +2,14 @@ package com.qs.serve.modules.bms.entity.bo;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
/** /**
* @author YenHex * @author YenHex
@ -55,4 +58,20 @@ public class BmsSupplierBo {
private Integer supplierFlag; private Integer supplierFlag;
private String belong; private String belong;
/** 闭户 */
private Integer stopFlag;
/** 闭户日期 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime stopFlagDate;
/** 暂不合作 */
private Integer cooperatePauseFlag;
/** 暂不合作日期 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime cooperatePauseFlagDate;
} }

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

@ -41,264 +41,263 @@ import java.util.stream.Collectors;
@AllArgsConstructor @AllArgsConstructor
public class BmsSupplierApplicationService { public class BmsSupplierApplicationService {
private BmsRegionMapper regionMapper; // private BmsRegionMapper regionMapper;
private BmsRegion2Mapper bmsRegion2Mapper; // private BmsRegion2Mapper bmsRegion2Mapper;
private TbsBudgetLogService budgetLogService; // private TbsCostUnItemService costUnItemService;
private TbsCostUnItemService costUnItemService; // private TbsBudgetMapper budgetMapper;
private TbsBudgetMapper budgetMapper; // private TbsBudgetConditionMapper budgetConditionMapper;
private TbsBudgetConditionMapper budgetConditionMapper; // private TbsScheduleItemBudgetMapper scheduleItemBudgetMapper;
private TbsScheduleItemBudgetMapper scheduleItemBudgetMapper; // private TbsActivityMapper activityMapper;
private TbsActivityMapper activityMapper;
private BmsSupplierMapper bmsSupplierMapper; private BmsSupplierMapper bmsSupplierMapper;
/** // /**
* 客户更新区域时预算政策统计 // * 客户更新区域时,预算政策统计
* @param supplierId // * @param supplierId
* @param regionType // * @param regionType
* @param orgRegionId // * @param orgRegionId
* @param newRegionId // * @param newRegionId
*/ // */
public void migratePolicyBudget(String supplierId, String regionType, String orgRegionId, String newRegionId){ // public void migratePolicyBudget(String supplierId, String regionType, String orgRegionId, String newRegionId){
//
} // }
//
/** // /**
* 客户更新区域时,预算统计调整 // * 客户更新区域时,预算统计调整
* @param supplierId // * @param supplierId
* @param regionType // * @param regionType
* @param orgRegionId // * @param orgRegionId
* @param newRegionId // * @param newRegionId
*/ // */
public void migrateRegion(String supplierId, String regionType, String orgRegionId, String newRegionId) { // public void migrateRegion(String supplierId, String regionType, String orgRegionId, String newRegionId) {
LocalDateTime nowTime = LocalDateTime.now(); // LocalDateTime nowTime = LocalDateTime.now();
String newRegionCode; // String newRegionCode;
String newRegionName; // String newRegionName;
if(regionType.equals(TbsCenterType.saleRegion.name())){ // if(regionType.equals(TbsCenterType.saleRegion.name())){
BmsRegion bmsRegion = regionMapper.selectById(newRegionId); // BmsRegion bmsRegion = regionMapper.selectById(newRegionId);
newRegionCode = bmsRegion.getCode(); // newRegionCode = bmsRegion.getCode();
newRegionName = bmsRegion.getName(); // newRegionName = bmsRegion.getName();
}else { // }else {
BmsRegion2 bmsRegion2 = bmsRegion2Mapper.selectById(newRegionId); // BmsRegion2 bmsRegion2 = bmsRegion2Mapper.selectById(newRegionId);
newRegionCode = bmsRegion2.getCode(); // newRegionCode = bmsRegion2.getCode();
newRegionName = bmsRegion2.getName(); // newRegionName = bmsRegion2.getName();
} // }
//this.migrateActivityBudget(supplierId, regionType, orgRegionId, newRegionId, nowTime, newRegionCode, newRegionName); // //this.migrateActivityBudget(supplierId, regionType, orgRegionId, newRegionId, nowTime, newRegionCode, newRegionName);
//this.migratePolicyBudget(supplierId, regionType, orgRegionId, newRegionId, nowTime, newRegionCode, newRegionName); // //this.migratePolicyBudget(supplierId, regionType, orgRegionId, newRegionId, nowTime, newRegionCode, newRegionName);
} // }
//
/** // /**
* 调整政策预算 // * 调整政策预算
* @param supplierId // * @param supplierId
* @param regionType // * @param regionType
* @param orgRegionId // * @param orgRegionId
* @param newRegionId // * @param newRegionId
* @param nowTime // * @param nowTime
* @param newRegionCode // * @param newRegionCode
* @param newRegionName // * @param newRegionName
*/ // */
private void migratePolicyBudget(String supplierId, String regionType, String orgRegionId, String newRegionId, LocalDateTime nowTime, String newRegionCode, String newRegionName) { // private void migratePolicyBudget(String supplierId, String regionType, String orgRegionId, String newRegionId, LocalDateTime nowTime, String newRegionCode, String newRegionName) {
//TODO 方案未落实 // //TODO 方案未落实
} // }
//
/** // /**
* 调整活动预算 // * 调整活动预算
* @param supplierId // * @param supplierId
* @param regionType // * @param regionType
* @param orgRegionId // * @param orgRegionId
* @param newRegionId // * @param newRegionId
* @param nowTime // * @param nowTime
* @param newRegionCode // * @param newRegionCode
* @param newRegionName // * @param newRegionName
*/ // */
private void migrateActivityBudget(String supplierId, String regionType, String orgRegionId, String newRegionId, LocalDateTime nowTime, String newRegionCode, String newRegionName) { // private void migrateActivityBudget(String supplierId, String regionType, String orgRegionId, String newRegionId, LocalDateTime nowTime, String newRegionCode, String newRegionName) {
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);
lqw4log.eq(TbsBudgetLog::getSupplierId, supplierId); // lqw4log.eq(TbsBudgetLog::getSupplierId, supplierId);
lqw4log.eq(TbsBudgetLog::getCenterType, regionType); // lqw4log.eq(TbsBudgetLog::getCenterType, regionType);
lqw4log.eq(TbsBudgetLog::getCenterId, orgRegionId); // lqw4log.eq(TbsBudgetLog::getCenterId, orgRegionId);
lqw4log.isNotNull(TbsBudgetLog::getActivityId); // lqw4log.isNotNull(TbsBudgetLog::getActivityId);
List<TbsBudgetLog> budgetLogList = budgetLogService.list(lqw4log); // List<TbsBudgetLog> budgetLogList = budgetLogService.list(lqw4log);
if(CollectionUtil.isNotEmpty(budgetLogList)){ // if(CollectionUtil.isNotEmpty(budgetLogList)){
//查找符合条件的活动 // //查找符合条件的活动
final List<Long> activityIds = budgetLogList.stream().map(TbsBudgetLog::getActivityId).distinct().collect(Collectors.toList()); // final List<Long> activityIds = budgetLogList.stream().map(TbsBudgetLog::getActivityId).distinct().collect(Collectors.toList());
LambdaQueryWrapper<TbsActivity> lqwAct = new LambdaQueryWrapper<>(); // LambdaQueryWrapper<TbsActivity> lqwAct = new LambdaQueryWrapper<>();
lqwAct.in(TbsActivity::getId,activityIds); // lqwAct.in(TbsActivity::getId,activityIds);
List<TbsActivity> activityList = activityMapper.selectList(lqwAct); // List<TbsActivity> activityList = activityMapper.selectList(lqwAct);
//查询符合条件的预算 // //查询符合条件的预算
final List<Long> subjectIds = budgetLogList.stream().map(TbsBudgetLog::getSubjectId).distinct().collect(Collectors.toList()); // final List<Long> subjectIds = budgetLogList.stream().map(TbsBudgetLog::getSubjectId).distinct().collect(Collectors.toList());
LambdaQueryWrapper<TbsBudget> lqwBudget = new LambdaQueryWrapper<>(); // LambdaQueryWrapper<TbsBudget> lqwBudget = new LambdaQueryWrapper<>();
lqwBudget.eq(TbsBudget::getCenterType, regionType); // lqwBudget.eq(TbsBudget::getCenterType, regionType);
lqwBudget.eq(TbsBudget::getCenterId, newRegionId); // lqwBudget.eq(TbsBudget::getCenterId, newRegionId);
lqwBudget.eq(TbsBudget::getBudgetState,1); // lqwBudget.eq(TbsBudget::getBudgetState,1);
lqwBudget.and(wq->{ // lqwBudget.and(wq->{
wq.eq(TbsBudget::getSubjectId,0).or().in(TbsBudget::getSubjectId,subjectIds); // wq.eq(TbsBudget::getSubjectId,0).or().in(TbsBudget::getSubjectId,subjectIds);
}); // });
// 将有科目条件的前置 // // 将有科目条件的前置
lqwBudget.orderByDesc(TbsBudget::getSubjectId); // lqwBudget.orderByDesc(TbsBudget::getSubjectId);
List<TbsBudget> budgetList = budgetMapper.selectList(lqwBudget); // List<TbsBudget> budgetList = budgetMapper.selectList(lqwBudget);
//查询预算考核期 // //查询预算考核期
List<Long> budgetIds = budgetList.stream().map(TbsBudget::getId).distinct().collect(Collectors.toList()); // List<Long> budgetIds = budgetList.stream().map(TbsBudget::getId).distinct().collect(Collectors.toList());
Map<Long,List<TbsScheduleItemBudget>> scheduleItemBudgetsMap = null; // Map<Long,List<TbsScheduleItemBudget>> scheduleItemBudgetsMap = null;
if(CollectionUtil.isNotEmpty(budgetIds)){ // if(CollectionUtil.isNotEmpty(budgetIds)){
LambdaQueryWrapper<TbsScheduleItemBudget> budgetItemLqw = new LambdaQueryWrapper<>(); // LambdaQueryWrapper<TbsScheduleItemBudget> budgetItemLqw = new LambdaQueryWrapper<>();
budgetItemLqw.in(TbsScheduleItemBudget::getBudgetId,budgetIds); // budgetItemLqw.in(TbsScheduleItemBudget::getBudgetId,budgetIds);
List<TbsScheduleItemBudget> scheduleItemBudgets = scheduleItemBudgetMapper.selectList(budgetItemLqw); // List<TbsScheduleItemBudget> scheduleItemBudgets = scheduleItemBudgetMapper.selectList(budgetItemLqw);
scheduleItemBudgetsMap = scheduleItemBudgets.stream().collect(Collectors.groupingBy(TbsScheduleItemBudget::getBudgetId)); // scheduleItemBudgetsMap = scheduleItemBudgets.stream().collect(Collectors.groupingBy(TbsScheduleItemBudget::getBudgetId));
} // }
//查询预算条件 // //查询预算条件
List<Long> conditionBudgetIds = budgetList.stream() // List<Long> conditionBudgetIds = budgetList.stream()
.filter(a->a.getConditionFlag().equals(1)) // .filter(a->a.getConditionFlag().equals(1))
.map(TbsBudget::getId).distinct().collect(Collectors.toList()); // .map(TbsBudget::getId).distinct().collect(Collectors.toList());
Map<Long,List<TbsBudgetCondition>> budgetConditionsMap = null; // Map<Long,List<TbsBudgetCondition>> budgetConditionsMap = null;
if(conditionBudgetIds.size()>0){ // if(conditionBudgetIds.size()>0){
LambdaQueryWrapper<TbsBudgetCondition> conditionLqw = new LambdaQueryWrapper<>(); // LambdaQueryWrapper<TbsBudgetCondition> conditionLqw = new LambdaQueryWrapper<>();
conditionLqw.in(TbsBudgetCondition::getBudgetId,conditionBudgetIds); // conditionLqw.in(TbsBudgetCondition::getBudgetId,conditionBudgetIds);
List<TbsBudgetCondition> budgetConditions = budgetConditionMapper.selectList(conditionLqw); // List<TbsBudgetCondition> budgetConditions = budgetConditionMapper.selectList(conditionLqw);
budgetConditionsMap = budgetConditions.stream().collect(Collectors.groupingBy(TbsBudgetCondition::getBudgetId)); // budgetConditionsMap = budgetConditions.stream().collect(Collectors.groupingBy(TbsBudgetCondition::getBudgetId));
} // }
//用于循环筛选条件 // //用于循环筛选条件
TbsGoodsType[] goodsTypes = new TbsGoodsType[]{ // TbsGoodsType[] goodsTypes = new TbsGoodsType[]{
TbsGoodsType.sku, // TbsGoodsType.sku,
TbsGoodsType.spu, // TbsGoodsType.spu,
TbsGoodsType.series, // TbsGoodsType.series,
TbsGoodsType.category, // TbsGoodsType.category,
TbsGoodsType.brand // TbsGoodsType.brand
}; // };
//已占用预算进行调增 // //已占用预算进行调增
final BudgetLogOptFlag optType4Diff = regionType.equals(TbsCenterType.saleRegion.name())? // final BudgetLogOptFlag optType4Diff = regionType.equals(TbsCenterType.saleRegion.name())?
BudgetLogOptFlag.State_8:BudgetLogOptFlag.State_10; // BudgetLogOptFlag.State_8:BudgetLogOptFlag.State_10;
final BudgetLogOptFlag optType4Add = regionType.equals(TbsCenterType.saleRegion.name())? // final BudgetLogOptFlag optType4Add = regionType.equals(TbsCenterType.saleRegion.name())?
BudgetLogOptFlag.State_7:BudgetLogOptFlag.State_9; // BudgetLogOptFlag.State_7:BudgetLogOptFlag.State_9;
List<TbsBudgetLog> budgetLog4Adds = budgetLogList.stream().map(budgetLog->{ // List<TbsBudgetLog> budgetLog4Adds = budgetLogList.stream().map(budgetLog->{
TbsBudgetLog obj = CopierUtil.copy(budgetLog,new TbsBudgetLog()); // TbsBudgetLog obj = CopierUtil.copy(budgetLog,new TbsBudgetLog());
obj.setId(null); // obj.setId(null);
obj.setOptType(optType4Add.getCode()); // obj.setOptType(optType4Add.getCode());
obj.setMigrateFlag(1); // obj.setMigrateFlag(1);
obj.setMigrateTime(nowTime); // obj.setMigrateTime(nowTime);
obj.setAmount(TbsBudgetLogBuildUtil.buildAmount(obj.getAmount(),optType4Add)); // obj.setAmount(TbsBudgetLogBuildUtil.buildAmount(obj.getAmount(),optType4Add));
return obj; // return obj;
}).collect(Collectors.toList()); // }).collect(Collectors.toList());
//规则:品类条件比科目条件优先级更高 // //规则:品类条件比科目条件优先级更高
List<TbsBudgetLog> budgetLog4Diff = new ArrayList<>(); // List<TbsBudgetLog> budgetLog4Diff = new ArrayList<>();
//无匹配的费用支出 // //无匹配的费用支出
List<TbsCostUnItem> costUnItemList = new ArrayList<>(); // List<TbsCostUnItem> costUnItemList = new ArrayList<>();
for (TbsBudgetLog budgetLog : budgetLogList) { // for (TbsBudgetLog budgetLog : budgetLogList) {
//当前活动 // //当前活动
TbsActivity currActivity = null; // TbsActivity currActivity = null;
for (TbsActivity activity : activityList) { // for (TbsActivity activity : activityList) {
if(budgetLog.getActivityId().equals(activity.getId())){ // if(budgetLog.getActivityId().equals(activity.getId())){
currActivity = activity; // currActivity = activity;
break; // break;
} // }
} // }
//(数据结构:value=预算id列表,key=商品类型) // //(数据结构:value=预算id列表,key=商品类型)
Map<String,List<Long>> matchConditionBudgetIdsMap = new HashMap<>(); // Map<String,List<Long>> matchConditionBudgetIdsMap = new HashMap<>();
if(budgetConditionsMap!=null){ // if(budgetConditionsMap!=null){
for (Long budgetId : budgetConditionsMap.keySet()) { // for (Long budgetId : budgetConditionsMap.keySet()) {
List<TbsBudgetCondition> budgetConditions = budgetConditionsMap.get(budgetId); // List<TbsBudgetCondition> budgetConditions = budgetConditionsMap.get(budgetId);
String pathName = budgetLog.getTargetLevelPathNames(); // String pathName = budgetLog.getTargetLevelPathNames();
for (TbsBudgetCondition condition : budgetConditions) { // for (TbsBudgetCondition condition : budgetConditions) {
if(pathName.contains(condition.getTargetLevelPathNames())){ // if(pathName.contains(condition.getTargetLevelPathNames())){
List<Long> tempList = matchConditionBudgetIdsMap.get(condition.getTargetType()); // List<Long> tempList = matchConditionBudgetIdsMap.get(condition.getTargetType());
if(tempList==null){ // if(tempList==null){
tempList = new ArrayList<>(); // tempList = new ArrayList<>();
} // }
tempList.add(budgetId); // tempList.add(budgetId);
matchConditionBudgetIdsMap.put(condition.getTargetType(),tempList); // matchConditionBudgetIdsMap.put(condition.getTargetType(),tempList);
break; // break;
} // }
} // }
} // }
} // }
//记录匹配品类条件的预算 // //记录匹配品类条件的预算
List<TbsBudget> matchBudgetConditionList = new ArrayList<>(); // List<TbsBudget> matchBudgetConditionList = new ArrayList<>();
List<TbsBudget> matchBudgetConditionList_tmp = new ArrayList<>(); // List<TbsBudget> matchBudgetConditionList_tmp = new ArrayList<>();
for (TbsBudget budget : budgetList) { // for (TbsBudget budget : budgetList) {
if(budget.getConditionFlag().equals(1)){ // if(budget.getConditionFlag().equals(1)){
for (TbsGoodsType goodsType : goodsTypes) { // for (TbsGoodsType goodsType : goodsTypes) {
List<Long> tempList = matchConditionBudgetIdsMap.get(goodsType.name()); // List<Long> tempList = matchConditionBudgetIdsMap.get(goodsType.name());
if(CollectionUtil.isNotEmpty(tempList)){ // if(CollectionUtil.isNotEmpty(tempList)){
for (Long budgetId01 : tempList) { // for (Long budgetId01 : tempList) {
if(budgetId01.equals(budget.getId())){ // if(budgetId01.equals(budget.getId())){
matchBudgetConditionList.add(budget); // matchBudgetConditionList.add(budget);
} // }
} // }
} // }
} // }
}else { // }else {
matchBudgetConditionList_tmp.add(budget); // matchBudgetConditionList_tmp.add(budget);
} // }
} // }
//有条件预算优先级更高 // //有条件预算优先级更高
matchBudgetConditionList.addAll(matchBudgetConditionList_tmp); // matchBudgetConditionList.addAll(matchBudgetConditionList_tmp);
//第一个预算为最有匹配预算 // //第一个预算为最有匹配预算
TbsBudget matchBudget = null; // TbsBudget matchBudget = null;
TbsScheduleItemBudget matchItemBudget = null; // TbsScheduleItemBudget matchItemBudget = null;
//记录匹配到的预算 // //记录匹配到的预算
if(scheduleItemBudgetsMap!=null){ // if(scheduleItemBudgetsMap!=null){
for (TbsBudget budget : matchBudgetConditionList) { // for (TbsBudget budget : matchBudgetConditionList) {
if(matchBudget!=null){ // if(matchBudget!=null){
break; // break;
} // }
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 = LocalDateTime.of(currActivity.getPreStartDate(), LocalTime.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;
break; // break;
} // }
} // }
} // }
} // }
if(matchBudget!=null){ // if(matchBudget!=null){
//有匹配的预算 // //有匹配的预算
TbsBudgetLog newLog = CopierUtil.copy(budgetLog,new TbsBudgetLog()); // TbsBudgetLog newLog = CopierUtil.copy(budgetLog,new TbsBudgetLog());
newLog.setId(null); // newLog.setId(null);
newLog.setOptType(optType4Diff.getCode()); // newLog.setOptType(optType4Diff.getCode());
newLog.setBudgetId(matchBudget.getId()); // newLog.setBudgetId(matchBudget.getId());
newLog.setBudgetCode(matchBudget.getBudgetCode()); // newLog.setBudgetCode(matchBudget.getBudgetCode());
newLog.setScheduleOrgId(budgetLog.getScheduleId()); // newLog.setScheduleOrgId(budgetLog.getScheduleId());
newLog.setScheduleItemOrgId(budgetLog.getScheduleItemId()); // newLog.setScheduleItemOrgId(budgetLog.getScheduleItemId());
newLog.setScheduleItemBudgetOrgId(budgetLog.getScheduleItemBudgetId()); // newLog.setScheduleItemBudgetOrgId(budgetLog.getScheduleItemBudgetId());
//匹配到的项 // //匹配到的项
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.setCenterOrgId(newLog.getCenterId());
newLog.setCenterOrgCode(newLog.getCenterCode()); // newLog.setCenterOrgCode(newLog.getCenterCode());
newLog.setCenterOrgName(newLog.getCenterName()); // newLog.setCenterOrgName(newLog.getCenterName());
newLog.setCenterId(newRegionId); // newLog.setCenterId(newRegionId);
newLog.setCenterCode(newRegionCode); // newLog.setCenterCode(newRegionCode);
newLog.setCenterName(newRegionName); // newLog.setCenterName(newRegionName);
budgetLog4Diff.add(newLog); // budgetLog4Diff.add(newLog);
}else { // }else {
//无匹配的预算 // //无匹配的预算
TbsCostUnItem costUnItem = budgetLog.toTbsCostUnItem(currActivity); // TbsCostUnItem costUnItem = budgetLog.toTbsCostUnItem(currActivity);
costUnItemList.add(costUnItem); // costUnItemList.add(costUnItem);
} // }
} // }
//保存 // //保存
budgetLogService.saveBatch(budgetLog4Adds); // budgetLogService.saveBatch(budgetLog4Adds);
if(CollectionUtil.isNotEmpty(budgetLog4Diff)){ // if(CollectionUtil.isNotEmpty(budgetLog4Diff)){
budgetLogService.saveBatch(budgetLog4Diff); // budgetLogService.saveBatch(budgetLog4Diff);
} // }
if(CollectionUtil.isNotEmpty(costUnItemList)){ // if(CollectionUtil.isNotEmpty(costUnItemList)){
costUnItemService.saveBatch(costUnItemList); // costUnItemService.saveBatch(costUnItemList);
} // }
//设置已迁移状态 // //设置已迁移状态
List<Long> budgetLogIds = budgetLogList.stream().map(TbsBudgetLog::getId).collect(Collectors.toList()); // List<Long> budgetLogIds = budgetLogList.stream().map(TbsBudgetLog::getId).collect(Collectors.toList());
TbsBudgetLog updLogParam = new TbsBudgetLog(); // TbsBudgetLog updLogParam = new TbsBudgetLog();
updLogParam.setMigrateFlag(1); // updLogParam.setMigrateFlag(1);
updLogParam.setMigrateTime(nowTime); // updLogParam.setMigrateTime(nowTime);
LambdaQueryWrapper<TbsBudgetLog> updLogLqw = new LambdaQueryWrapper<>(); // LambdaQueryWrapper<TbsBudgetLog> updLogLqw = new LambdaQueryWrapper<>();
updLogLqw.in(TbsBudgetLog::getId,budgetLogIds); // updLogLqw.in(TbsBudgetLog::getId,budgetLogIds);
budgetLogService.update(updLogParam,updLogLqw); // budgetLogService.update(updLogParam,updLogLqw);
} // }
} // }
public List<BmsSupplier> listByRegionIds(List<String> regionIds, Integer level) { public List<BmsSupplier> listByRegionIds(List<String> regionIds, Integer level) {
if(regionIds.size()>0){ if(regionIds.size()>0){

20
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java

@ -81,22 +81,22 @@ public class BmsSupplierServiceImpl extends ServiceImpl<BmsSupplierMapper,BmsSup
//绑定销售区域逻辑 //绑定销售区域逻辑
this.initRegion(supplier,saleRegion); this.initRegion(supplier,saleRegion);
//判断是否需要迁移数据 //判断是否需要迁移数据
if(editId!=null // if(editId!=null
&& orgSaleRegionId!=null // && orgSaleRegionId!=null
&&!orgSaleRegionId.equals(saleRegion)){ // &&!orgSaleRegionId.equals(saleRegion)){
supplierApplicationService.migrateRegion(editId,TbsCenterType.saleRegion.name(), orgSaleRegionId,saleRegion); // supplierApplicationService.migrateRegion(editId,TbsCenterType.saleRegion.name(), orgSaleRegionId,saleRegion);
} // }
} }
String bizRegion = param.getRegionId2(); String bizRegion = param.getRegionId2();
if(bizRegion!=null){ if(bizRegion!=null){
//绑定行政区域逻辑 //绑定行政区域逻辑
this.initRegion2(supplier,bizRegion); this.initRegion2(supplier,bizRegion);
//判断是否需要迁移数据 //判断是否需要迁移数据
if(editId!=null // if(editId!=null
&&orgBizRegionId != null // &&orgBizRegionId != null
&&!orgBizRegionId.equals(bizRegion)){ // &&!orgBizRegionId.equals(bizRegion)){
supplierApplicationService.migrateRegion(editId,TbsCenterType.bizRegion.name(), orgBizRegionId, bizRegion); // supplierApplicationService.migrateRegion(editId,TbsCenterType.bizRegion.name(), orgBizRegionId, bizRegion);
} // }
} }
this.saveOrUpdate(supplier); this.saveOrUpdate(supplier);
} }

147
src/main/java/com/qs/serve/modules/sys/controller/SysOperationManualController.java

@ -0,0 +1,147 @@
package com.qs.serve.modules.sys.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.sys.entity.SysAttach;
import com.qs.serve.modules.sys.service.SysAttachService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.sys.entity.SysOperationManual;
import com.qs.serve.modules.sys.service.SysOperationManualService;
import javax.validation.Valid;
import java.util.Arrays;
import java.util.List;
/**
* 系统
* @author YenHex
* @since 2023-08-11
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("sys/operationManual")
public class SysOperationManualController {
private SysOperationManualService sysOperationManualService;
private SysAttachService attachService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
//@PreAuthorize("hasRole('sys:operationManual:query')")
public R<List<SysOperationManual>> getList(SysOperationManual param){
SysOperationManual entity = CopierUtil.copy(param,new SysOperationManual());
LambdaQueryWrapper<SysOperationManual> lqw = new LambdaQueryWrapper<>(entity);
List<SysOperationManual> list = sysOperationManualService.list(lqw);
list.forEach(sysOperationManual->{
if(CollectionUtil.isNotEmpty(sysOperationManual.getAttachIds())){
List<String> attachIds = Arrays.asList(sysOperationManual.getAttachIds());
List<SysAttach> attachList = attachService.listByIds(attachIds);
sysOperationManual.setAttachList(attachList);
}
});
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
//@PreAuthorize("hasRole('sys:operationManual:query')")
public R<PageVo<SysOperationManual>> getPage(SysOperationManual param){
SysOperationManual entity = CopierUtil.copy(param,new SysOperationManual());
LambdaQueryWrapper<SysOperationManual> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<SysOperationManual> list = sysOperationManualService.list(lqw);
list.forEach(sysOperationManual->{
if(CollectionUtil.isNotEmpty(sysOperationManual.getAttachIds())){
List<String> attachIds = Arrays.asList(sysOperationManual.getAttachIds());
List<SysAttach> attachList = attachService.listByIds(attachIds);
sysOperationManual.setAttachList(attachList);
}
});
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
// @SysLog(module = SystemModule.${extend.moduleLog}, title = "", biz = BizType.QUERY)
//@PreAuthorize("hasRole('sys:operationManual:query')")
public R<SysOperationManual> getById(@PathVariable("id") String id){
SysOperationManual sysOperationManual = sysOperationManualService.getById(id);
if(CollectionUtil.isNotEmpty(sysOperationManual.getAttachIds())){
List<String> attachIds = Arrays.asList(sysOperationManual.getAttachIds());
List<SysAttach> attachList = attachService.listByIds(attachIds);
sysOperationManual.setAttachList(attachList);
}
return R.ok(sysOperationManual);
}
/**
* 更新
* @param param
* @return
*/
@PostMapping("/updateById")
// @SysLog(module = SystemModule.${extend.moduleLog}, title = "", biz = BizType.UPDATE)
//@PreAuthorize("hasRole('sys:operationManual:update')")
public R<?> updateById(@RequestBody @Valid SysOperationManual param){
SysOperationManual entity = CopierUtil.copy(param,new SysOperationManual());
boolean result = sysOperationManualService.updateById(entity);
return R.isTrue(result);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/save")
// @SysLog(module = SystemModule.${extend.moduleLog}, title = "", biz = BizType.INSERT)
//@PreAuthorize("hasRole('sys:operationManual:insert')")
public R<?> save(@RequestBody @Valid SysOperationManual param){
SysOperationManual entity = CopierUtil.copy(param,new SysOperationManual());
boolean result = sysOperationManualService.save(entity);
return R.isTrue(result);
}
/**
* 删除
* @param ids
* @return
*/
@DeleteMapping("/deleteById/{ids}")
// @SysLog(module = SystemModule.${extend.moduleLog}, title = "", biz = BizType.DELETE)
//@PreAuthorize("hasRole('sys:operationManual:delete')")
public R<?> deleteById(@PathVariable("ids") String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
boolean result = sysOperationManualService.removeByIds(idsLong);
return R.isTrue(result);
}
}

54
src/main/java/com/qs/serve/modules/sys/entity/SysOperationManual.java

@ -0,0 +1,54 @@
package com.qs.serve.modules.sys.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler;
import lombok.Data;
import org.apache.ibatis.type.JdbcType;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 实体类
* @author YenHex
* @since 2023-08-11
*/
@Data
@TableName(value = "sys_operation_manual", autoResultMap = true)
public class SysOperationManual implements Serializable {
private static final long serialVersionUID = 1L;
/** */
@TableId(type = IdType.AUTO)
private Long id;
/** */
@Length(max = 255,message = "长度不能超过255字")
private String name;
/** 附件id */
@TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR)
private String[] attachIds;
@TableField(exist = false)
private List<?> attachList;
/** */
@JsonIgnore
@JsonProperty
private String delFlag;
}

14
src/main/java/com/qs/serve/modules/sys/mapper/SysOperationManualMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.sys.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.sys.entity.SysOperationManual;
/**
* Mapper
* @author YenHex
* @date 2023-08-11
*/
public interface SysOperationManualMapper extends BaseMapper<SysOperationManual> {
}

14
src/main/java/com/qs/serve/modules/sys/service/SysOperationManualService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.sys.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.sys.entity.SysOperationManual;
/**
* 服务接口
* @author YenHex
* @date 2023-08-11
*/
public interface SysOperationManualService extends IService<SysOperationManual> {
}

22
src/main/java/com/qs/serve/modules/sys/service/impl/SysOperationManualServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.sys.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.sys.entity.SysOperationManual;
import com.qs.serve.modules.sys.service.SysOperationManualService;
import com.qs.serve.modules.sys.mapper.SysOperationManualMapper;
/**
* 服务实现类
* @author YenHex
* @since 2023-08-11
*/
@Slf4j
@Service
@AllArgsConstructor
public class SysOperationManualServiceImpl extends ServiceImpl<SysOperationManualMapper,SysOperationManual> implements SysOperationManualService {
}

11
src/main/resources/mapper/bms/BmsSupplierMapper.xml

@ -24,7 +24,6 @@
<result property="userId" column="user_id"/> <result property="userId" column="user_id"/>
<result property="userCode" column="user_code"/> <result property="userCode" column="user_code"/>
<result property="userName" column="user_name"/> <result property="userName" column="user_name"/>
<result property="stopFlag" column="stop_flag"/>
<result property="belong" column="belong"/> <result property="belong" column="belong"/>
<result property="otherUserIds" column="other_user_ids" typeHandler="com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler"/> <result property="otherUserIds" column="other_user_ids" typeHandler="com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler"/>
<result property="otherUserNames" column="other_user_names"/> <result property="otherUserNames" column="other_user_names"/>
@ -37,7 +36,10 @@
<result property="costFlag" column="cost_flag"/> <result property="costFlag" column="cost_flag"/>
<result property="delFlag" column="del_flag"/> <result property="delFlag" column="del_flag"/>
<result property="supplierFlag" column="supplier_flag"/> <result property="supplierFlag" column="supplier_flag"/>
<result property="stopFlag" column="stop_flag"/>
<result property="cooperatePauseFlag" column="cooperate_pause_flag"/>
<result property="stopFlagDate" column="stop_flag_date"/>
<result property="cooperatePauseFlagDate" column="cooperate_pause_flag_date"/>
</resultMap> </resultMap>
<sql id="bmsSupplierSql"> <sql id="bmsSupplierSql">
@ -61,7 +63,6 @@
bms_supplier.`other_user_ids`, bms_supplier.`other_user_ids`,
bms_supplier.`other_user_names`, bms_supplier.`other_user_names`,
bms_supplier.`other_user_codes`, bms_supplier.`other_user_codes`,
bms_supplier.`stop_flag`,
bms_supplier.`belong`, bms_supplier.`belong`,
bms_supplier.`create_time`, bms_supplier.`create_time`,
bms_supplier.`create_by`, bms_supplier.`create_by`,
@ -70,6 +71,10 @@
bms_supplier.`tenant_id`, bms_supplier.`tenant_id`,
bms_supplier.`cost_flag`, bms_supplier.`cost_flag`,
bms_supplier.`supplier_flag`, bms_supplier.`supplier_flag`,
bms_supplier.`stop_flag`,
bms_supplier.`cooperate_pause_flag`,
bms_supplier.`stop_flag_date`,
bms_supplier.`cooperate_pause_flag_date`,
bms_supplier.`del_flag` </sql> bms_supplier.`del_flag` </sql>
<select id="selectSupplierList" parameterType="com.qs.serve.modules.bms.entity.BmsSupplier" resultMap="bmsSupplierMap"> <select id="selectSupplierList" parameterType="com.qs.serve.modules.bms.entity.BmsSupplier" resultMap="bmsSupplierMap">

Loading…
Cancel
Save