Browse Source

perf:订单添加产地相关信息

checkBack
Yen 1 year ago
parent
commit
47f9c8749d
  1. 3
      src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java
  2. 3
      src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java
  3. 2
      src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java
  4. 8
      src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java
  5. 7
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java
  6. 12
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java
  7. 3
      src/main/java/com/qs/serve/modules/tbs/service/TbsActivityDebugApplicationService.java
  8. 112
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetReleaseApplicationService.java
  9. 4
      src/main/java/com/qs/serve/modules/vtb/mapper/VtbFundFlowMapper.java
  10. 3
      src/main/resources/mapper/goods/GoodsSpuMapper.xml
  11. 20
      src/main/resources/mapper/vtb/VtbFundFlowMapper.xml

3
src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java

File diff suppressed because one or more lines are too long

3
src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java

@ -209,6 +209,9 @@ public class GoodsSpu implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String skuName; private String skuName;
@TableField(exist = false)
private String skuBelong;
@TableField(exist = false) @TableField(exist = false)
private String belong; private String belong;

2
src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java

@ -260,6 +260,8 @@ public class OmsOrderApi {
GoodsSku goodsSku = goodsSkuService.getById(orderItem.getSkuId()); GoodsSku goodsSku = goodsSkuService.getById(orderItem.getSkuId());
if(goodsSku!=null){ if(goodsSku!=null){
orderItem.setSkuSpecialFlag(goodsSku.getSpecialFlag()); orderItem.setSkuSpecialFlag(goodsSku.getSpecialFlag());
orderItem.setSkuBelong(goodsSku.getBelong());
orderItem.setSkuAddCode(goodsSku.getSkuAddCode());
} }
} }
omsOrder.setOrderItems(list); omsOrder.setOrderItems(list);

8
src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java

@ -129,6 +129,14 @@ public class OmsOrderItem implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private Object spuInfo; private Object spuInfo;
/** skuBelong */
@TableField(exist = false)
private Object skuBelong;
/** skuBelong */
@TableField(exist = false)
private Object skuAddCode;
/** 分类 */ /** 分类 */
@TableField(exist = false) @TableField(exist = false)
private Object categoryInfo; private Object categoryInfo;

7
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java

@ -110,9 +110,11 @@ public class TbsActivityController {
@GetMapping("/resetList") @GetMapping("/resetList")
public R<?> reset(){ public R<?> reset(){
Long[] ids = new Long[]{ Long[] ids = new Long[]{
1701432L,1701437L,1701438L,1701439L,1701440L,1701441L,1701442L,1701443L,1701444L,1701741L,1701743L,1701744L,
1701895L,1701898L,1701943L,1701988L,1701989L,1701990L,1701991L,1701993L,1701994L,1701996L,1702000L,1702001L,1702003L,1702005L,1702007L,1702009L,1702010L,1702012L,1702028L,1702207L,1702212L,1702213L,1702214L,1702269L,1702283L,1702284L,1702342L,1702344L,1702345L,1702346L,1702349L,1702380L
}; };
for (Long id : ids) { for (Long id : ids) {
tbsActivityDebugApplicationService.reset(id); System.out.println(tbsActivityDebugApplicationService.reset(id));
} }
return R.ok(); return R.ok();
} }
@ -535,6 +537,7 @@ public class TbsActivityController {
public R<TbsActivityDefaultCenterVo> getDefaultCenter(@RequestBody TbsActivityDefaultCenterBo defaultCenterBo){ public R<TbsActivityDefaultCenterVo> getDefaultCenter(@RequestBody TbsActivityDefaultCenterBo defaultCenterBo){
String goodsType = defaultCenterBo.getActivityGoodsType(); String goodsType = defaultCenterBo.getActivityGoodsType();
List<Long> goodsIds = defaultCenterBo.getGoodsIds(); List<Long> goodsIds = defaultCenterBo.getGoodsIds();
goodsIds = goodsIds.stream().filter(Objects::nonNull).collect(Collectors.toList());
Long subjectId = defaultCenterBo.getSubjectId(); Long subjectId = defaultCenterBo.getSubjectId();
Long supplierId = defaultCenterBo.getSupplierId(); Long supplierId = defaultCenterBo.getSupplierId();
BmsSupplier supplier = bmsSupplierService.getById(supplierId); BmsSupplier supplier = bmsSupplierService.getById(supplierId);
@ -572,7 +575,7 @@ public class TbsActivityController {
} }
} }
} }
List<Long> budgetIds = budgetList.stream().map(a->a.getId()).collect(Collectors.toList()); List<Long> budgetIds = budgetList.stream().map(TbsBudget::getId).collect(Collectors.toList());
LambdaQueryWrapper<TbsBudgetCondition> lqwCon = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbsBudgetCondition> lqwCon = new LambdaQueryWrapper<>();
lqwCon.in(TbsBudgetCondition::getBudgetId,budgetIds); lqwCon.in(TbsBudgetCondition::getBudgetId,budgetIds);
List<TbsBudgetCondition> budgetConditionsAll = tbsBudgetConditionService.list(lqwCon); List<TbsBudgetCondition> budgetConditionsAll = tbsBudgetConditionService.list(lqwCon);

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

@ -17,6 +17,7 @@ import com.qs.serve.modules.tbs.entity.so.TbsBudgetSo;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo;
import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper;
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper;
import com.qs.serve.modules.tbs.service.TbsBudgetReleaseApplicationService;
import com.qs.serve.modules.tbs.service.TbsBudgetService; import com.qs.serve.modules.tbs.service.TbsBudgetService;
import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService; import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -46,6 +47,7 @@ import java.util.stream.Collectors;
@RequestMapping("tbs/budgetLog") @RequestMapping("tbs/budgetLog")
public class TbsBudgetLogController { public class TbsBudgetLogController {
private TbsBudgetReleaseApplicationService tbsBudgetReleaseApplicationService;
private TbsBudgetLogService tbsBudgetLogService; private TbsBudgetLogService tbsBudgetLogService;
private TbsBudgetService tbsBudgetService; private TbsBudgetService tbsBudgetService;
private TbsBudgetLogMapper tbsBudgetLogMapper; private TbsBudgetLogMapper tbsBudgetLogMapper;
@ -53,6 +55,16 @@ public class TbsBudgetLogController {
private TbsScheduleItemBudgetService tbsScheduleItemBudgetService; private TbsScheduleItemBudgetService tbsScheduleItemBudgetService;
private TbsBudgetLogService budgetLogService; private TbsBudgetLogService budgetLogService;
/**
* 修复释放费用
* @return
*/
@GetMapping("/debug")
public R<?> debug(){
tbsBudgetReleaseApplicationService.check();
return R.ok();
}
/** /**
* 翻页 * 翻页
* @param param * @param param

3
src/main/java/com/qs/serve/modules/tbs/service/TbsActivityDebugApplicationService.java

@ -79,6 +79,9 @@ public class TbsActivityDebugApplicationService {
//校验核销金额,错误则不执行 //校验核销金额,错误则不执行
BigDecimal totalVerificationAmt = verificationMapper.getActivityVerificationAmt(activityId); BigDecimal totalVerificationAmt = verificationMapper.getActivityVerificationAmt(activityId);
if(totalVerificationAmt==null){
totalVerificationAmt = BigDecimal.ZERO;
}
if(activity.getUsedAmount().compareTo(BigDecimal.ZERO)!=0 if(activity.getUsedAmount().compareTo(BigDecimal.ZERO)!=0
&&activity.getUsedAmount().compareTo(totalVerificationAmt)!=0){ &&activity.getUsedAmount().compareTo(totalVerificationAmt)!=0){
return "核销金额异常"; return "核销金额异常";

112
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetReleaseApplicationService.java

@ -1,18 +1,128 @@
package com.qs.serve.modules.tbs.service; package com.qs.serve.modules.tbs.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.vtb.common.VtbFundFlowType;
import com.qs.serve.modules.vtb.entity.VtbFundFlow;
import com.qs.serve.modules.vtb.mapper.VtbFundFlowMapper;
import com.qs.serve.modules.vtb.service.VtbFundFlowService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @author YenHex * @author YenHex
* @since 2024/5/28 * @since 2024/5/28
*/ */
@Slf4j
@Service
@AllArgsConstructor
public class TbsBudgetReleaseApplicationService { public class TbsBudgetReleaseApplicationService {
private final VtbFundFlowService fundFlowService;
private final VtbFundFlowMapper vtbFundFlowMapper;
private final TbsBudgetService budgetService;
private final TbsBudgetLogService budgetLogService;
private final TbsBudgetCostItemService budgetCostItemService;
private final TbsActivityService activityService;
private final TbsActivityCenterGoodsService activityCenterGoodsService;
private final TbsCostApplyService costApplyService;
private final TbsActivityPayConditionService activityPayConditionService;
public void check(){ public void check(){
//校验活动的核销金额是否匹配,不匹配则中断 //校验活动的核销金额是否匹配,不匹配则中断
//查询需要补偿释放的活动ID //查询需要补偿释放的活动ID
List<Long> activitIds = new ArrayList<>(); List<Long> activityIds = vtbFundFlowMapper.listMissReleaseActivityId();
for (Long activityId : activityIds) {
TbsActivity activity = activityService.getById(activityId);
TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId());
//保存预算日志
List<TbsActivityCenterGoods> centerGoodsList = activityCenterGoodsService.listByActivityId(activityId);
LambdaQueryWrapper<TbsBudgetCostItem> itemLqw = new LambdaQueryWrapper<>();
itemLqw.eq(TbsBudgetCostItem::getActivityId,activityId);
List<TbsBudgetCostItem> budgetCostItemList = budgetCostItemService.list(itemLqw);
List<Long> budgetIds = budgetCostItemList.stream().map(TbsBudgetCostItem::getBudgetId).collect(Collectors.toList());
if(CollUtil.isEmpty(budgetIds)){
continue;
}
List<TbsBudget> budgetLIst = budgetService.listByIds(budgetIds);
List<TbsBudgetLog> budgetLogList = new ArrayList<>();
for (TbsActivityCenterGoods centerGoods : centerGoodsList) {
if(centerGoods.getCenterGoodsAmount().compareTo(centerGoods.getUsedAmount())<1){
continue;
}
TbsBudgetCostItem currCostItem = null;
TbsBudget currentBudget = null;
for (TbsBudgetCostItem costItem : budgetCostItemList) {
if(centerGoods.getId().equals(costItem.getCenterGoodItemId())){
currCostItem = costItem;
break;
}
}
for (TbsBudget budget : budgetLIst) {
if (currCostItem.getBudgetId().equals(budget.getId())){
currentBudget = budget;
}
}
BigDecimal amount = centerGoods.getCenterGoodsAmount().subtract(centerGoods.getUsedAmount());
SysUser sysUser = new SysUser();
sysUser.setId("0");
sysUser.setName("系统执行");
sysUser.setCode("0");
TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.buildTbsBudgetLog(BudgetLogOptFlag.State_4,sysUser,costApply,currCostItem,currentBudget,amount,activity);
budgetLogList.add(budgetLog);
}
//移除历史记录
fundFlowService.remove(
new LambdaQueryWrapper<VtbFundFlow>()
.eq(VtbFundFlow::getFundType, VtbFundFlowType.Release)
.eq(VtbFundFlow::getCostApplyId,activity.getCostApplyId())
.eq(VtbFundFlow::getActivityId,activity.getId())
);
VtbFundFlow fundFlow = new VtbFundFlow();
fundFlow.setFundType(VtbFundFlowType.Release);
fundFlow.setVerificationId(0L);
fundFlow.setCenterGoodsCode(activity.getActivityCode()+"_00");
fundFlow.setCostApplyId(activity.getCostApplyId());
fundFlow.setActivityId(activity.getId());
fundFlow.setUsedAmount(activity.getReleaseAmount());
fundFlow.setSupplierId(activity.getSupplierId());
fundFlow.setSupplierCode(activity.getSupplierCode());
fundFlow.setSupplierName(activity.getSupplierName());
fundFlowService.save(fundFlow);
//移除历史记录
budgetLogService.remove(new LambdaQueryWrapper<TbsBudgetLog>()
.eq(TbsBudgetLog::getCostApplyId,activity.getCostApplyId())
.eq(TbsBudgetLog::getOptType, BudgetLogOptFlag.State_4.getCode())
.eq(TbsBudgetLog::getActivityId,activity.getId()));
//更新付款条件状态
LambdaQueryWrapper<TbsActivityPayCondition> updLqw = new LambdaQueryWrapper<>();
updLqw.eq(TbsActivityPayCondition::getActivityId,activityId);
TbsActivityPayCondition payCondition = new TbsActivityPayCondition();
payCondition.setFinishedFlag(1);
activityPayConditionService.update(payCondition,updLqw);
//重新保存
if(CollectionUtil.isNotEmpty(budgetLogList)){
budgetLogService.saveBatch(budgetLogList);
}
}
} }

4
src/main/java/com/qs/serve/modules/vtb/mapper/VtbFundFlowMapper.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.vtb.mapper; package com.qs.serve.modules.vtb.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.common.model.AmountDTO; import com.qs.serve.common.model.AmountDTO;
import com.qs.serve.modules.vtb.entity.VtbFundFlow; import com.qs.serve.modules.vtb.entity.VtbFundFlow;
@ -14,6 +15,9 @@ import java.util.List;
*/ */
public interface VtbFundFlowMapper extends BaseMapper<VtbFundFlow> { public interface VtbFundFlowMapper extends BaseMapper<VtbFundFlow> {
@InterceptorIgnore(tenantLine = "1")
List<Long> listMissReleaseActivityId();
/** /**
* 统计金额 * 统计金额
* @param flow * @param flow

3
src/main/resources/mapper/goods/GoodsSpuMapper.xml

@ -36,7 +36,8 @@
goods_sku.sku_name as sku_name, goods_sku.sku_name as sku_name,
goods_sku.id as sku_id, goods_sku.id as sku_id,
goods_sku.sku_code as sku_code, goods_sku.sku_code as sku_code,
goods_sku.special_flag as sku_special_flag goods_sku.special_flag as sku_special_flag,
goods_sku.belong as sku_belong
</sql> </sql>

20
src/main/resources/mapper/vtb/VtbFundFlowMapper.xml

@ -98,6 +98,26 @@
GROUP BY center_good_item_id GROUP BY center_good_item_id
</select> </select>
<select id="listMissReleaseActivityId" resultType="java.lang.Long">
select
tbs_activity.id
from tbs_activity
left join tbs_cost_apply on tbs_activity.cost_apply_id = tbs_cost_apply.id
left join (
select activity_id,sum(amount) as log_release_amt from tbs_budget_log
where del_flag = 0 and activity_id is not null and opt_type = 4
group by activity_id
) budget_log on budget_log.activity_id = tbs_activity.id
where tbs_activity.del_flag = 0
and tbs_cost_apply.del_flag = 0
and tbs_cost_apply.charge_state in (1,2,3,7)
and tbs_cost_apply.cancel_flag = 0
and tbs_activity.cancel_flag = 0
and tbs_activity.release_flag = 1
and budget_log.log_release_amt is null
and tbs_activity.release_amount != 0
</select>
</mapper> </mapper>

Loading…
Cancel
Save