Browse Source

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

v1.0
15989082884@163.com 2 years ago
parent
commit
5c14742257
  1. 13
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java
  2. 82
      src/main/java/com/qs/serve/modules/tbs/controller/TbsDealErrorController.java
  3. 94
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java
  4. 50
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsDealErrorApplication.java
  5. 13
      src/main/java/com/qs/serve/modules/third/PortalOfCostController.java
  6. 11
      src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java

13
src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java

@ -19,10 +19,8 @@ import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper;
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper;
import com.qs.serve.modules.tbs.service.TbsBudgetService;
import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService;
import com.qs.serve.modules.tbs.service.impl.TbsDealErrorApplication;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.tbs.entity.so.TbsBudgetLogSo;
@ -53,7 +51,6 @@ public class TbsBudgetLogController {
private final TbsBudgetMapper tbsBudgetMapper;
private TbsScheduleItemBudgetService tbsScheduleItemBudgetService;
private TbsBudgetLogService budgetLogService;
private TbsDealErrorApplication tbsDealErrorApplication;
/**
* 翻页
@ -159,15 +156,5 @@ public class TbsBudgetLogController {
return R.ok(tbsBudgetLog);
}
/**
* 补偿处理错误的第三方订单
* @return
*/
@GetMapping("/dealErrorThirtyCost")
public R<?> dealErrorThirtyCost(){
tbsDealErrorApplication.dealThirtyBuildCost();
return R.ok();
}
}

82
src/main/java/com/qs/serve/modules/tbs/controller/TbsDealErrorController.java

@ -0,0 +1,82 @@
package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.LimitSubmit;
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.BudgetLogOptFlag;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.entity.TbsBudgetLog;
import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget;
import com.qs.serve.modules.tbs.entity.so.TbsBudgetLogSo;
import com.qs.serve.modules.tbs.entity.so.TbsBudgetSo;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo;
import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper;
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper;
import com.qs.serve.modules.tbs.service.TbsBudgetLogService;
import com.qs.serve.modules.tbs.service.TbsBudgetService;
import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService;
import com.qs.serve.modules.tbs.service.impl.TbsDealErrorApplication;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
/**
* 预算 预算日志
* @author YenHex
* @since 2023-01-05
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("tbs/budgetLog")
public class TbsDealErrorController {
private TbsBudgetLogService tbsBudgetLogService;
private TbsBudgetService tbsBudgetService;
private TbsBudgetLogMapper tbsBudgetLogMapper;
private final TbsBudgetMapper tbsBudgetMapper;
private TbsScheduleItemBudgetService tbsScheduleItemBudgetService;
private TbsBudgetLogService budgetLogService;
private TbsDealErrorApplication tbsDealErrorApplication;
/**
* 补偿处理错误的第三方订单
* @return
*/
@GetMapping("/dealErrorThirtyCost")
public R<?> dealErrorThirtyCost(){
tbsDealErrorApplication.dealThirtyBuildCost();
return R.ok();
}
/**
* 将整张单废弃
* @param costId
* @return
*/
@GetMapping("/releaseAll")
public R<?> releaseAll(Long costId){
tbsDealErrorApplication.releaseAll(costId);
return R.ok();
}
}

94
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java

@ -326,41 +326,71 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
* @param costApply
*/
private void doEditAmtCallback(TbsCostApply costApply) {
//修改预算占用
TbsActivityCenterGoodsService tbsActivityCenterGoodsService = SpringUtils.getBean(TbsActivityCenterGoodsService.class);
List<TbsActivityCenterGoods> activityCenterGoodsList = tbsActivityCenterGoodsService.listByCostApplyId(costApply.getId());
//查询当前预算占用
LambdaQueryWrapper<TbsBudgetLog> logLqw = new LambdaQueryWrapper<>();
logLqw.eq(TbsBudgetLog::getRollbackFlag,BudgetLogRollbackFlag.State_0);
logLqw.eq(TbsBudgetLog::getCostApplyId, costApply.getId());
logLqw.and(qw->{
qw.eq(TbsBudgetLog::getOptType,BudgetLogOptFlag.State_1.getCode()).or()
.eq(TbsBudgetLog::getOptType,BudgetLogOptFlag.State_6.getCode());
});
//设置为回滚完成,防止出现多次查询
List<TbsBudgetLog> budgetLogList = tbsBudgetLogService.list(logLqw);
budgetLogList.forEach(bl->{
bl.setRollbackFlag(BudgetLogRollbackFlag.State_2);
});
tbsBudgetLogService.updateBatchById(budgetLogList);
//移除旧预算占用,即添预算
budgetLogList.forEach(bl->{
bl.setId(null);
bl.setOptType(BudgetLogOptFlag.State_5.getCode());
bl.setAmount(bl.getAmount().negate());
bl.setCreateBy(null);
bl.setCreateTime(null);
bl.setUpdateTime(null);
bl.setUpdateBy(null);
});
tbsBudgetLogService.saveBatch(budgetLogList);
//保存新的预算占用
SysUser sysUser = sysUserService.getById(costApply.getUserId());
List<TbsBudgetCostItem> budgetCostItemList = tbsBudgetCostItemService.listByCostApplyId(costApply.getId());
List<Long> budgetIds = budgetCostItemList.stream().map(TbsBudgetCostItem::getBudgetId).collect(Collectors.toList());
List<TbsBudget> budgetList = tbsBudgetMapper.selectBatchIds(budgetIds);
List<TbsBudgetLog> newBudgetLogList = this.createNewBudgetLogs(costApply, activityCenterGoodsList, sysUser, budgetCostItemList, budgetList);
tbsBudgetLogService.saveBatch(newBudgetLogList);
for (TbsBudgetCostItem costItem : budgetCostItemList) {
for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) {
if(costItem.getCenterGoodItemId().equals(centerGoods.getId())){
costItem.setCenterGoodsAmount(centerGoods.getCenterGoodsAmount());
tbsBudgetCostItemService.updateById(costItem);
}
}
}
LambdaQueryWrapper<TbsBudgetLog> budgetLogLqw = new LambdaQueryWrapper<>();
budgetLogLqw.eq(TbsBudgetLog::getCostApplyId,costApply.getId());
List<TbsBudgetLog> budgetLogList = tbsBudgetLogMapper.selectList(budgetLogLqw);
for (TbsBudgetLog budgetLog : budgetLogList) {
for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) {
if( budgetLog.getSubjectId().equals(centerGoods.getSubjectId())
&& budgetLog.getCenterType().equals(centerGoods.getCenterType())
&& budgetLog.getCenterId().equals(centerGoods.getCenterId())
){
budgetLog.setAmount(centerGoods.getCenterGoodsAmount().negate());
tbsBudgetLogMapper.updateById(budgetLog);
}
}
}
// //修改预算占用
// TbsActivityCenterGoodsService tbsActivityCenterGoodsService = SpringUtils.getBean(TbsActivityCenterGoodsService.class);
// List<TbsActivityCenterGoods> activityCenterGoodsList = tbsActivityCenterGoodsService.listByCostApplyId(costApply.getId());
// //查询当前预算占用
// LambdaQueryWrapper<TbsBudgetLog> logLqw = new LambdaQueryWrapper<>();
// logLqw.eq(TbsBudgetLog::getRollbackFlag,BudgetLogRollbackFlag.State_0);
// logLqw.eq(TbsBudgetLog::getCostApplyId, costApply.getId());
// logLqw.and(qw->{
// qw.eq(TbsBudgetLog::getOptType,BudgetLogOptFlag.State_1.getCode()).or()
// .eq(TbsBudgetLog::getOptType,BudgetLogOptFlag.State_6.getCode());
// });
// //设置为回滚完成,防止出现多次查询
// List<TbsBudgetLog> budgetLogList = tbsBudgetLogService.list(logLqw);
// budgetLogList.forEach(bl->{
// bl.setRollbackFlag(BudgetLogRollbackFlag.State_2);
// });
// tbsBudgetLogService.updateBatchById(budgetLogList);
// //移除旧预算占用,即添预算
// budgetLogList.forEach(bl->{
// bl.setId(null);
// bl.setOptType(BudgetLogOptFlag.State_5.getCode());
// bl.setAmount(bl.getAmount().negate());
// bl.setCreateBy(null);
// bl.setCreateTime(null);
// bl.setUpdateTime(null);
// bl.setUpdateBy(null);
// });
// tbsBudgetLogService.saveBatch(budgetLogList);
// //保存新的预算占用
// SysUser sysUser = sysUserService.getById(costApply.getUserId());
// List<TbsBudgetCostItem> budgetCostItemList = tbsBudgetCostItemService.listByCostApplyId(costApply.getId());
// List<Long> budgetIds = budgetCostItemList.stream().map(TbsBudgetCostItem::getBudgetId).collect(Collectors.toList());
// List<TbsBudget> budgetList = tbsBudgetMapper.selectBatchIds(budgetIds);
// List<TbsBudgetLog> newBudgetLogList = this.createNewBudgetLogs(costApply, activityCenterGoodsList, sysUser, budgetCostItemList, budgetList);
// tbsBudgetLogService.saveBatch(newBudgetLogList);
}
/**

50
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsDealErrorApplication.java

@ -1,21 +1,20 @@
package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.qs.serve.common.util.JsonUtil;
import com.qs.serve.modules.sys.entity.SysSyncLog;
import com.qs.serve.modules.sys.mapper.SysSyncLogMapper;
import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods;
import com.qs.serve.modules.tbs.entity.TbsBudgetCostItem;
import com.qs.serve.modules.tbs.entity.TbsBudgetLog;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.mapper.TbsActivityCenterGoodsMapper;
import com.qs.serve.modules.tbs.mapper.TbsBudgetCostItemMapper;
import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.mapper.*;
import com.qs.serve.modules.third.entity.ProcessCreateCostApplyBo;
import com.qs.serve.modules.third.entity.ProcessGoodsItem;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.HashMap;
@ -35,7 +34,12 @@ public class TbsDealErrorApplication {
private final TbsBudgetLogMapper tbsBudgetLogMapper;
private final SysSyncLogMapper sysSyncLogMapper;
private final TbsActivityCenterGoodsMapper activityCenterGoodsMapper;
private final TbsActivityCenterMapper activityCenterMapper;
private final TbsActivitySubjectMapper activitySubjectMapper;
private final TbsActivityMapper activityMapper;
private final TbsBudgetCostItemMapper budgetCostItemMapper;
private final VtbVerificationMapper verificationMapper;
private final TbsCostApplyMapper costApplyMapper;
/**
@ -97,6 +101,38 @@ public class TbsDealErrorApplication {
}
}
}
}
@Transactional(rollbackFor = Exception.class)
public void releaseAll(Long costId){
VtbVerification verification = new VtbVerification();
LambdaQueryWrapper<VtbVerification> veriLqw = new LambdaQueryWrapper<>();
veriLqw.in(VtbVerification::getVerificationState,0,1);
Long count = verificationMapper.selectCount(veriLqw);
if(count>0){
log.warn("存在核销记录,释放中断!");
return;
}
QueryWrapper qw = new QueryWrapper();
qw.eq("cost_apply_id",costId);
tbsBudgetLogMapper.delete(qw);
budgetCostItemMapper.delete(qw);
TbsCostApply costApply = costApplyMapper.selectById(costId);
costApply.setCheckState(3);
costApply.setChargeState(6);
costApply.setTotalActivityUsedAmount(BigDecimal.ZERO);
costApplyMapper.updateById(costApply);
List<TbsActivity> activityList = activityMapper.selectList(qw);
for (TbsActivity activity : activityList) {
activity.setReleaseFlag(1);
activity.setReleaseAmount(activity.getTotalAmount());
activity.setReleaseUserId("0");
activity.setReleaseUserName("系统释放");
activityMapper.updateById(activity);
}
}

13
src/main/java/com/qs/serve/modules/third/PortalOfCostController.java

@ -125,19 +125,6 @@ public class PortalOfCostController {
return R.error("支付异常");
}
/**
* 一站式创建费用(政策)
* @param createBo
* @return
*/
//@PostMapping("createByPolicy")
public R<?> createCostProcess2(@Valid @RequestBody ProcessCreatePolicyCostBo createBo, HttpServletRequest request){
ThirdTokenUtil.checkToken(request);
log.debug("一站式创建费用(政策)===>{}", JsonUtil.objectToJson(createBo));
portalOfCostApplication.createCostProcessByPolicy(createBo);
return R.ok();
}
/**

11
src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java

@ -377,15 +377,16 @@ public class PortalOfCostApplication {
centerGoods.setTargetLevelPathIds(activityGoods.getTargetLevelPathIds());
centerGoods.setTargetLevelPathNames(activityGoods.getTargetLevelPathNames());
// 分配金额
BigDecimal totalSkuAmt = BigDecimal.ZERO;
for (ProcessGoodsItem goodsItem : processGoodsItems) {
if(goodsItem.getInventoryCode().equals(activityGoods.getTargetCode())){
BigDecimal rate = goodsItem.getAmount().divide(totalAmount, RoundingMode.UP);
centerGoods.setCenterGoodsAmount(goodsItem.getAmount());
centerGoods.setCenterGoodsRate(rate);
centerGoods.setUsedAmount(goodsItem.getAmount());
break;
totalSkuAmt = totalSkuAmt.add(goodsItem.getAmount());
}
}
BigDecimal rate = totalSkuAmt.divide(totalAmount, RoundingMode.UP);
centerGoods.setCenterGoodsAmount(totalSkuAmt);
centerGoods.setCenterGoodsRate(rate);
centerGoods.setUsedAmount(totalSkuAmt);
activityCenterGoodsList.add(centerGoods);
}

Loading…
Cancel
Save