Browse Source

修改预算匹配规则;订单调整

v1.0
Yen 2 years ago
parent
commit
cef708ceed
  1. 2
      src/main/java/com/qs/serve/modules/bms/entity/BmsSupplierAddress.java
  2. 23
      src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java
  3. 7
      src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java
  4. 184
      src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrder.java
  5. 124
      src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrderItem.java
  6. 14
      src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderItemMapper.java
  7. 14
      src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderMapper.java
  8. 157
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java
  9. 47
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java
  10. 1
      src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java

2
src/main/java/com/qs/serve/modules/bms/entity/BmsSupplierAddress.java

@ -71,7 +71,7 @@ public class BmsSupplierAddress implements Serializable {
/** 手机号 */ /** 手机号 */
@NotBlank(message = "手机号不能为空") @NotBlank(message = "手机号不能为空")
@Length(max = 30,message = "手机号长度不能超过30字") @Length(max = 250,message = "手机号长度不能超过30字")
private String phone; private String phone;
/** 收件人 */ /** 收件人 */

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

@ -11,7 +11,11 @@ import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.BmsSupplierAddress; import com.qs.serve.modules.bms.entity.BmsSupplierAddress;
import com.qs.serve.modules.bms.service.BmsSupplierAddressService; import com.qs.serve.modules.bms.service.BmsSupplierAddressService;
import com.qs.serve.modules.goods.entity.GoodsCategory;
import com.qs.serve.modules.goods.entity.GoodsSpu;
import com.qs.serve.modules.goods.service.GoodsCategoryRuleService; import com.qs.serve.modules.goods.service.GoodsCategoryRuleService;
import com.qs.serve.modules.goods.service.GoodsCategoryService;
import com.qs.serve.modules.goods.service.GoodsSpuService;
import com.qs.serve.modules.oms.entity.OmsOrder; import com.qs.serve.modules.oms.entity.OmsOrder;
import com.qs.serve.modules.oms.entity.OmsOrderItem; import com.qs.serve.modules.oms.entity.OmsOrderItem;
import com.qs.serve.modules.oms.entity.bo.OmsCancelOrder; import com.qs.serve.modules.oms.entity.bo.OmsCancelOrder;
@ -46,6 +50,8 @@ public class OmsOrderApi {
private BmsSupplierAddressService bmsSupplierAddressService; private BmsSupplierAddressService bmsSupplierAddressService;
private SysUserService sysUserService; private SysUserService sysUserService;
private GoodsCategoryRuleService goodsCategoryRuleService; private GoodsCategoryRuleService goodsCategoryRuleService;
private GoodsSpuService goodsSpuService;
private GoodsCategoryService goodsCategoryService;
/** /**
* 确认订单 * 确认订单
@ -157,6 +163,12 @@ public class OmsOrderApi {
LambdaQueryWrapper<OmsOrderItem> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OmsOrderItem> lqw = new LambdaQueryWrapper<>();
lqw.eq(OmsOrderItem::getOrderId,id); lqw.eq(OmsOrderItem::getOrderId,id);
List<OmsOrderItem> list = omsOrderItemService.list(lqw); List<OmsOrderItem> list = omsOrderItemService.list(lqw);
for (OmsOrderItem orderItem : list) {
GoodsSpu goodsSpu = goodsSpuService.getById(orderItem.getSpuId());
GoodsCategory goodsCategory = goodsCategoryService.getById(goodsSpu.getCategoryLast());
orderItem.setCategoryInfo(goodsCategory);
orderItem.setSpuInfo(goodsSpu);
}
omsOrder.setOrderItems(list); omsOrder.setOrderItems(list);
return R.ok(omsOrder); return R.ok(omsOrder);
} }
@ -186,16 +198,11 @@ public class OmsOrderApi {
* @param id * @param id
* @return * @return
*/ */
@PostMapping("/buildPriceOrder") @PostMapping("/buildPriceOrder/{id}")
@SysLog(module = SystemModule.BASE, title = "订单", biz = BizType.DELETE) @SysLog(module = SystemModule.BASE, title = "订单", biz = BizType.DELETE)
public R<?> buildPriceOrder(@PathVariable("id") String id){ public R<?> buildPriceOrder(@PathVariable("id") String id){
OmsOrder omsOrder = omsOrderService.getById(id); omsOrderService.buildPriceOrder(id);
String userId = AuthContextUtils.getSysUserId(); return R.ok();
if(omsOrder==null || !omsOrder.getUserId().equals(userId)){
return R.error("订单不存在或被移除");
}
return R.error();
} }

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

@ -118,5 +118,12 @@ public class OmsOrderItem implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private List<?> assessInfoList; private List<?> assessInfoList;
/** Spu */
@TableField(exist = false)
private Object spuInfo;
/** 分类 */
@TableField(exist = false)
private Object categoryInfo;
} }

184
src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrder.java

@ -0,0 +1,184 @@
package com.qs.serve.modules.oms.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
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-10-09
*/
@Data
@TableName("oms_xlt_order")
public class OmsXltOrder implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.ASSIGN_UUID)
private String id;
/** 订单号 */
@NotBlank(message = "订单号不能为空")
@Length(max = 100,message = "订单号长度不能超过100字")
@TableField("dingDanHao")
private String dingDanHao;
/** 申请日期 */
@Length(max = 0,message = "申请日期长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField("shenQingRiQi")
private LocalDateTime shenQingRiQi;
/** 客户编号 */
@NotBlank(message = "客户编号不能为空")
@Length(max = 100,message = "客户编号长度不能超过100字")
@TableField("keHuBianHao")
private String keHuBianHao;
/** 收货地址 */
@Length(max = 100,message = "收货地址长度不能超过100字")
@TableField("shouHuoDiZhi")
private String shouHuoDiZhi;
/** 人员编号 */
@Length(max = 100,message = "人员编号长度不能超过100字")
@TableField("renYuanBianHao")
private String renYuanBianHao;
/** 注意事项 */
@TableField("zhuYiShiXian")
private String zhuYiShiXian;
/** 写入时间 */
@NotNull(message = "写入时间不能为空")
@Length(max = 0,message = "写入时间长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField("xieRuShiJian")
private LocalDateTime xieRuShiJian;
/** 处理时间 */
@Length(max = 0,message = "处理时间长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField("chuLiShiJian")
private LocalDateTime chuLiShiJian;
/** 状态 */
@TableField("zhuangTai")
private Integer zhuangTai;
/** 行创建日期 */
@Length(max = 0,message = "行创建日期长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField("rowCreateDate")
private LocalDateTime rowCreateDate;
/** 人员姓名 */
@Length(max = 100,message = "人员姓名长度不能超过100字")
@TableField("renYuanXingMing")
private String renYuanXingMing;
/** 人员电话 */
@Length(max = 100,message = "人员电话长度不能超过100字")
@TableField("renYuanDianHua")
private String renYuanDianHua;
/** 限制纬度 */
@Length(max = 100,message = "限制纬度长度不能超过100字")
@TableField("xianZhiWeiDu")
private String xianZhiWeiDu;
/** 限制纬度名称 */
@Length(max = 100,message = "限制纬度名称长度不能超过100字")
@TableField("xianZhiWeiDuMingChen")
private String xianZhiWeiDuMingChen;
/** 状态:0未使用;1报价单;2销售订单 */
private Integer status;
/**
* 人员名称
*/
@TableField("empName")
private String empName;
/**
* 客户编码
*/
@TableField("cusCode")
private String cusCode;
/**
* 客户名称
*/
@TableField("cusName")
private String cusName;
/**
* 城市
*/
@TableField("dealerCity")
private String dealerCity;
/**
* 省份
*/
@TableField("dealerProvince")
private String dealerProvince;
/**
* 区域
*/
@TableField("dealerArea")
private String dealerArea;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
}

124
src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrderItem.java

@ -0,0 +1,124 @@
package com.qs.serve.modules.oms.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
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-10-09
*/
@Data
@TableName("oms_xlt_order_item")
public class OmsXltOrderItem implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.ASSIGN_ID)
private String id;
/** 订单id */
@NotBlank(message = "订单id不能为空")
@Length(max = 100,message = "订单id长度不能超过100字")
@TableField("dingDanID")
private String dingDanID;
/** 产品编号 */
@Length(max = 100,message = "产品编号长度不能超过100字")
@TableField("chanPinBianHao")
private String chanPinBianHao;
/** 产品单位 */
@Length(max = 100,message = "产品单位长度不能超过100字")
@TableField("chanPinDanWei")
private String chanPinDanWei;
/** 订货数量 */
@TableField("dingHuoShuLiang")
private Integer dingHuoShuLiang;
/** 搭赠数量 */
@TableField("daZengShuLiang")
private BigDecimal daZengShuLiang;
/** 产品原件 */
@TableField("chanPinYuanJia")
private BigDecimal chanPinYuanJia;
/** 产品现价 */
@TableField("chanPinXianJia")
private BigDecimal chanPinXianJia;
/** 写入时间 */
@NotNull(message = "写入时间不能为空")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField("xieRuShiJian")
private LocalDateTime xieRuShiJian;
/** 处理时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField("chuLiShiJian")
private LocalDateTime chuLiShiJian;
/** 状态 */
@TableField("zhuangTai")
private Integer zhuangTai;
/** 行创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField("rowCreateDate")
private LocalDateTime rowCreateDate;
/** 备注 */
@TableField("beiZhu")
private String beiZhu;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
}

14
src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderItemMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.oms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.oms.entity.OmsXltOrderItem;
/**
* 销路通订单明细 Mapper
* @author YenHex
* @date 2023-10-09
*/
public interface OmsXltOrderItemMapper extends BaseMapper<OmsXltOrderItem> {
}

14
src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.oms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.oms.entity.OmsXltOrder;
/**
* 销路通订单 Mapper
* @author YenHex
* @date 2023-10-09
*/
public interface OmsXltOrderMapper extends BaseMapper<OmsXltOrder> {
}

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

@ -3,17 +3,20 @@ package com.qs.serve.modules.oms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.BmsSupplierAddress; import com.qs.serve.modules.bms.entity.BmsSupplierAddress;
import com.qs.serve.modules.bms.mapper.BmsRegionMapper;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.bms.service.BmsSupplierAddressService; import com.qs.serve.modules.bms.service.BmsSupplierAddressService;
import com.qs.serve.modules.goods.entity.GoodsCategoryRule;
import com.qs.serve.modules.goods.entity.GoodsSku; import com.qs.serve.modules.goods.entity.GoodsSku;
import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.entity.GoodsSpu;
import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; import com.qs.serve.modules.goods.entity.vo.GoodSkuVo;
import com.qs.serve.modules.goods.mapper.GoodsCategoryRuleMapper;
import com.qs.serve.modules.goods.service.GoodsSkuService; import com.qs.serve.modules.goods.service.GoodsSkuService;
import com.qs.serve.modules.goods.service.GoodsSpuService; import com.qs.serve.modules.goods.service.GoodsSpuService;
import com.qs.serve.modules.oms.entity.OmsOrderItem; import com.qs.serve.modules.oms.entity.*;
import com.qs.serve.modules.oms.entity.OmsShoppingCart;
import com.qs.serve.modules.oms.entity.bo.*; import com.qs.serve.modules.oms.entity.bo.*;
import com.qs.serve.modules.oms.entity.dto.ErpOfferOrderParam; import com.qs.serve.modules.oms.entity.dto.ErpOfferOrderParam;
import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount; import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount;
@ -21,6 +24,8 @@ import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey;
import com.qs.serve.modules.oms.entity.dto.ShoppingCartsCheckResult; 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.OmsConfirmOrderResult;
import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo; import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo;
import com.qs.serve.modules.oms.mapper.OmsXltOrderItemMapper;
import com.qs.serve.modules.oms.mapper.OmsXltOrderMapper;
import com.qs.serve.modules.oms.service.OmsOrderItemService; import com.qs.serve.modules.oms.service.OmsOrderItemService;
import com.qs.serve.modules.oms.service.OmsShoppingCartService; import com.qs.serve.modules.oms.service.OmsShoppingCartService;
import com.qs.serve.modules.sale.entity.SalePlan; import com.qs.serve.modules.sale.entity.SalePlan;
@ -35,12 +40,12 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.qs.serve.modules.oms.entity.OmsOrder;
import com.qs.serve.modules.oms.service.OmsOrderService; import com.qs.serve.modules.oms.service.OmsOrderService;
import com.qs.serve.modules.oms.mapper.OmsOrderMapper; import com.qs.serve.modules.oms.mapper.OmsOrderMapper;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -54,17 +59,24 @@ import java.util.stream.Collectors;
@AllArgsConstructor @AllArgsConstructor
public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> implements OmsOrderService { public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> implements OmsOrderService {
private OmsShoppingCartService omsShoppingCartService;
private GoodsSkuService goodsSkuService; private GoodsSkuService goodsSkuService;
private GoodsSpuService goodsSpuService; private GoodsSpuService goodsSpuService;
private GoodsCategoryRuleMapper goodsCategoryRuleMapper;
private BmsSupplierMapper bmsSupplierMapper; private BmsSupplierMapper bmsSupplierMapper;
private BmsRegionMapper bmsRegionMapper;
private BmsSupplierAddressService bmsSupplierAddressService; private BmsSupplierAddressService bmsSupplierAddressService;
private SysUserService sysUserService; private SysUserService sysUserService;
private SysDeptService sysDeptService; private SysDeptService sysDeptService;
private OmsOrderItemService omsOrderItemService;
private SalePlanMapper salePlanMapper; private SalePlanMapper salePlanMapper;
private SalePlanGoodsMapper salePlanGoodsMapper; private SalePlanGoodsMapper salePlanGoodsMapper;
private OmsOrderItemService omsOrderItemService;
private OmsXltOrderMapper omsXltOrderMapper;
private OmsXltOrderItemMapper omsXltOrderItemMapper;
private OmsShoppingCartService omsShoppingCartService;
@Override @Override
public OmsConfirmOrderResult confirmOrder(OmsOrderBo confirmOrder) { public OmsConfirmOrderResult confirmOrder(OmsOrderBo confirmOrder) {
@ -170,8 +182,8 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void modifyOrder(OmsOrderModifyParam param) { public void modifyOrder(OmsOrderModifyParam param) {
OmsOrder order = super.getById(param.getUserId()); OmsOrder order = super.getById(param.getId());
if(order.getStatus().equals(0)){ if(!order.getStatus().equals(0)){
Assert.throwEx("非草稿状态订单无法修改"); Assert.throwEx("非草稿状态订单无法修改");
} }
order.setId(param.getId()); order.setId(param.getId());
@ -214,16 +226,20 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
orderItem.setSpuId(goodsSpu.getId()); orderItem.setSpuId(goodsSpu.getId());
orderItem.setSpuCode(goodsSpu.getSpuCode()); orderItem.setSpuCode(goodsSpu.getSpuCode());
orderItem.setSpuTitle(goodsSpu.getName()); orderItem.setSpuTitle(goodsSpu.getName());
if(goodsSku==null){ if(goodsSku!=null){
orderItem.setSkuId(goodsSku.getId()); orderItem.setSkuId(goodsSku.getId());
orderItem.setSkuCode(goodsSku.getSkuCode()); orderItem.setSkuCode(goodsSku.getSkuCode());
orderItem.setSpecValues(goodsSku.getSpecInfos()); orderItem.setSpecValues(goodsSku.getSpecInfos());
orderItem.setSkuUnit(null); orderItem.setSkuUnit(goodsSku.getUnitName());
orderItem.setSkuImg(null); orderItem.setSkuImg(goodsSku.getPicUrl());
orderItem.setSalesPrice(goodsSku.getSalesPrice()); orderItem.setSalesPrice(goodsSku.getSalesPrice());
orderItem.setCusPrice(goodsSku.getSalesPrice()); orderItem.setCusPrice(goodsSku.getSalesPrice());
orderItem.setMarketPrice(goodsSku.getMarketPrice()); orderItem.setMarketPrice(goodsSku.getMarketPrice());
}else { }else {
orderItem.setSkuId(0L);
orderItem.setSkuCode("");
orderItem.setSkuUnit("");
orderItem.setSkuImg(null);
orderItem.setSpecValues(goodsSpu.getName()); orderItem.setSpecValues(goodsSpu.getName());
orderItem.setSalesPrice(BigDecimal.ZERO); orderItem.setSalesPrice(BigDecimal.ZERO);
orderItem.setCusPrice(BigDecimal.ZERO); orderItem.setCusPrice(BigDecimal.ZERO);
@ -374,22 +390,20 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
public void buildPriceOrder(String id) { public void buildPriceOrder(String id) {
OmsOrder omsOrder = super.getById(id); OmsOrder omsOrder = super.getById(id);
String userId = AuthContextUtils.getSysUserId(); String userId = AuthContextUtils.getSysUserId();
SysUser sysUser = sysUserService.getById(userId); // if(omsOrder==null || !omsOrder.getUserId().equals(userId)){
SysDept dept = sysDeptService.getById(sysUser.getDeptId()); // Assert.throwEx("订单不存在或被移除");
if(omsOrder==null || !omsOrder.getUserId().equals(userId)){ // }
Assert.throwEx("订单不存在或被移除");
}
LambdaQueryWrapper<OmsOrderItem> iteLqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OmsOrderItem> iteLqw = new LambdaQueryWrapper<>();
iteLqw.eq(OmsOrderItem::getOrderId,id); iteLqw.eq(OmsOrderItem::getOrderId,id);
List<OmsOrderItem> list = omsOrderItemService.list(iteLqw); List<OmsOrderItem> orderItemList = omsOrderItemService.list(iteLqw);
List<Long> spuIds = list.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); List<Long> spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList());
//TODO 通过当前函数获取当前账套对于的skuID //通过当前函数获取当前账套对于的skuID,默认全部转化为开平的sku
List<OmsSpuToSkuKey> spuToSkuKeys = this.getSpuToSkuInfo("",spuIds); List<OmsSpuToSkuKey> spuToSkuKeys = this.getSpuToSkuInfo("001",spuIds);
for (OmsOrderItem orderItem : list) { for (OmsOrderItem orderItem : orderItemList) {
if( orderItem.getSkuId()!=null && !orderItem.getSkuId().equals(0L) ){ if( orderItem.getSkuId()!=null && !orderItem.getSkuId().equals(0L) ){
continue; continue;
} }
@ -413,8 +427,80 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
} }
} }
//更新设置sku后的信息 //更新设置sku后的信息
omsOrderItemService.updateBatchById(list); omsOrderItemService.updateBatchById(orderItemList);
//直接调用U8接口生成
//SysUser sysUser = sysUserService.getById(userId);
//SysDept dept = sysDeptService.getById(sysUser.getDeptId());
//this.toU8Api(omsOrder, sysUser, dept, orderItemList);
//加载关联数据
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(omsOrder.getSupplierAddrId());
GoodsCategoryRule categoryRule = goodsCategoryRuleMapper.selectById(omsOrder.getBrandRuleId());
String brands = Arrays.stream(categoryRule.getBrandNames()).collect(Collectors.joining(","));
BmsSupplier supplier = bmsSupplierMapper.selectById(omsOrder.getSupplierId());
String lastRegionId = supplier.getRegionLast();
BmsRegion bmsRegion = bmsRegionMapper.selectById(lastRegionId);
//保存到临时表-主表
LocalDateTime nowTime = LocalDateTime.now();
OmsXltOrder xltOrder = new OmsXltOrder();
xltOrder.setId(IdUtil.getSnowFlakeId()+"");
xltOrder.setDingDanHao(omsOrder.getOrderSn());
xltOrder.setShenQingRiQi(nowTime);
xltOrder.setKeHuBianHao(omsOrder.getSupplierCode());
xltOrder.setShouHuoDiZhi(supplierAddress.getDetail());
xltOrder.setRenYuanBianHao(omsOrder.getUserCode());
xltOrder.setZhuYiShiXian(omsOrder.getRemark());
xltOrder.setXieRuShiJian(nowTime);
xltOrder.setChuLiShiJian(null);
xltOrder.setRowCreateDate(nowTime);
xltOrder.setRenYuanXingMing(omsOrder.getUserName());
xltOrder.setRenYuanDianHua(omsOrder.getUserPhone());
xltOrder.setXianZhiWeiDu("品牌");
xltOrder.setXianZhiWeiDuMingChen(brands);
xltOrder.setZhuangTai(0);
//状态:0未使用;1报价单;2销售订单
xltOrder.setStatus(0);
xltOrder.setEmpName(omsOrder.getUserName());
xltOrder.setCusCode(omsOrder.getSupplierCode());
xltOrder.setCusName(omsOrder.getSupplierName());
String[] regions = bmsRegion.getPathNames().split("_");
if(regions.length>1){
xltOrder.setDealerProvince(regions[1]);
}
if(regions.length>0){
xltOrder.setDealerCity(regions[0]);
}
xltOrder.setDealerArea(bmsRegion.getPathNames());
omsXltOrderMapper.insert(xltOrder);
//保存到临时表-明细表
for (OmsOrderItem orderItem : orderItemList) {
OmsXltOrderItem xltOrderItem = new OmsXltOrderItem();
xltOrderItem.setDingDanID(xltOrder.getId());
xltOrderItem.setChanPinBianHao(orderItem.getSkuCode());
xltOrderItem.setChanPinDanWei(orderItem.getSkuUnit());
xltOrderItem.setDingHuoShuLiang(orderItem.getQuantity());
xltOrderItem.setDaZengShuLiang(BigDecimal.ZERO);
xltOrderItem.setChanPinYuanJia(orderItem.getMarketPrice());
xltOrderItem.setChanPinXianJia(orderItem.getSalesPrice());
xltOrderItem.setXieRuShiJian(nowTime);
xltOrderItem.setChuLiShiJian(null);
xltOrderItem.setRowCreateDate(nowTime);
xltOrderItem.setBeiZhu(null);
xltOrderItem.setZhuangTai(0);
omsXltOrderItemMapper.insert(xltOrderItem);
}
//更新订单
omsOrder.setStatus(1);
this.updateById(omsOrder);
}
private void toU8Api(OmsOrder omsOrder, SysUser sysUser, SysDept dept, List<OmsOrderItem> list) {
List<ErpOfferOrderParam.InventoryItem> inventoryItemList = new ArrayList<>(); List<ErpOfferOrderParam.InventoryItem> inventoryItemList = new ArrayList<>();
for (OmsOrderItem orderItem : list) { for (OmsOrderItem orderItem : list) {
ErpOfferOrderParam.InventoryItem inventoryItem = new ErpOfferOrderParam.InventoryItem(); ErpOfferOrderParam.InventoryItem inventoryItem = new ErpOfferOrderParam.InventoryItem();
@ -447,8 +533,6 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
offerOrder.setInventoryItemList(inventoryItemList); offerOrder.setInventoryItemList(inventoryItemList);
offerOrder.setCusName(omsOrder.getSupplierName()); offerOrder.setCusName(omsOrder.getSupplierName());
offerOrder.setMakerName(sysUser.getName()); offerOrder.setMakerName(sysUser.getName());
} }
@ -459,7 +543,30 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
* @return * @return
*/ */
public List<OmsSpuToSkuKey> getSpuToSkuInfo(String book, List<Long> spuIds){ public List<OmsSpuToSkuKey> getSpuToSkuInfo(String book, List<Long> spuIds){
return null; //TODO 测试数据
List<OmsSpuToSkuKey> rs = new ArrayList<>();
Long[] skuIds = {2315912284L,
2315912286L,
2315912287L,
2315912288L,
2315912289L,
2315912290L,
2315912291L,
2315912292L,
2315912293L,
2315912294L,
2315912295L,
2315912296L,
2315912297L,
2315912298L,
2315912300L,};
for (int i = 0; i < spuIds.size(); i++) {
OmsSpuToSkuKey skuKey = new OmsSpuToSkuKey();
skuKey.setSpuId(spuIds.get(i));
skuKey.setSkuId(skuIds[i]);
rs.add(skuKey);
}
return rs;
} }
} }

47
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.consts.SysConfigKey; import com.qs.serve.common.model.consts.SysConfigKey;
import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.JsonUtil;
import com.qs.serve.common.util.StringUtils; import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.sys.service.SysConfigService; import com.qs.serve.modules.sys.service.SysConfigService;
import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.common.TbsGoodsType;
@ -232,6 +233,7 @@ public class TbsBudgetApplicationService {
List<TbsBudget> noConditionBudgetList = new ArrayList<>(); List<TbsBudget> noConditionBudgetList = new ArrayList<>();
boolean budgetNoCondition = this.loadConditionByBudgetsAndMatch(budgetList, noConditionBudgetList); boolean budgetNoCondition = this.loadConditionByBudgetsAndMatch(budgetList, noConditionBudgetList);
//预算条件需包含活动条件, Map结构:活动id->满足的预算id列表 //预算条件需包含活动条件, Map结构:活动id->满足的预算id列表
//非严谨过滤,后续调用 this.filterMatchGoodsCondition(...) 过滤
Map<Long,List<Long>> activityAllowBudgetIdMap = this.buildActivityBudgetMap(activityList, budgetList, noConditionBudgetList); Map<Long,List<Long>> activityAllowBudgetIdMap = this.buildActivityBudgetMap(activityList, budgetList, noConditionBudgetList);
costSortWrapper.setActivityAllowBudgetId(activityAllowBudgetIdMap); costSortWrapper.setActivityAllowBudgetId(activityAllowBudgetIdMap);
//活动拦截 //活动拦截
@ -347,21 +349,16 @@ public class TbsBudgetApplicationService {
for (TbsBudget budget : budgetList) { for (TbsBudget budget : budgetList) {
if(budget.getConditionFlag().equals(1)){ if(budget.getConditionFlag().equals(1)){
List<TbsBudgetCondition> budgetConditionList = budget.getBudgetConditionList(); List<TbsBudgetCondition> budgetConditionList = budget.getBudgetConditionList();
boolean hasNoMatch = false;
for (TbsActivityGoods activityGoods : activityGoodsList) {
boolean matchGoods = false; boolean matchGoods = false;
for (TbsActivityGoods activityGoods : activityGoodsList) {
for (TbsBudgetCondition budgetCondition : budgetConditionList) { for (TbsBudgetCondition budgetCondition : budgetConditionList) {
if(activityGoods.getTargetLevelPathIds().contains(budgetCondition.getTargetLevelPathIds())){ if(activityGoods.getTargetLevelPathIds().contains(budgetCondition.getTargetLevelPathIds())){
matchGoods = true; matchGoods = true;
break; break;
} }
} }
if(!matchGoods){
hasNoMatch = true;
break;
}
} }
if(!hasNoMatch){ if(matchGoods){
List<Long> budgetIds = activityAllowBudgetIdMap.get(activity.getId()); List<Long> budgetIds = activityAllowBudgetIdMap.get(activity.getId());
if(budgetIds==null){ if(budgetIds==null){
budgetIds = new ArrayList<>(); budgetIds = new ArrayList<>();
@ -370,6 +367,36 @@ public class TbsBudgetApplicationService {
budgetIds.addAll(budgetIdsOfActivity); budgetIds.addAll(budgetIdsOfActivity);
activityAllowBudgetIdMap.put(activity.getId(),budgetIds); activityAllowBudgetIdMap.put(activity.getId(),budgetIds);
} }
else {
log.warn("无法匹配条件预算[{}],\n条件:{},\n活动商品数据:{}",
budget.getBudgetCode(),
JsonUtil.objectToJson(budgetConditionList),
JsonUtil.objectToJson(activityGoodsList));
}
// for (TbsActivityGoods activityGoods : activityGoodsList) {
// boolean matchGoods = false;
// for (TbsBudgetCondition budgetCondition : budgetConditionList) {
// if(activityGoods.getTargetLevelPathIds().contains(budgetCondition.getTargetLevelPathIds())){
// matchGoods = true;
// break;
// }
// }
// if(!matchGoods){
// hasNoMatch = true;
// break;
// }
// }
// if(!hasNoMatch){
// List<Long> budgetIds = activityAllowBudgetIdMap.get(activity.getId());
// if(budgetIds==null){
// budgetIds = new ArrayList<>();
// }
// budgetIds.add(budget.getId());
// budgetIds.addAll(budgetIdsOfActivity);
// activityAllowBudgetIdMap.put(activity.getId(),budgetIds);
// }
}else { }else {
List<Long> budgetIds = activityAllowBudgetIdMap.get(activity.getId()); List<Long> budgetIds = activityAllowBudgetIdMap.get(activity.getId());
if(budgetIds==null){ if(budgetIds==null){
@ -510,6 +537,8 @@ public class TbsBudgetApplicationService {
//过滤满全条件的预算 //过滤满全条件的预算
List<Long> allowBudgetIds = activityAllowBudgetIdMap.get(activityCostItem.getActivityId()); List<Long> allowBudgetIds = activityAllowBudgetIdMap.get(activityCostItem.getActivityId());
if(CollectionUtil.isEmpty(allowBudgetIds)){ if(CollectionUtil.isEmpty(allowBudgetIds)){
log.warn("[{}]{} 无预算,成本中心:{},科目:{}",activityCostItem.getTargetCode()
,activityCostItem.getTargetName(),activityCostItem.getCenterName(),activityCostItem.getSubjectName());
//添加到预算超支表 //添加到预算超支表
activityCostItem.setBudgetId(0L); activityCostItem.setBudgetId(0L);
activityCostItem.setScheduleId(0L); activityCostItem.setScheduleId(0L);
@ -603,6 +632,8 @@ public class TbsBudgetApplicationService {
if (throwEx){ if (throwEx){
Assert.throwEx("品类["+ activityCostItem.getTargetName()+"]预算不足"); Assert.throwEx("品类["+ activityCostItem.getTargetName()+"]预算不足");
} }
log.warn("[{}]{} 预算不足,成本中心:{},科目:{}",activityCostItem.getTargetCode()
,activityCostItem.getTargetName(),activityCostItem.getCenterName(),activityCostItem.getSubjectName());
if(overspend){ if(overspend){
TbsScheduleItemBudget itemBudget = currentScheduleItemBudgets.get(0); TbsScheduleItemBudget itemBudget = currentScheduleItemBudgets.get(0);
activityCostItem.setBudgetId(itemBudget.getBudgetId()); activityCostItem.setBudgetId(itemBudget.getBudgetId());
@ -632,6 +663,8 @@ public class TbsBudgetApplicationService {
if(throwEx){ if(throwEx){
Assert.throwEx("品类["+ activityCostItem.getTargetName()+"]无可用预算"); Assert.throwEx("品类["+ activityCostItem.getTargetName()+"]无可用预算");
} }
log.warn("[{}]{} 未命中考核期,成本中心:{},科目:{}",activityCostItem.getTargetCode()
,activityCostItem.getTargetName(),activityCostItem.getCenterName(),activityCostItem.getSubjectName());
//添加到预算超支表 //添加到预算超支表
activityCostItem.setBudgetId(0L); activityCostItem.setBudgetId(0L);
activityCostItem.setScheduleId(0L); activityCostItem.setScheduleId(0L);

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

@ -907,6 +907,7 @@ public class PortalOfCostApplication {
payPayment.setSupplierCode(supplier.getCode()); payPayment.setSupplierCode(supplier.getCode());
payPayment.setSupplierName(supplier.getName()); payPayment.setSupplierName(supplier.getName());
payPayment.setPayAmount(totalAmount); payPayment.setPayAmount(totalAmount);
payPayment.setCostApplyId(costApply.getId());
payPayment.setUserId(user.getId()); payPayment.setUserId(user.getId());
payPayment.setUserCode(user.getCode()); payPayment.setUserCode(user.getCode());
payPayment.setUserName(user.getName()); payPayment.setUserName(user.getName());

Loading…
Cancel
Save