Browse Source

调整

v1.0
Yen 2 years ago
parent
commit
63f6bdb2c4
  1. 4
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java
  2. 17
      src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java
  3. 4
      src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java
  4. 5
      src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java
  5. 25
      src/main/java/com/qs/serve/modules/oms/entity/bo/OmsSpuAssesInfoBo.java
  6. 6
      src/main/java/com/qs/serve/modules/oms/entity/vo/OmsConfirmOrderResult.java
  7. 16
      src/main/java/com/qs/serve/modules/oms/entity/vo/OmsSpuAssesInfo.java
  8. 11
      src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java
  9. 91
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java
  10. 26
      src/main/java/com/qs/serve/modules/tbs/common/util/QuarterUtil.java
  11. 30
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

4
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java

@ -93,8 +93,8 @@ public class BmsSupplierAddressController {
}else {
param.setDefaultFlag(0);
}
boolean result = bmsSupplierAddressService.save(param);
return R.isTrue(result);
bmsSupplierAddressService.save(param);
return R.ok(param);
}
/**

17
src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java

@ -8,8 +8,12 @@ import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.oms.entity.OmsOrderItem;
import com.qs.serve.modules.oms.entity.bo.OmsCheckParam;
import com.qs.serve.modules.oms.entity.bo.OmsSpuAssesInfoBo;
import com.qs.serve.modules.oms.entity.bo.OmsUrgentParam;
import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo;
import com.qs.serve.modules.oms.service.OmsOrderItemService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
@ -21,6 +25,8 @@ import com.qs.serve.modules.oms.service.OmsOrderService;
import javax.validation.Valid;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 订单模块 订单
@ -34,6 +40,7 @@ import java.util.List;
public class OmsOrderController {
private OmsOrderService omsOrderService;
private OmsOrderItemService omsOrderItemService;
/**
* 翻页
@ -121,5 +128,15 @@ public class OmsOrderController {
return R.error("当前状态无法删除");
}
/**
* 预估信息
* @param param
* @return
*/
@PostMapping("/assess")
public R<List<OmsSpuAssesInfo>> getSpuAssess(@Valid @RequestBody OmsSpuAssesInfoBo param){
return R.ok(omsOrderService.getSpuAssess(param));
}
}

4
src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java

@ -36,6 +36,9 @@ public class OmsOrder implements Serializable {
@TableField(condition = SqlCondition.LIKE)
private String orderSn;
/** 订单类型:0->普通订单 */
private Integer orderType;
/** 供应商ID */
@NotNull(message = "供应商ID不能为空")
private Long supplierId;
@ -154,5 +157,6 @@ public class OmsOrder implements Serializable {
@TableField(exist = false)
private Object checkUserInfo;
}

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

@ -3,6 +3,7 @@ package com.qs.serve.modules.oms.entity;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -113,5 +114,9 @@ public class OmsOrderItem implements Serializable {
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 评估数量列表 */
@TableField(exist = false)
private List<?> assessInfoList;
}

25
src/main/java/com/qs/serve/modules/oms/entity/bo/OmsSpuAssesInfoBo.java

@ -0,0 +1,25 @@
package com.qs.serve.modules.oms.entity.bo;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.util.List;
/**
* @author YenHex
* @since 2023/9/28
*/
@Data
public class OmsSpuAssesInfoBo {
/** 年 */
private Integer yearNum;
/** 月 */
private Integer monthNum;
/** 供应商ID */
private String supplierId;
/** spuId列表 */
private List<Long> spuIds;
}

6
src/main/java/com/qs/serve/modules/oms/entity/vo/OmsConfirmOrderResult.java

@ -21,6 +21,8 @@ public class OmsConfirmOrderResult {
private BmsSupplier supplier;
private Integer orderType;
/** 购物车列表 */
private List<OmsShoppingCart> shoppingCarts;
@ -33,4 +35,8 @@ public class OmsConfirmOrderResult {
@JsonIgnore
private ShoppingCartsCheckResult cartsCheckResult;
/** 维度来源 sku、spu */
@JsonIgnore
private String latitudeFrom;
}

16
src/main/java/com/qs/serve/modules/oms/entity/vo/OmsSpuAssesInfo.java

@ -0,0 +1,16 @@
package com.qs.serve.modules.oms.entity.vo;
import lombok.Data;
/**
* @author YenHex
* @since 2023/9/28
*/
@Data
public class OmsSpuAssesInfo {
private Long spuId;
private Integer num;
}

11
src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java

@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.oms.entity.OmsOrder;
import com.qs.serve.modules.oms.entity.bo.OmsOrderBo;
import com.qs.serve.modules.oms.entity.bo.OmsOrderPcBo;
import com.qs.serve.modules.oms.entity.bo.OmsSpuAssesInfoBo;
import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult;
import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo;
import java.util.List;
/**
* 订单 服务接口
* @author YenHex
@ -43,5 +45,12 @@ public interface OmsOrderService extends IService<OmsOrder> {
*/
OmsOrder createOrderPc(OmsOrderPcBo omsOrderBo);
/**
* 获取spu预估信息
* @param param
* @return
*/
List<OmsSpuAssesInfo> getSpuAssess(OmsSpuAssesInfoBo param);
}

91
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.oms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.*;
@ -17,11 +18,17 @@ import com.qs.serve.modules.oms.entity.bo.CreateOrderParam;
import com.qs.serve.modules.oms.entity.bo.OmsOrderBo;
import com.qs.serve.modules.oms.entity.bo.OmsOrderBo.*;
import com.qs.serve.modules.oms.entity.bo.OmsOrderPcBo;
import com.qs.serve.modules.oms.entity.bo.OmsSpuAssesInfoBo;
import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount;
import com.qs.serve.modules.oms.entity.dto.ShoppingCartsCheckResult;
import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult;
import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo;
import com.qs.serve.modules.oms.service.OmsOrderItemService;
import com.qs.serve.modules.oms.service.OmsShoppingCartService;
import com.qs.serve.modules.sale.entity.SalePlan;
import com.qs.serve.modules.sale.entity.SalePlanGoods;
import com.qs.serve.modules.sale.mapper.SalePlanGoodsMapper;
import com.qs.serve.modules.sale.mapper.SalePlanMapper;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor;
@ -34,9 +41,7 @@ import com.qs.serve.modules.oms.mapper.OmsOrderMapper;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -55,6 +60,8 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
private BmsSupplierAddressService bmsSupplierAddressService;
private SysUserService sysUserService;
private OmsOrderItemService omsOrderItemService;
private SalePlanMapper salePlanMapper;
private SalePlanGoodsMapper salePlanGoodsMapper;
@Override
@ -98,6 +105,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getDefault(Long.parseLong(supplier.getId()));
OmsConfirmOrderResult confirmOrderResult = new OmsConfirmOrderResult();
confirmOrderResult.setSupplier(supplier);
confirmOrderResult.setOrderType(confirmOrder.getOrderType());
confirmOrderResult.setShoppingCarts(shoppingCarts);
confirmOrderResult.setDefaultAddress(supplierAddress);
confirmOrderResult.setAmountInfo(calcAmount);
@ -150,6 +158,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
confirmOrderResult.setDefaultAddress(supplierAddress);
confirmOrderResult.setAmountInfo(calcAmount);
confirmOrderResult.setShoppingCarts(shoppingCartList);
confirmOrderResult.setOrderType(confirmOrder.getOrderType());
return confirmOrderResult;
}
@ -157,14 +166,17 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
@Transactional(rollbackFor = Exception.class)
public OmsOrder createOrder(OmsOrderBo omsOrderBo) {
OmsConfirmOrderResult confirmOrder = this.confirmOrder(omsOrderBo);
confirmOrder.setLatitudeFrom("SKU");
CreateOrderParam createOrderParam = omsOrderBo.getCreateOrderParam();
return this.buildOmsOrder(confirmOrder, createOrderParam);
}
@Override
@Transactional(rollbackFor = Exception.class)
public OmsOrder createOrderPc(OmsOrderPcBo omsOrderBo) {
OmsConfirmOrderResult confirmOrder = this.confirmOrderPc(omsOrderBo);
confirmOrder.setLatitudeFrom("SPU");
CreateOrderParam createOrderParam = omsOrderBo.getCreateOrderParam();
return this.buildOmsOrder(confirmOrder, createOrderParam);
}
@ -180,6 +192,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
List<OmsShoppingCart> shoppingCarts = confirmOrder.getShoppingCarts();
OmsOrder order = new OmsOrder();
order.setOrderSn("SN"+CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder));
order.setOrderType(confirmOrder.getOrderType());
order.setSupplierId(Long.parseLong(supplier.getId()));
order.setSupplierCode(supplier.getCode());
order.setSupplierName(supplier.getName());
@ -195,27 +208,43 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
this.save(order);
List<OmsOrderItem> orderItems = new ArrayList<>();
for (OmsShoppingCart shoppingCart : shoppingCarts) {
GoodSkuVo goodSkuVo = shoppingCart.getGoodSkuVo();
OmsOrderItem orderItem = new OmsOrderItem();
orderItem.setOrderId(order.getId());
orderItem.setOrderSn(order.getOrderSn());
orderItem.setSpuId(goodSkuVo.getSpuId());
orderItem.setSpuCode(goodSkuVo.getSpuCode());
orderItem.setSpuTitle(goodSkuVo.getName());
orderItem.setSkuId(goodSkuVo.getId());
orderItem.setSkuCode(goodSkuVo.getSkuCode());
orderItem.setSkuUnit(goodSkuVo.getUnitName());
orderItem.setSkuImg(goodSkuVo.getPicUrl());
orderItem.setSpecValues(goodSkuVo.getSpecInfos());
if(confirmOrder.getLatitudeFrom()!=null&&confirmOrder.getLatitudeFrom().equals("SPU")){
// spu维度
orderItem.setSpuId(shoppingCart.getSpuId());
orderItem.setSpuCode(shoppingCart.getSpuCode());
orderItem.setSpuTitle(shoppingCart.getSpecInfo());
orderItem.setSkuId(shoppingCart.getId());
orderItem.setSkuCode(shoppingCart.getSkuCode());
orderItem.setSkuUnit(null);
orderItem.setSkuImg(shoppingCart.getPicUrl());
orderItem.setSpecValues(shoppingCart.getSpecInfo());
orderItem.setMarketPrice(BigDecimal.ZERO);
orderItem.setSalesPrice(BigDecimal.ZERO);
}else {
// 默认sku
GoodSkuVo goodSkuVo = shoppingCart.getGoodSkuVo();
orderItem.setSpuId(goodSkuVo.getSpuId());
orderItem.setSpuCode(goodSkuVo.getSpuCode());
orderItem.setSpuTitle(goodSkuVo.getName());
orderItem.setSkuId(goodSkuVo.getId());
orderItem.setSkuCode(goodSkuVo.getSkuCode());
orderItem.setSkuUnit(goodSkuVo.getUnitName());
orderItem.setSkuImg(goodSkuVo.getPicUrl());
orderItem.setSpecValues(goodSkuVo.getSpecInfos());
orderItem.setMarketPrice(goodSkuVo.getMarketPrice());
orderItem.setSalesPrice(goodSkuVo.getSalesPrice());
}
orderItem.setQuantity(shoppingCart.getQuantity());
orderItem.setMarketPrice(goodSkuVo.getMarketPrice());
orderItem.setSalesPrice(goodSkuVo.getSalesPrice());
orderItem.setCusPrice(shoppingCart.getSupplierSalesPrice());
orderItems.add(orderItem);
}
omsOrderItemService.saveBatch(orderItems);
//清空勾选的购物车
List<Long> cartIds = confirmOrder.getShoppingCarts().stream()
.filter(a->a.getId()!=null)
.map(OmsShoppingCart::getId).collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(cartIds)){
omsShoppingCartService.removeBatchByIds(cartIds);
@ -223,5 +252,39 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
return order;
}
@Override
public List<OmsSpuAssesInfo> getSpuAssess(OmsSpuAssesInfoBo param) {
List<Long> spuIds = param.getSpuIds();
Integer year = param.getYearNum();
Integer month = param.getMonthNum();
String supplierId = param.getSupplierId();
LambdaQueryWrapper<SalePlan> spLqw = new LambdaQueryWrapper<>();
spLqw.eq(SalePlan::getYearNum,year);
spLqw.eq(SalePlan::getMonthNum,month);
spLqw.eq(SalePlan::getSupplierId,supplierId);
spLqw.eq(SalePlan::getPlanState,1);
List<SalePlan> salePlanList = salePlanMapper.selectList(spLqw);
Map<Long,Integer> spuIdAndSum = new HashMap<>();
if(salePlanList.size()>0){
List<Long> spIds = salePlanList.stream().map(SalePlan::getId).collect(Collectors.toList());
LambdaQueryWrapper<SalePlanGoods> spgLqw = new LambdaQueryWrapper<>();
spgLqw.eq(SalePlanGoods::getPlanId,spIds);
spgLqw.in(SalePlanGoods::getTargetId,spuIds);
List<SalePlanGoods> salePlanGoodsList = salePlanGoodsMapper.selectList(spgLqw);
for (SalePlanGoods planGoods : salePlanGoodsList) {
spuIdAndSum.merge(planGoods.getTargetId(), planGoods.getQty(), Integer::sum);
}
}
List<OmsSpuAssesInfo> spuAssesInfoList = new ArrayList<>();
for (Long spuId : spuIds) {
OmsSpuAssesInfo assesInfo = new OmsSpuAssesInfo();
assesInfo.setSpuId(spuId);
Integer sum = spuIdAndSum.get(spuId);
assesInfo.setNum(sum==null?0:sum);
spuAssesInfoList.add(assesInfo);
}
return spuAssesInfoList;
}
}

26
src/main/java/com/qs/serve/modules/tbs/common/util/QuarterUtil.java

@ -16,7 +16,13 @@ public class QuarterUtil {
public static final List<Integer> q3 = Arrays.asList(7,8,9);
public static final List<Integer> q4 = Arrays.asList(10,11,12);
public static final List<Integer> getQuarterNumbers(Integer year,Integer month){
/**
* 获取季度月份
* @param year
* @param month
* @return
*/
public static List<Integer> getQuarterNumbers(Integer year,Integer month){
Integer year100 = year*100;
if(q1.contains(month)){
return q1.stream().map(a->year100+a).collect(Collectors.toList());
@ -30,4 +36,22 @@ public class QuarterUtil {
return null;
}
/**
* 返回第几季度
* @param month
* @return
*/
public static Integer getQuarterNumber(Integer month){
if(q1.contains(month)){
return 1;
}else if(q2.contains(month)){
return 2;
}else if(q3.contains(month)){
return 3;
}else if(q4.contains(month)){
return 4;
}
return null;
}
}

30
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -32,6 +32,7 @@ import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsActivityState;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.common.util.QuarterUtil;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo;
@ -823,6 +824,35 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
data.put("jinE", verification.getAmount().toString());
data.put("money", verification.getAmount().toString());
//核销拓展时间信息
//activityQuarter 活动期间所属季度
//activityMonth 活动期间所属月份
//activityYear 活动期间所属年份
try {
data.put("activityQuarter", QuarterUtil.getQuarterNumber(activity.getActStartDate().getMonthValue()));
data.put("activityMonth",activity.getActStartDate().getMonthValue());
data.put("activityYear", activity.getActStartDate().getYear());
} catch (Exception e) {
log.warn("核销时设置时间信息失败,活动:{}",JsonUtil.objectToJson(activity));
}
//读取费用申请时的费率
// LambdaQueryWrapper<TbsCostPercent> costPercentLambdaQueryWrapper = new LambdaQueryWrapper<>();
// costPercentLambdaQueryWrapper.eq(TbsCostPercent::getCostApplyId, activity.getCostApplyId());
// List<TbsCostPercent> costPercentList = costPercentMapper.selectList(costPercentLambdaQueryWrapper);
// if(costPercentList.size()>0){
// TbsCostPercent costPercent = costPercentList.get(0);
// data.put("ytdCusExpenseRate",costPercent.getYtdCustomerPercent());
// data.put("ytdEmpExpenseRate",costPercent.getYtdUserPercent());
// data.put("ytdAdminiExpenseRate",costPercent.getYtdRegionPercent());
// data.put("ytdSalesExpenseRate",costPercent.getYtdRegion2Percent());
// data.put("cusExpenseRate",costPercent.getQtdCustomerPercent());
// data.put("empExpenseRate",costPercent.getQtdUserPercent());
// data.put("salesExpenseRate",costPercent.getQtdRegionPercent());
// data.put("adminiExpenseRate",costPercent.getQtdRegion2Percent());
// data.put("budgetExpenseRate",costPercent.getQtdBudgetPercent());
// data.put("ytdBudgetExpenseRate",costPercent.getYtdBudgetPercent());
// }
//读取费费率
TbsCostApply tbsCostApply = costApplyService.getById(activity.getCostApplyId());
costApplyService.buildMainData4ROI(tbsCostApply,data);

Loading…
Cancel
Save