From ddc1f5d2ea9922fc5931f50e1b2d697aecc6f300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 17 Apr 2026 08:59:16 +0800 Subject: [PATCH] =?UTF-8?q?oms=E5=87=BA=E5=85=A5=E5=BA=93;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mhd/system/api/OmsServiceFeign.java | 36 +++++ .../core/constant/ServiceNameConstants.java | 5 +- ...rvationStockInOrderApplicationService.java | 10 ++ .../ReservationStockInOrderDomainService.java | 17 +- ...vationStockOutOrderApplicationService.java | 29 ++-- ...ReservationStockOutOrderDomainService.java | 19 ++- .../ReservationStockOutOrderApi.java | 17 ++ .../ReservationStockInOrderApi.java | 14 ++ ...nventoryAdjustmentRecordDomainService.java | 148 ++++++++++++++++- .../persistence/InvestigationManageImpl.java | 153 ++++++++++++++++++ 10 files changed, 430 insertions(+), 18 deletions(-) create mode 100644 mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java new file mode 100644 index 000000000..9a7a2fab9 --- /dev/null +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java @@ -0,0 +1,36 @@ +package com.mhd.system.api; + +import com.mhd.common.core.constant.ServiceNameConstants; +import com.mhd.common.core.web.domain.AjaxResult; +import com.mhd.system.api.domain.InMaterialDetail; +import com.mhd.system.api.domain.OutMaterialDetail; +import com.mhd.system.api.domain.StockInOrder; +import com.mhd.system.api.domain.StockOutOrder; +import com.mhd.system.api.factory.RemoteBmsFeignFallbackFactory; +import com.mhd.system.api.feign.FeignAutoConfiguration; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE, fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) +public interface OmsServiceFeign { + + + @ApiOperation("wms推送入库单") + @PostMapping(value = "/reservationStockInOrderApi/pushInOrder") + public AjaxResult pushInOrder(@RequestBody StockInOrder stockInOrder); + + @ApiOperation("wms推送入库单明细") + @PostMapping(value = "/reservationStockInOrderApi/pushInOrderDetail") + public AjaxResult pushInOrderDetail(@RequestBody InMaterialDetail inMaterialDetail); + + + @ApiOperation("wms推送入库单") + @PostMapping(value = "/reservationStockOutOrderApi/pushOutOrder") + public AjaxResult pushOutOrder(@RequestBody StockOutOrder stockOutOrder); + + @ApiOperation("wms推送入库单明细") + @PostMapping(value = "/reservationStockOutOrderApi/pushOutOrderDetail") + public AjaxResult pushOutOrderDetail(@RequestBody OutMaterialDetail outMaterialDetail); +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/constant/ServiceNameConstants.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/constant/ServiceNameConstants.java index faeca30f0..9943737d1 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/constant/ServiceNameConstants.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/constant/ServiceNameConstants.java @@ -60,6 +60,9 @@ public class ServiceNameConstants //BMS结算系统 public static final String BMS_SERVICE = "mhd-bms-service"; + //OMS结算系统 + public static final String OMS_SERVICE = "mhd-oms-service"; -} + +} \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java index aff5e233a..57d588f4b 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java @@ -14,6 +14,8 @@ import com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStock import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDO; 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.StockInOrder; import com.mhd.system.api.domain.SysDictData; import com.mhd.system.api.domain.WarehouseFeignPO; import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO; @@ -300,6 +302,14 @@ public class ReservationStockInOrderApplicationService { return stockInOrderDomainService.closeOrder(stockInOrderDO); } + public Boolean pushInOrder(StockInOrder stockInOrderDO){ + return stockInOrderDomainService.pushInOrder(stockInOrderDO); + } + + public Boolean pushInOrderDetail(InMaterialDetail inMaterialDetail){ + return stockInOrderDomainService.pushInOrderDetail(inMaterialDetail); + } + /** * 导入入库单(根据Excel模板:表头在第1-12行,明细表从第13行开始) * Excel模板结构: diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java index d3b9000b1..ac6d82bc8 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java @@ -376,7 +376,9 @@ public class ReservationStockInOrderDomainService { @Transactional(rollbackFor = Exception.class) public Boolean auditState(ReservationStockInOrderDO stockInOrderDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); - + Integer auditStatus = stockInOrderDO.getAuditStatus(); + Integer issueStatus = 0; + issueStatus = auditStatus == 2 ? 2 : 3; // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null ? loginUser.getUserPo().getUserName() @@ -388,6 +390,7 @@ public class ReservationStockInOrderDomainService { .set(ReservationStockInOrder::getUpdateBy, loginUser.getUserid()) .set(ReservationStockInOrder::getUpdateByName, userRealName) .set(ReservationStockInOrder::getUpdateTime, new Date()) + .set(ReservationStockInOrder::getAuditStatus, issueStatus) .in(ReservationStockInOrder::getInOrderId, stockInOrderDO.getInOrderIds())); } @@ -511,6 +514,18 @@ public class ReservationStockInOrderDomainService { .in(ReservationStockInOrder::getInOrderId, stockInOrderDO.getInOrderIds())); } + public Boolean pushInOrder(StockInOrder stockInOrder) { + ReservationStockInOrder reservationStockInOrder = new ReservationStockInOrder(); + BeanUtils.copyProperties(stockInOrder, reservationStockInOrder); + return stockInOrderService.save(reservationStockInOrder); + } + + public Boolean pushInOrderDetail(InMaterialDetail inMaterialDetail) { + ReservationInMaterialDetail reservationInMaterialDetail = new ReservationInMaterialDetail(); + BeanUtils.copyProperties(inMaterialDetail, reservationInMaterialDetail); + return materialDetailService.save(reservationInMaterialDetail); + } + /** * @description 审核通过生成收货单 * @author ZhouGY diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderApplicationService.java index 07a0077f1..a3cef20e1 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderApplicationService.java @@ -210,7 +210,7 @@ public class ReservationStockOutOrderApplicationService { //设置货主信息 shipperParam(stockOutOrderDO); //设置客户信息 - customerParam(stockOutOrderDO); + //customerParam(stockOutOrderDO); stockOutOrderDO.setOrderTypeCode("pu_tong_chu_ku"); stockOutOrderDO.setOrderTypeName("普通出库"); //设置数据字典键值 @@ -232,6 +232,15 @@ public class ReservationStockOutOrderApplicationService { return stockOutOrderDomainService.close(stockOutOrderDO); } + + public Boolean pushOutOrder(StockOutOrder stockOutOrderDO){ + return stockOutOrderDomainService.pushOutOrder(stockOutOrderDO); + } + + public Boolean pushOutOrderDetail(OutMaterialDetail outMaterialDetail){ + return stockOutOrderDomainService.pushOutOrderDetail(outMaterialDetail); + } + /** * 批量删除出库单 */ @@ -826,18 +835,9 @@ public class ReservationStockOutOrderApplicationService { * @param stockOutOrderDO */ private void shipperParam(ReservationStockOutOrderDO stockOutOrderDO){ - String customerName = stockOutOrderDO.getCustomerName(); - if (customerName == null || !customerName.matches("\\d+")) { - AjaxResult ajaxResult = userServiceFeign.getInfoByName(customerName); - if(!"200".equals(String.valueOf(ajaxResult.get("code")))){ - throw new ServiceException("获取客户信息失败"); - } - UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class); - stockOutOrderDO.setShipperId(userPo.getUserId()); - stockOutOrderDO.setShipperCode(userPo.getUserMemberCode()); - stockOutOrderDO.setShipperName(userPo.getUserName()); - } else { - AjaxResult ajaxResult = userServiceFeign.getInfo(Long.valueOf(customerName)); + Long shipperId = stockOutOrderDO.getShipperId(); + if (shipperId != null ) { + AjaxResult ajaxResult = userServiceFeign.getInfo(Long.valueOf(shipperId)); if(!"200".equals(String.valueOf(ajaxResult.get("code")))){ throw new ServiceException("获取货主信息失败"); } @@ -845,6 +845,9 @@ public class ReservationStockOutOrderApplicationService { stockOutOrderDO.setShipperId(userPo.getUserId()); stockOutOrderDO.setShipperCode(userPo.getUserMemberCode()); stockOutOrderDO.setShipperName(userPo.getUserName()); + stockOutOrderDO.setCustomerId(userPo.getUserId()); + stockOutOrderDO.setCustomerCode(userPo.getUserMemberCode()); + stockOutOrderDO.setCustomerName(userPo.getUserName()); } } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java index d12bedb39..271cf4630 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java @@ -201,6 +201,19 @@ public class ReservationStockOutOrderDomainService { } + public Boolean pushOutOrder(StockOutOrder stockOutOrder) { + ReservationStockOutOrder reservationStockOutOrder = new ReservationStockOutOrder(); + BeanUtils.copyProperties(stockOutOrder, reservationStockOutOrder); + return stockOutOrderService.save(reservationStockOutOrder); + } + + public Boolean pushOutOrderDetail(OutMaterialDetail outMaterialDetail) { + ReservationOutMaterialDetail reservationOutMaterialDetail = new ReservationOutMaterialDetail(); + BeanUtils.copyProperties(outMaterialDetail, reservationOutMaterialDetail); + return outMaterialDetailService.save(reservationOutMaterialDetail); + } + + /** * @description 审核出库单 * @author ZhouGY @@ -211,7 +224,9 @@ public class ReservationStockOutOrderDomainService { @Transactional(rollbackFor = Exception.class) public Boolean auditState(ReservationStockOutOrderDO stockOutOrderDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); - + Integer auditStatus = stockOutOrderDO.getAuditStatus(); + Integer issueStatus = 0; + issueStatus = auditStatus == 2 ? 2 : 3; // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null ? loginUser.getUserPo().getUserName() @@ -223,6 +238,7 @@ public class ReservationStockOutOrderDomainService { .set(ReservationStockOutOrder::getUpdateBy, loginUser.getUserid()) .set(ReservationStockOutOrder::getUpdateByName, userRealName) .set(ReservationStockOutOrder::getUpdateTime, new Date()) + .set(ReservationStockOutOrder::getIssueStatus, issueStatus) .in(ReservationStockOutOrder::getOutOrderId, stockOutOrderDO.getOutOrderIds())); } @@ -236,7 +252,6 @@ public class ReservationStockOutOrderDomainService { @Transactional(rollbackFor = Exception.class) public Boolean issueOrder(ReservationStockOutOrderDO stockOutOrderDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); - // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null ? loginUser.getUserPo().getUserName() diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/ReservationStockOutOrder/ReservationStockOutOrderApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/ReservationStockOutOrder/ReservationStockOutOrderApi.java index a4d693b6a..f4e851289 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/ReservationStockOutOrder/ReservationStockOutOrderApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/ReservationStockOutOrder/ReservationStockOutOrderApi.java @@ -13,6 +13,10 @@ import com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationSt import com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationStockOutOrderDTO; import com.mhd.oms.domain.reservationStockOutOrder.service.ReservationStockOutOrderApplicationService; import com.mhd.oms.domain.reservationStockOutOrder.service.ReservationStockOutOrderAssembler; +import com.mhd.system.api.domain.InMaterialDetail; +import com.mhd.system.api.domain.OutMaterialDetail; +import com.mhd.system.api.domain.StockInOrder; +import com.mhd.system.api.domain.StockOutOrder; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -176,4 +180,17 @@ public class ReservationStockOutOrderApi extends BaseController { return toAjax(stockOutOrderApplicationService.close(stockOutOrderDO)); } + + @ApiOperation("wms推送入库单") + @PostMapping(value = "/pushOutOrder") + public AjaxResult pushOutOrder(@RequestBody StockOutOrder stockOutOrder) { + return AjaxResult.success(stockOutOrderApplicationService.pushOutOrder(stockOutOrder)); + } + + @ApiOperation("wms推送入库单明细") + @PostMapping(value = "/pushOutOrderDetail") + public AjaxResult pushOutOrderDetail(@RequestBody OutMaterialDetail outMaterialDetail) { + return AjaxResult.success(stockOutOrderApplicationService.pushOutOrderDetail(outMaterialDetail)); + } + } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationStockInOrder/ReservationStockInOrderApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationStockInOrder/ReservationStockInOrderApi.java index 9418364fe..7f0dd7b12 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationStockInOrder/ReservationStockInOrderApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationStockInOrder/ReservationStockInOrderApi.java @@ -8,6 +8,8 @@ import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationSto import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDTO; import com.mhd.oms.domain.reservationStockInOrder.service.ReservationStockInOrderApplicationService; import com.mhd.oms.domain.reservationStockInOrder.service.ReservationStockInOrderAssembler; +import com.mhd.system.api.domain.InMaterialDetail; +import com.mhd.system.api.domain.StockInOrder; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -148,4 +150,16 @@ public class ReservationStockInOrderApi extends BaseController { return AjaxResult.success(stockInOrderApplicationService.closeOrder(stockInOrderDO)); } + @ApiOperation("wms推送入库单") + @PostMapping(value = "/pushInOrder") + public AjaxResult pushInOrder(@RequestBody StockInOrder stockInOrder) { + return AjaxResult.success(stockInOrderApplicationService.pushInOrder(stockInOrder)); + } + + @ApiOperation("wms推送入库单明细") + @PostMapping(value = "/pushInOrderDetail") + public AjaxResult pushInOrderDetail(@RequestBody InMaterialDetail inMaterialDetail) { + return AjaxResult.success(stockInOrderApplicationService.pushInOrderDetail(inMaterialDetail)); + } + } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/service/InventoryAdjustmentRecordDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/service/InventoryAdjustmentRecordDomainService.java index 016834474..ed4ddf485 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/service/InventoryAdjustmentRecordDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/service/InventoryAdjustmentRecordDomainService.java @@ -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); + } } /** diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/repository/persistence/InvestigationManageImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/repository/persistence/InvestigationManageImpl.java index 5a4dc0e31..a0fac6b28 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/repository/persistence/InvestigationManageImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/repository/persistence/InvestigationManageImpl.java @@ -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 investigetionManageDetails = investigetionManageDetailMapper.selectList(new QueryWrapper().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