From a01d5b87196a9b15379c19f0e5de3d3429f5121e Mon Sep 17 00:00:00 2001 From: zj Date: Wed, 18 Mar 2026 09:36:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=85=A5=E5=BA=93=EF=BC=8C?= =?UTF-8?q?=E5=B0=86=E8=87=AA=E5=8A=A8=E6=8A=A5=E5=B7=A5=E6=8B=86=E5=88=86?= =?UTF-8?q?=E8=87=B3=E5=85=A5=E5=BA=93=E5=AE=8C=E6=88=90=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 78 +++++++++---------- ruoyi-admin/pom.xml | 1 + .../api/controller/ToWmsApiController.java | 8 ++ .../com/ruoyi/api/service/IToWmsService.java | 2 + .../api/service/impl/ToWmsServiceImpl.java | 53 +++++++++---- .../job/mydojob/service/IMydoJobService.java | 2 + .../service/impl/MydoJobServiceImpl.java | 25 ++++++ .../stock/stock/mapper/BasStockMapper.java | 3 + .../resources/mapper/stock/BasStockMapper.xml | 4 + 9 files changed, 122 insertions(+), 54 deletions(-) diff --git a/pom.xml b/pom.xml index 1181acf..b5219df 100644 --- a/pom.xml +++ b/pom.xml @@ -267,46 +267,46 @@ - - - public - aliyun nexus - https://maven.aliyun.com/repository/public - - true - - - - spring-milestones - spring Milestones - https://repo.spring.io/milestone - - false - - + + + + + + + + + + + + + + + + + - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - false - - - + + + + + + + + + - - - public - aliyun nexus - https://maven.aliyun.com/repository/public - - true - - - false - - - + + + + + + + + + + + + + diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index c3d5860..851b4d2 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -125,6 +125,7 @@ com.microsoft.sqlserver mssql-jdbc + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java index b450df4..465b485 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java @@ -17,6 +17,7 @@ import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.uuid.UUID; +import com.ruoyi.job.mydojob.domain.MydoJob; import com.ruoyi.log.domain.RequestLog; import com.ruoyi.log.service.IRequestLogService; import com.ruoyi.out.outStockout.domain.OutStockout; @@ -127,6 +128,13 @@ public class ToWmsApiController { return ajaxResult; } + @PostMapping("/requestInSpace") + public AjaxResult requestInSpace(@RequestBody ReMaterialParam reMaterialParam) { + AjaxResult ajaxResult = toWmsService.requestInSpace(reMaterialParam); + RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(reMaterialParam), "requestInSpace", ajaxResult); + requestLogService.insertRequestLog(requestLog); + return ajaxResult; + } /** * 出库单据保存 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWmsService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWmsService.java index b821ace..0424d6c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWmsService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWmsService.java @@ -62,4 +62,6 @@ public interface IToWmsService { * 作废物料 */ AjaxResult InvalidProduct(BasProduct basProduct); + + AjaxResult requestInSpace(ReMaterialParam reMaterialParam); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java index 3a5d329..c4dd546 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java @@ -224,7 +224,6 @@ public class ToWmsServiceImpl implements IToWmsService { mydoJob.setTrayCode(serial); mydoJob.setLineId(erpBill); mydoJob.setDepartmentId(String.valueOf(size)); - mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId()); mydoJob.setEntranceId(requestEnter.getEntranceId()); mydoJob.setClassId(requestEnter.getFloor()); mydoJobService.insertMydoJob(mydoJob); @@ -253,15 +252,13 @@ public class ToWmsServiceImpl implements IToWmsService { mydoJobDetail.setStockinId(inStockId); mydoJobDetailService.insertMydoJobDetail(mydoJobDetail); - //修改货位状态 - basCargoSpace.setStatus("3"); - basCargoSpaceService.updateBasCargoSpace(basCargoSpace); - + //2026-01-30 优化,将入库分货位拆到巷道口处理 +// basCargoSpace.setStatus("3"); +// basCargoSpaceService.updateBasCargoSpace(basCargoSpace); //修改作业状态为正执行 result.put("jobId", mydoJob.getJobId()); result.put("taskNo", mydoJob.getTaskNo()); - result.put("cargoSpaceId", mydoJob.getCargoSpaceId()); result.put("trayCode", mydoJob.getTrayCode()); result.put("flag",requestEnter.getFlag()); result.put("roadwayId", mydoJob.getRoadwayId()); @@ -417,16 +414,8 @@ public class ToWmsServiceImpl implements IToWmsService { @Override public AjaxResult reMaterial(ReMaterialParam reMaterialParam) { - //重新分配物料 MydoJob mydoJob = mydoJobService.selectMydoJobByJobId(reMaterialParam.getJobId()); - MydoJobDetail mydoJobDetailParam = new MydoJobDetail(); - mydoJobDetailParam.setJobId(mydoJob.getJobId()); - List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam); - String stockOutId = mydoJobDetails.get(0).getInOrOutId(); - // 作废作业 - mydoJobService.OuthandInvalidation(new String[]{mydoJob.getJobId()}); - //调用自动分配 - return outStockoutService.autoAllot(stockOutId); + return mydoJobService.reMaterial(mydoJob); } @Override @@ -581,6 +570,40 @@ public class ToWmsServiceImpl implements IToWmsService { return AjaxResult.error(basProduct.getProductGuid()+"物料不存在"); } + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult requestInSpace(ReMaterialParam reMaterialParam) { + MydoJob mydoJob = mydoJobService.selectMydoJobByJobId(reMaterialParam.getJobId()); + if (ObjUtil.isNotNull(mydoJob)) { + if(mydoJob.getCargoSpaceId() != null && !"".equals(mydoJob.getCargoSpaceId())){ + BasCargoSpace space = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId()); + if (ObjUtil.isNotNull(space)) { + return AjaxResult.success(space); + } + } + BasCargoSpace basCargoSpaceParam = new BasCargoSpace(); + basCargoSpaceParam.setWarehouseId(mydoJob.getWarehouseId()); + basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId()); + BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam); + if (ObjUtil.isNull(basCargoSpace)) { + return AjaxResult.error("WCS请求入库分配货位,没有可用货位!"); + }else{ + try{ + basCargoSpace.setStatus("3"); + basCargoSpaceService.updateBasCargoSpace(basCargoSpace); + mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId()); + mydoJobService.updateMydoJob(mydoJob); + return AjaxResult.success(basCargoSpace); + }catch (Exception e){ + e.printStackTrace(); + return AjaxResult.error("WCS请求入库分配货位,货位分配失败!"); + } + } + }else{ + return AjaxResult.error("WCS请求入库分配货位,入库任务不存在!"); + } + } + private static final Map PATTERNS = createPatterns(); private static Map createPatterns() { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/IMydoJobService.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/IMydoJobService.java index b2384e0..796217c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/IMydoJobService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/IMydoJobService.java @@ -111,4 +111,6 @@ public interface IMydoJobService MydoJob selectMydoJobByEntranceId(MydoJob mydoJob); List getInJobBySerial(String serial); + + AjaxResult reMaterial(MydoJob mydoJob); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java index 2c41182..d322b72 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java @@ -565,4 +565,29 @@ public class MydoJobServiceImpl implements IMydoJobService { public List getInJobBySerial(String trayCode) { return mydoJobMapper.getInJobBySerial(trayCode); } + + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult reMaterial(MydoJob mydoJob) { + try { + //修改货位状态 + BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId()); + if (cargoSpace != null) { + cargoSpace.setStatus("6"); + basCargoSpaceService.updateBasCargoSpace(cargoSpace); + + basStockMapper.deleteBySpaceAndTray(mydoJob.getCargoSpaceId(),mydoJob.getTrayCode()); + } + mydoJob.setStatus("5"); + mydoJob.setFinishTime(DateUtil.formatDateTime(DateUtil.date())); + updateMydoJob(mydoJob); + insertHistory(mydoJob.getJobId()); + }catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + log.error("任务处理异常", e); + return AjaxResult.error(); + } + return AjaxResult.success(); + + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java index cf9f1f1..3d9d0a2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java @@ -2,6 +2,7 @@ package com.ruoyi.stock.stock.mapper; import com.ruoyi.stock.stock.domain.BasStock; import org.apache.ibatis.annotations.Param; +import org.springframework.security.core.parameters.P; import java.util.List; @@ -70,4 +71,6 @@ public interface BasStockMapper void resetPdRecord(); List getStockBySerial(String trayCode); + + void deleteBySpaceAndTray(@Param("cargoSpaceId") String cargoSpaceId, @Param("trayCode") String trayCode); } diff --git a/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml b/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml index 86b54e1..0c21a0c 100644 --- a/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml @@ -248,4 +248,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + delete from bas_stock where tray_code = #{trayCode} and cargo_space_id=#{cargoSpaceId} +