oms出入库;

This commit is contained in:
王奎兴
2026-04-17 08:59:16 +08:00
parent ce6d42ce61
commit ddc1f5d2ea
10 changed files with 430 additions and 18 deletions
@@ -3,8 +3,16 @@ package com.mhd.wms.domain.inventoryAdjustmentRecord.service;
import cn.hutool.core.util.ObjectUtil;
import com.aliyun.oss.ServiceException;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mhd.common.core.constant.SnowFlakeConstants;
import com.mhd.common.core.domain.po.UserPo;
import com.mhd.common.core.utils.OrderSequence;
import com.mhd.common.core.utils.uuid.IdGenerator;
import com.mhd.common.core.web.domain.BaseVOEntity;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.OmsServiceFeign;
import com.mhd.system.api.domain.InMaterialDetail;
import com.mhd.system.api.domain.OutMaterialDetail;
import com.mhd.system.api.domain.StockOutOrder;
import com.mhd.system.api.model.LoginUser;
import com.mhd.wms.domain.inventoryAdjustmentRecord.repository.facade.IInventoryAdjustmentRecordService;
import com.mhd.wms.domain.inventoryAdjustmentRecord.repository.po.InventoryAdjustmentRecordPO;
@@ -16,6 +24,7 @@ import com.mhd.wms.domain.materialBaseInfo.repository.facade.IMaterialBaseInfoSe
import com.mhd.wms.domain.materialInventory.entity.MaterialInventory;
import com.mhd.wms.domain.materialInventory.repository.facade.IMaterialInventoryService;
import com.mhd.wms.domain.materialInventory.repository.todo.MaterialInventoryParamDO;
import com.mhd.wms.domain.stockInOrder.entity.StockInOrder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -45,6 +54,11 @@ public class InventoryAdjustmentRecordDomainService {
private IMaterialBaseInfoService materialBaseInfoService;
@Autowired
private IInventoryStandingDetailService inventoryStandingDetailService;
@Autowired
private IdGenerator idGenerator;
@Autowired
private OmsServiceFeign omsServiceFeign;
/**
@@ -215,8 +229,140 @@ public class InventoryAdjustmentRecordDomainService {
if (ObjectUtil.isNotNull(materialInventory)){
genInventoryStandingDetail(materialInventory, inventoryAdjustmentRecordDO.getAdjustQuantity());
}
materialInventoryService.updateById(materialInventory);
return inventoryAdjustmentRecordService.insert(inventoryAdjustmentRecord);
Boolean insert = inventoryAdjustmentRecordService.insert(inventoryAdjustmentRecord);
//推送oms库存调整记录
pushOms(materialInventory, inventoryAdjustmentRecordDO);
return insert;
}
private void pushOms(MaterialInventory materialInventory,InventoryAdjustmentRecordDO inventoryAdjustmentRecordDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
UserPo userPo = loginUser.getUserPo();
MaterialBaseInfo materialBaseInfo = materialBaseInfoService.getById(materialInventory.getMaterialBaseInfoId());
Long adjustDirection = inventoryAdjustmentRecordDO.getAdjustDirection();
if (adjustDirection == 1) {
com.mhd.system.api.domain.StockInOrder stockInOrder = new com.mhd.system.api.domain.StockInOrder();
stockInOrder.setOrganizationId(loginUser.getUserPo().getOrganizationId());
stockInOrder.setOrganizationName(loginUser.getUserPo().getOrganizationName());
stockInOrder.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
stockInOrder.setStatus(1);
stockInOrder.setAuditStatus(1);
stockInOrder.setCreateBy(loginUser.getUserid());
stockInOrder.setCreateByName(loginUser.getUserPo().getUserName());
stockInOrder.setCreateTime(new Date());
stockInOrder.setDelFlag(1);
stockInOrder.setInOrderNumber(OrderSequence.getOrderCode("RK"));
stockInOrder.setOrderTypeCode("ku_cun_tiao_zheng");
stockInOrder.setOrderTypeName("库存调整");
//货主信息
stockInOrder.setShipperId(materialInventory.getShipperId());
stockInOrder.setShipperCode(materialInventory.getShipperCode());
stockInOrder.setShipperName(materialInventory.getShipperName());
//仓库信息
stockInOrder.setWarehouseId(materialInventory.getWarehouseId());
stockInOrder.setWarehouseCode(materialInventory.getWarehouseCode());
stockInOrder.setWarehouseName(materialInventory.getWarehouseName());
InMaterialDetail inMaterialDetail = new InMaterialDetail();
//组织信息
inMaterialDetail.setOrganizationId(loginUser.getUserPo().getOrganizationId());
inMaterialDetail.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
inMaterialDetail.setOrganizationName(loginUser.getUserPo().getOrganizationName());
inMaterialDetail.setCreateBy(loginUser.getUserid());
inMaterialDetail.setCreateByName(loginUser.getUserPo().getUserName());
inMaterialDetail.setCreateTime(new Date());
inMaterialDetail.setDelFlag(1);
inMaterialDetail.setInOrderNumber(stockInOrder.getInOrderNumber());
inMaterialDetail.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
inMaterialDetail.setInboundQuantity(inventoryAdjustmentRecordDO.getAdjustQuantity());
//物料信息
inMaterialDetail.setMaterialBaseInfoId(materialInventory.getMaterialBaseInfoId());
inMaterialDetail.setMaterialCode(inventoryAdjustmentRecordDO.getMaterialCode());
inMaterialDetail.setMaterialName(inventoryAdjustmentRecordDO.getMaterialName());
inMaterialDetail.setBarCode(materialInventory.getBarCode());
//仓库信息
inMaterialDetail.setWarehouseId(materialInventory.getWarehouseId());
inMaterialDetail.setWarehouseCode(materialInventory.getWarehouseCode());
inMaterialDetail.setWarehouseName(materialInventory.getWarehouseName());
//库区信息
inMaterialDetail.setStorageSectionId(materialInventory.getStorageSectionId());
inMaterialDetail.setStorageCode(materialInventory.getStorageCode());
inMaterialDetail.setStorageName(materialInventory.getStorageName());
//库位信息
inMaterialDetail.setStorageLocationId(materialInventory.getStorageLocationId());
inMaterialDetail.setStorageLocationCode(materialInventory.getStorageLocationCode());
inMaterialDetail.setStorageLocationName(materialInventory.getStorageLocationName());
omsServiceFeign.pushInOrder(stockInOrder);
omsServiceFeign.pushInOrderDetail(inMaterialDetail);
} else {
StockOutOrder stockOutOrder = new StockOutOrder();
stockOutOrder.setOrganizationId(loginUser.getUserPo().getOrganizationId());
stockOutOrder.setOrganizationName(loginUser.getUserPo().getOrganizationName());
stockOutOrder.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
stockOutOrder.setStatus(1);
stockOutOrder.setAuditStatus(1);
stockOutOrder.setCreateBy(loginUser.getUserid());
stockOutOrder.setCreateByName(loginUser.getUserPo().getUserName());
stockOutOrder.setCreateTime(new Date());
stockOutOrder.setDelFlag(1);
stockOutOrder.setOutOrderNumber(OrderSequence.getOrderCode("CK"));
stockOutOrder.setOrderTypeCode("ku_cun_tiao_zheng");
stockOutOrder.setOrderTypeName("库存调整");
//货主信息
stockOutOrder.setShipperId(materialInventory.getShipperId());
stockOutOrder.setShipperCode(materialInventory.getShipperCode());
stockOutOrder.setShipperName(materialInventory.getShipperName());
//仓库信息
stockOutOrder.setWarehouseId(materialInventory.getWarehouseId());
stockOutOrder.setWarehouseCode(materialInventory.getWarehouseCode());
stockOutOrder.setWarehouseName(materialInventory.getWarehouseName());
OutMaterialDetail outMaterialDetail = new OutMaterialDetail();
//组织信息
outMaterialDetail.setOrganizationId(loginUser.getUserPo().getOrganizationId());
outMaterialDetail.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
outMaterialDetail.setOrganizationName(loginUser.getUserPo().getOrganizationName());
outMaterialDetail.setCreateBy(loginUser.getUserid());
outMaterialDetail.setCreateByName(loginUser.getUserPo().getUserName());
outMaterialDetail.setCreateTime(new Date());
outMaterialDetail.setDelFlag(1);
outMaterialDetail.setInOrderNumber(stockOutOrder.getOutOrderNumber());
outMaterialDetail.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
outMaterialDetail.setOutboundQuantity(inventoryAdjustmentRecordDO.getAdjustQuantity());
//物料信息
outMaterialDetail.setMaterialBaseInfoId(materialInventory.getMaterialBaseInfoId());
outMaterialDetail.setMaterialCode(inventoryAdjustmentRecordDO.getMaterialCode());
outMaterialDetail.setMaterialName(inventoryAdjustmentRecordDO.getMaterialName());
outMaterialDetail.setBarCode(materialInventory.getBarCode());
//仓库信息
outMaterialDetail.setWarehouseId(materialInventory.getWarehouseId());
outMaterialDetail.setWarehouseCode(materialInventory.getWarehouseCode());
outMaterialDetail.setWarehouseName(materialInventory.getWarehouseName());
//库区信息
outMaterialDetail.setStorageSectionId(materialInventory.getStorageSectionId());
outMaterialDetail.setStorageCode(materialInventory.getStorageCode());
outMaterialDetail.setStorageName(materialInventory.getStorageName());
//库位信息
outMaterialDetail.setStorageLocationId(materialInventory.getStorageLocationId());
outMaterialDetail.setStorageLocationCode(materialInventory.getStorageLocationCode());
outMaterialDetail.setStorageLocationName(materialInventory.getStorageLocationName());
omsServiceFeign.pushOutOrder(stockOutOrder);
omsServiceFeign.pushOutOrderDetail(outMaterialDetail);
}
}
/**
@@ -9,12 +9,19 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mhd.common.core.constant.SnowFlakeConstants;
import com.mhd.common.core.domain.po.UserPo;
import com.mhd.common.core.exception.ServiceException;
import com.mhd.common.core.utils.OrderSequence;
import com.mhd.common.core.utils.uuid.IdGenerator;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.OmsServiceFeign;
import com.mhd.system.api.SystemServiceFeign;
import com.mhd.system.api.UserServiceFeign;
import com.mhd.system.api.domain.InMaterialDetail;
import com.mhd.system.api.domain.OutMaterialDetail;
import com.mhd.system.api.domain.StockOutOrder;
import com.mhd.system.api.domain.WarehouseFeignPO;
import com.mhd.system.api.model.LoginUser;
import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskTypeService;
@@ -33,6 +40,9 @@ import com.mhd.wms.domain.investigetionManageDetail.repository.facade.IInvestige
import com.mhd.wms.domain.investigetionManageDetail.repository.mapper.InvestigetionManageDetailMapper;
import com.mhd.wms.domain.investigetionManageDetail.repository.po.InvestigetionManageDetailPO;
import com.mhd.wms.domain.investigetionManageDetail.repository.todo.InvestigetionManageDetailDO;
import com.mhd.wms.domain.materialBaseInfo.entity.MaterialBaseInfo;
import com.mhd.wms.domain.materialBaseInfo.repository.facade.IMaterialBaseInfoService;
import com.mhd.wms.domain.materialInventory.entity.MaterialInventory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -77,6 +87,12 @@ public class InvestigationManageImpl extends ServiceImpl<InvestigationManageMapp
@Resource
private SystemServiceFeign systemServiceFeign;
@Autowired
private IdGenerator idGenerator;
@Autowired
private OmsServiceFeign omsServiceFeign;
@Autowired
private IMaterialBaseInfoService materialBaseInfoService;
/**
* 查询盘点管理列表
@@ -402,6 +418,143 @@ public class InvestigationManageImpl extends ServiceImpl<InvestigationManageMapp
return this.updateById(investigationManageUpdate);
}
public void pushOms(InvestigationManage investigationManageUpdate) {
LoginUser loginUser = SecurityUtils.getLoginUser();
UserPo userPo = loginUser.getUserPo();
String investigationNumber = investigationManageUpdate.getInvestigationNumber();
List<InvestigetionManageDetail> investigetionManageDetails = investigetionManageDetailMapper.selectList(new QueryWrapper<InvestigetionManageDetail>().lambda()
.eq(InvestigetionManageDetail::getInvestigationNumber, investigationNumber)
.eq(InvestigetionManageDetail::getDelFlag, 1));
for (InvestigetionManageDetail investigetionManageDetail : investigetionManageDetails) {
Integer investigationResult = investigetionManageDetail.getInvestigationResult();
if (investigationResult == null&&investigationResult == 1) {
//入库
com.mhd.system.api.domain.StockInOrder stockInOrder = new com.mhd.system.api.domain.StockInOrder();
stockInOrder.setOrganizationId(loginUser.getUserPo().getOrganizationId());
stockInOrder.setOrganizationName(loginUser.getUserPo().getOrganizationName());
stockInOrder.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
stockInOrder.setStatus(1);
stockInOrder.setAuditStatus(1);
stockInOrder.setCreateBy(loginUser.getUserid());
stockInOrder.setCreateByName(loginUser.getUserPo().getUserName());
stockInOrder.setCreateTime(new Date());
stockInOrder.setDelFlag(1);
stockInOrder.setInOrderNumber(OrderSequence.getOrderCode("RK"));
stockInOrder.setOrderTypeCode("pan_ying_ru_ku");
stockInOrder.setOrderTypeName("盘盈入库");
//货主信息
Long materialBaseInfoId = investigetionManageDetail.getMaterialBaseInfoId();
MaterialBaseInfo materialBaseInfo = materialBaseInfoService.getById(materialBaseInfoId);
stockInOrder.setShipperId(materialBaseInfo.getShipperId());
stockInOrder.setShipperCode(materialBaseInfo.getShipperCode());
stockInOrder.setShipperName(materialBaseInfo.getShipperName());
//仓库信息
stockInOrder.setWarehouseId(investigetionManageDetail.getWarehouseId());
stockInOrder.setWarehouseCode(investigetionManageDetail.getWarehouseCode());
stockInOrder.setWarehouseName(investigetionManageDetail.getWarehouseName());
InMaterialDetail inMaterialDetail = new InMaterialDetail();
//组织信息
inMaterialDetail.setOrganizationId(loginUser.getUserPo().getOrganizationId());
inMaterialDetail.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
inMaterialDetail.setOrganizationName(loginUser.getUserPo().getOrganizationName());
inMaterialDetail.setCreateBy(loginUser.getUserid());
inMaterialDetail.setCreateByName(loginUser.getUserPo().getUserName());
inMaterialDetail.setCreateTime(new Date());
inMaterialDetail.setDelFlag(1);
inMaterialDetail.setInOrderNumber(stockInOrder.getInOrderNumber());
inMaterialDetail.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
inMaterialDetail.setInboundQuantity(investigetionManageDetail.getDifferentQuantity());
//物料信息
inMaterialDetail.setMaterialBaseInfoId(investigetionManageDetail.getMaterialBaseInfoId());
inMaterialDetail.setMaterialCode(investigetionManageDetail.getMaterialCode());
inMaterialDetail.setMaterialName(investigetionManageDetail.getMaterialName());
inMaterialDetail.setBarCode(investigetionManageDetail.getBarCode());
//仓库信息
inMaterialDetail.setWarehouseId(investigetionManageDetail.getWarehouseId());
inMaterialDetail.setWarehouseCode(investigetionManageDetail.getWarehouseCode());
inMaterialDetail.setWarehouseName(investigetionManageDetail.getWarehouseName());
//库区信息
inMaterialDetail.setStorageSectionId(investigetionManageDetail.getStorageSectionId());
inMaterialDetail.setStorageCode(investigetionManageDetail.getStorageCode());
inMaterialDetail.setStorageName(investigetionManageDetail.getStorageName());
//库位信息
inMaterialDetail.setStorageLocationId(investigetionManageDetail.getStorageLocationId());
inMaterialDetail.setStorageLocationCode(investigetionManageDetail.getStorageLocationCode());
inMaterialDetail.setStorageLocationName(investigetionManageDetail.getStorageLocationName());
omsServiceFeign.pushInOrder(stockInOrder);
omsServiceFeign.pushInOrderDetail(inMaterialDetail);
} else if (investigationResult == null && investigationResult == 2) {
//出库
StockOutOrder stockOutOrder = new StockOutOrder();
stockOutOrder.setOrganizationId(loginUser.getUserPo().getOrganizationId());
stockOutOrder.setOrganizationName(loginUser.getUserPo().getOrganizationName());
stockOutOrder.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
stockOutOrder.setStatus(1);
stockOutOrder.setAuditStatus(1);
stockOutOrder.setCreateBy(loginUser.getUserid());
stockOutOrder.setCreateByName(loginUser.getUserPo().getUserName());
stockOutOrder.setCreateTime(new Date());
stockOutOrder.setDelFlag(1);
stockOutOrder.setOutOrderNumber(OrderSequence.getOrderCode("CK"));
stockOutOrder.setOrderTypeCode("pan_kun_chu_ku");
stockOutOrder.setOrderTypeName("盘亏出库");
//货主信息
Long materialBaseInfoId = investigetionManageDetail.getMaterialBaseInfoId();
MaterialBaseInfo materialBaseInfo = materialBaseInfoService.getById(materialBaseInfoId);
stockOutOrder.setShipperId(materialBaseInfo.getShipperId());
stockOutOrder.setShipperCode(materialBaseInfo.getShipperCode());
stockOutOrder.setShipperName(materialBaseInfo.getShipperName());
//仓库信息
stockOutOrder.setWarehouseId(investigetionManageDetail.getWarehouseId());
stockOutOrder.setWarehouseCode(investigetionManageDetail.getWarehouseCode());
stockOutOrder.setWarehouseName(investigetionManageDetail.getWarehouseName());
OutMaterialDetail outMaterialDetail = new OutMaterialDetail();
//组织信息
outMaterialDetail.setOrganizationId(loginUser.getUserPo().getOrganizationId());
outMaterialDetail.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
outMaterialDetail.setOrganizationName(loginUser.getUserPo().getOrganizationName());
outMaterialDetail.setCreateBy(loginUser.getUserid());
outMaterialDetail.setCreateByName(loginUser.getUserPo().getUserName());
outMaterialDetail.setCreateTime(new Date());
outMaterialDetail.setDelFlag(1);
outMaterialDetail.setInOrderNumber(stockOutOrder.getOutOrderNumber());
outMaterialDetail.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
outMaterialDetail.setOutboundQuantity(investigetionManageDetail.getDifferentQuantity());
//物料信息
outMaterialDetail.setMaterialBaseInfoId(investigetionManageDetail.getMaterialBaseInfoId());
outMaterialDetail.setMaterialCode(investigetionManageDetail.getMaterialCode());
outMaterialDetail.setMaterialName(investigetionManageDetail.getMaterialName());
outMaterialDetail.setBarCode(investigetionManageDetail.getBarCode());
//仓库信息
outMaterialDetail.setWarehouseId(investigetionManageDetail.getWarehouseId());
outMaterialDetail.setWarehouseCode(investigetionManageDetail.getWarehouseCode());
outMaterialDetail.setWarehouseName(investigetionManageDetail.getWarehouseName());
//库区信息
outMaterialDetail.setStorageSectionId(investigetionManageDetail.getStorageSectionId());
outMaterialDetail.setStorageCode(investigetionManageDetail.getStorageCode());
outMaterialDetail.setStorageName(investigetionManageDetail.getStorageName());
//库位信息
outMaterialDetail.setStorageLocationId(investigetionManageDetail.getStorageLocationId());
outMaterialDetail.setStorageLocationCode(investigetionManageDetail.getStorageLocationCode());
outMaterialDetail.setStorageLocationName(investigetionManageDetail.getStorageLocationName());
omsServiceFeign.pushOutOrder(stockOutOrder);
omsServiceFeign.pushOutOrderDetail(outMaterialDetail);
}
}
}
/**
* @description 生成盘点追溯记录
* @author ZhouGY