Browse Source

feat: 临期品库存释放

muti_db
Yen 9 months ago
parent
commit
625859aca3
  1. 12
      src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java
  2. 2
      src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java
  3. 4
      src/main/java/com/qs/serve/modules/biz/controller/BizVisitController.java
  4. 9
      src/main/java/com/qs/serve/modules/biz/controller/api/BizVisitApi.java
  5. 4
      src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java
  6. 5
      src/main/java/com/qs/serve/modules/oms/service/OmsOrderPart1Service.java
  7. 5
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java
  8. 17
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderPart1ServiceImpl.java
  9. 1
      src/main/java/com/qs/serve/modules/wx/controller/my/WxFormPushMyController.java

12
src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java

@ -10,6 +10,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.qs.serve.common.model.dto.TargetDTO; import com.qs.serve.common.model.dto.TargetDTO;
import com.qs.serve.modules.baz.entity.bo.BazVisitInstanceFlowBo;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
@ -191,7 +192,7 @@ public class BazVisitInstance implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String ignoreUserId; private String ignoreUserId;
public static BazVisitInstance toNewObject(BazVisit source, TargetDTO targetDTO, SysUser sysUser){ public static BazVisitInstance toNewObject(BazVisit source, TargetDTO targetDTO, SysUser sysUser, BazVisitInstanceFlowBo flowBo){
BazVisitInstance visitInstance = new BazVisitInstance(); BazVisitInstance visitInstance = new BazVisitInstance();
//visitInstance.setTitle(source.getTitle()); //visitInstance.setTitle(source.getTitle());
visitInstance.setVisitId(source.getId()); visitInstance.setVisitId(source.getId());
@ -204,6 +205,15 @@ public class BazVisitInstance implements Serializable {
visitInstance.setTargetCode(targetDTO.getTargetCode()); visitInstance.setTargetCode(targetDTO.getTargetCode());
visitInstance.setTargetName(targetDTO.getTargetName()); visitInstance.setTargetName(targetDTO.getTargetName());
visitInstance.setRemark(source.getRemark()); visitInstance.setRemark(source.getRemark());
visitInstance.setExtProvince(flowBo.getExtProvince());
visitInstance.setExtCity(flowBo.getExtCity());
visitInstance.setExtRegionArea(flowBo.getExtRegionArea());
visitInstance.setExtTownship(flowBo.getExtTownship());
visitInstance.setExtStreet(flowBo.getExtStreet());
visitInstance.setExtStreetNumber(flowBo.getExtStreetNumber());
return visitInstance; return visitInstance;
} }

2
src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java

@ -99,7 +99,7 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl<BazVisitInstanceMap
} }
//构建实例 //构建实例
BazVisitInstance visitInstance = BazVisitInstance.toNewObject(bazVisit,targetDTO,sysUser); BazVisitInstance visitInstance = BazVisitInstance.toNewObject(bazVisit,targetDTO,sysUser,flowBo);
visitInstance.setTargetAddress(targetDTO.getAddress()); visitInstance.setTargetAddress(targetDTO.getAddress());
visitInstance.setTargetMapAddress(targetDTO.getMapAddress()); visitInstance.setTargetMapAddress(targetDTO.getMapAddress());
visitInstance.setTargetLocalX(targetDTO.getLocalX()); visitInstance.setTargetLocalX(targetDTO.getLocalX());

4
src/main/java/com/qs/serve/modules/biz/controller/BizVisitController.java

@ -8,19 +8,15 @@ import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.baz.entity.BazVisitInstance;
import com.qs.serve.modules.sys.service.SysPostUserService; import com.qs.serve.modules.sys.service.SysPostUserService;
import com.qs.serve.modules.sys.service.SysUserSalesService;
import lombok.AllArgsConstructor; 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.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.biz.entity.BizVisit; import com.qs.serve.modules.biz.entity.BizVisit;
import com.qs.serve.modules.biz.service.BizVisitService; import com.qs.serve.modules.biz.service.BizVisitService;
import javax.validation.Valid;
import java.util.List; import java.util.List;
/** /**

9
src/main/java/com/qs/serve/modules/biz/controller/api/BizVisitApi.java

@ -1,29 +1,20 @@
package com.qs.serve.modules.biz.controller.api; package com.qs.serve.modules.biz.controller.api;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.PageVo;
import com.qs.serve.common.model.dto.R; 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.AuthContextUtils;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.baz.entity.BazVisitInstance;
import com.qs.serve.modules.biz.entity.BizCusVisit;
import com.qs.serve.modules.biz.entity.BizSignType;
import com.qs.serve.modules.biz.entity.BizVisit; import com.qs.serve.modules.biz.entity.BizVisit;
import com.qs.serve.modules.biz.service.BizSignTypeService; import com.qs.serve.modules.biz.service.BizSignTypeService;
import com.qs.serve.modules.biz.service.BizVisitService; import com.qs.serve.modules.biz.service.BizVisitService;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysPostUserService; import com.qs.serve.modules.sys.service.SysPostUserService;
import com.qs.serve.modules.sys.service.SysUserSalesService;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.wx.entity.WxUser; import com.qs.serve.modules.wx.entity.WxUser;
import com.qs.serve.modules.wx.service.WxUserService; import com.qs.serve.modules.wx.service.WxUserService;
import lombok.AllArgsConstructor; 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.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;

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

@ -182,6 +182,10 @@ public class OmsOrderApi {
omsOrderService.cancelOrder(omsOrder.getOrderSn()); omsOrderService.cancelOrder(omsOrder.getOrderSn());
omsOrder.setStatus(6); omsOrder.setStatus(6);
omsOrderService.updateById(omsOrder); omsOrderService.updateById(omsOrder);
// 取消审批完成的临期品订单
if (omsOrder.getOrderCheckState().equals(OmsOrderCheckState.Finished.getCode())){
omsOrderPart1Service.releaseInventory(omsOrder.getId());
}
return R.ok(); return R.ok();
} }
return R.error("取消订单失败"); return R.error("取消订单失败");

5
src/main/java/com/qs/serve/modules/oms/service/OmsOrderPart1Service.java

@ -20,6 +20,11 @@ public interface OmsOrderPart1Service {
*/ */
OmsOrder copyOrder(Long orderId); OmsOrder copyOrder(Long orderId);
/**
* 释放临期品库存
* @param orderId
* @return
*/
boolean releaseInventory(Long orderId); boolean releaseInventory(Long orderId);
/** /**

5
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java

@ -31,6 +31,7 @@ import com.qs.serve.modules.oms.entity.dto.XltOrderDTO;
import com.qs.serve.modules.oms.mapper.OmsOrderMapper; import com.qs.serve.modules.oms.mapper.OmsOrderMapper;
import com.qs.serve.modules.oms.service.OmsOrderItemService; import com.qs.serve.modules.oms.service.OmsOrderItemService;
import com.qs.serve.modules.oms.service.OmsOrderOptionsService; import com.qs.serve.modules.oms.service.OmsOrderOptionsService;
import com.qs.serve.modules.oms.service.OmsOrderPart1Service;
import com.qs.serve.modules.oms.service.OmsOrderService; import com.qs.serve.modules.oms.service.OmsOrderService;
import com.qs.serve.modules.oms.utils.OmsOrderUtil; import com.qs.serve.modules.oms.utils.OmsOrderUtil;
import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo; import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo;
@ -69,6 +70,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
private final GoodsImminentBatchService goodsImminentBatchService; private final GoodsImminentBatchService goodsImminentBatchService;
private final OmsOrderService omsOrderService; private final OmsOrderService omsOrderService;
private final OmsOrderPart1Service omsOrderPart1Service;
private final OmsOrderItemService omsOrderItemService; private final OmsOrderItemService omsOrderItemService;
private final SysUserService sysUserService; private final SysUserService sysUserService;
private final BmsRegionMapper regionMapper; private final BmsRegionMapper regionMapper;
@ -135,6 +137,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
if (orderItem.getQuantity() > spur) { if (orderItem.getQuantity() > spur) {
Assert.throwEx(orderItem.getSkuCode() + " 单品库存不足"); Assert.throwEx(orderItem.getSkuCode() + " 单品库存不足");
} }
// 扣减库存
imminentBatch.setOrderQuantity(imminentBatch.getOrderQuantity() + orderItem.getQuantity()); imminentBatch.setOrderQuantity(imminentBatch.getOrderQuantity() + orderItem.getQuantity());
imminentBatches.add(imminentBatch); imminentBatches.add(imminentBatch);
} }
@ -363,6 +366,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
OmsOrder omsOrder = omsOrderService.getById(param.getTargetId()); OmsOrder omsOrder = omsOrderService.getById(param.getTargetId());
omsOrder.setOrderCheckState(OmsOrderCheckState.Rollback.getCode()); omsOrder.setOrderCheckState(OmsOrderCheckState.Rollback.getCode());
omsOrderService.updateById(omsOrder); omsOrderService.updateById(omsOrder);
omsOrderPart1Service.releaseInventory(omsOrder.getId());
return null; return null;
} }
@ -380,6 +384,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
OmsOrder omsOrder = omsOrderService.getById(param.getTargetId()); OmsOrder omsOrder = omsOrderService.getById(param.getTargetId());
omsOrder.setOrderCheckState(OmsOrderCheckState.Stop.getCode()); omsOrder.setOrderCheckState(OmsOrderCheckState.Stop.getCode());
omsOrderService.updateById(omsOrder); omsOrderService.updateById(omsOrder);
omsOrderPart1Service.releaseInventory(omsOrder.getId());
return null; return null;
} }

17
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderPart1ServiceImpl.java

@ -128,8 +128,21 @@ public class OmsOrderPart1ServiceImpl implements OmsOrderPart1Service {
@Override @Override
public boolean releaseInventory(Long orderId) { public boolean releaseInventory(Long orderId) {
// 释放库存 // 释放库存
OmsOrder omsOrder = omsOrderService.getById(orderId);
return false; // 目前只有临期品需要释放库存
if (omsOrder.getOrderType().equals(3)) {
List<GoodsImminentBatch> imminentBatches = new ArrayList<>();
List<OmsOrderItem> orderItemList = omsOrderItemService.listByOrderId(orderId);
for (OmsOrderItem orderItem : orderItemList) {
GoodsImminentBatch imminentBatch = goodsImminentBatchService.getById(orderItem.getSkuBatchId());
imminentBatch.setOrderQuantity(imminentBatch.getOrderQuantity() - orderItem.getQuantity());
imminentBatches.add(imminentBatch);
}
if (imminentBatches.size() > 0) {
goodsImminentBatchService.updateBatchById(imminentBatches);
}
}
return true;
} }
@Override @Override

1
src/main/java/com/qs/serve/modules/wx/controller/my/WxFormPushMyController.java

@ -7,7 +7,6 @@ import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
import com.qs.serve.modules.baz.entity.BazVisitInstance;
import com.qs.serve.modules.sys.entity.SysAttach; import com.qs.serve.modules.sys.entity.SysAttach;
import com.qs.serve.modules.sys.service.SysAttachService; import com.qs.serve.modules.sys.service.SysAttachService;
import com.qs.serve.modules.wx.entity.WxFormPush; import com.qs.serve.modules.wx.entity.WxFormPush;

Loading…
Cancel
Save