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.JsonProperty;
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 lombok.Data;
import org.hibernate.validator.constraints.Length;
@ -191,7 +192,7 @@ public class BazVisitInstance implements Serializable {
@TableField(exist = false)
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();
//visitInstance.setTitle(source.getTitle());
visitInstance.setVisitId(source.getId());
@ -204,6 +205,15 @@ public class BazVisitInstance implements Serializable {
visitInstance.setTargetCode(targetDTO.getTargetCode());
visitInstance.setTargetName(targetDTO.getTargetName());
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;
}

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.setTargetMapAddress(targetDTO.getMapAddress());
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.util.AuthContextUtils;
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.SysUserSalesService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.biz.entity.BizVisit;
import com.qs.serve.modules.biz.service.BizVisitService;
import javax.validation.Valid;
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;
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.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.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.service.BizSignTypeService;
import com.qs.serve.modules.biz.service.BizVisitService;
import com.qs.serve.modules.sys.entity.SysUser;
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.wx.entity.WxUser;
import com.qs.serve.modules.wx.service.WxUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
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());
omsOrder.setStatus(6);
omsOrderService.updateById(omsOrder);
// 取消审批完成的临期品订单
if (omsOrder.getOrderCheckState().equals(OmsOrderCheckState.Finished.getCode())){
omsOrderPart1Service.releaseInventory(omsOrder.getId());
}
return R.ok();
}
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);
/**
* 释放临期品库存
* @param orderId
* @return
*/
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.service.OmsOrderItemService;
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.utils.OmsOrderUtil;
import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo;
@ -69,6 +70,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
private final GoodsImminentBatchService goodsImminentBatchService;
private final OmsOrderService omsOrderService;
private final OmsOrderPart1Service omsOrderPart1Service;
private final OmsOrderItemService omsOrderItemService;
private final SysUserService sysUserService;
private final BmsRegionMapper regionMapper;
@ -135,6 +137,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
if (orderItem.getQuantity() > spur) {
Assert.throwEx(orderItem.getSkuCode() + " 单品库存不足");
}
// 扣减库存
imminentBatch.setOrderQuantity(imminentBatch.getOrderQuantity() + orderItem.getQuantity());
imminentBatches.add(imminentBatch);
}
@ -363,6 +366,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
OmsOrder omsOrder = omsOrderService.getById(param.getTargetId());
omsOrder.setOrderCheckState(OmsOrderCheckState.Rollback.getCode());
omsOrderService.updateById(omsOrder);
omsOrderPart1Service.releaseInventory(omsOrder.getId());
return null;
}
@ -380,6 +384,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
OmsOrder omsOrder = omsOrderService.getById(param.getTargetId());
omsOrder.setOrderCheckState(OmsOrderCheckState.Stop.getCode());
omsOrderService.updateById(omsOrder);
omsOrderPart1Service.releaseInventory(omsOrder.getId());
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
public boolean releaseInventory(Long orderId) {
// 释放库存
return false;
OmsOrder omsOrder = omsOrderService.getById(orderId);
// 目前只有临期品需要释放库存
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

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.SystemModule;
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.service.SysAttachService;
import com.qs.serve.modules.wx.entity.WxFormPush;

Loading…
Cancel
Save