From 937fafc6495a22a23845b27856dc760248e9bd4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=80=A1=E8=93=89?= <377046077@qq.com> Date: Tue, 22 Jul 2025 16:25:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=8B=E6=8C=81=E6=9C=BA=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MydoJobServiceImpl.java | 15 +++++- .../out/submit/domain/OutPickSubmit.java | 32 +++++++++++- .../ruoyi/pda/controller/PdaController.java | 25 ++++++---- .../ruoyi/pda/domain/TrayCodeMakeSure.java | 4 ++ .../com/ruoyi/pda/service/PdaService.java | 2 + .../com/ruoyi/pda/service/PdaServiceImp.java | 50 ++++++++++++++++++- .../resources/mapper/job/MydoJobMapper.xml | 4 +- .../mapper/out/OutPickSubmitMapper.xml | 21 ++++++-- 8 files changed, 132 insertions(+), 21 deletions(-) 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 44c0760..5ea393a 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 @@ -27,6 +27,8 @@ import com.ruoyi.out.exception.domain.OutExceptionRecord; import com.ruoyi.out.outStockoutDetail.domain.OutStockoutDetail; import com.ruoyi.out.outStockoutDetail.service.IOutStockoutDetailService; import com.ruoyi.out.exception.service.IOutExceptionRecordService; +import com.ruoyi.pda.domain.TrayCodeMakeSure; +import com.ruoyi.pda.service.PdaService; import com.ruoyi.stock.stock.domain.BasStock; import com.ruoyi.stock.stock.service.IBasStockService; import org.springframework.beans.factory.annotation.Autowired; @@ -65,6 +67,8 @@ public class MydoJobServiceImpl implements IMydoJobService { private ICheckDifferenceRecordService checkDifferenceRecordService; @Autowired private IOutExceptionRecordService outExceptionRecordService; + @Autowired + private PdaService pdaService; /** @@ -397,8 +401,15 @@ public class MydoJobServiceImpl implements IMydoJobService { } @Override + @Transactional(rollbackFor = Exception.class) public AjaxResult OuthandFinish(String[] jobIds) { - return null; + for (String jobId : jobIds) { + MydoJob job = selectMydoJobByJobId(jobId); + TrayCodeMakeSure trayCodeMakeSure = new TrayCodeMakeSure(); + trayCodeMakeSure.setTrayCode(job.getTrayCode()); + pdaService.outMakeSure(trayCodeMakeSure); + } + return AjaxResult.success(); } @Override @@ -434,7 +445,7 @@ public class MydoJobServiceImpl implements IMydoJobService { //修改货位状态 BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId()); if (cargoSpace != null) { - cargoSpace.setStatus("1"); + cargoSpace.setStatus("2"); basCargoSpaceService.updateBasCargoSpace(cargoSpace); } job.setStatus("5"); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/submit/domain/OutPickSubmit.java b/ruoyi-admin/src/main/java/com/ruoyi/out/submit/domain/OutPickSubmit.java index bba0a66..0a1d493 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/submit/domain/OutPickSubmit.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/submit/domain/OutPickSubmit.java @@ -38,7 +38,37 @@ public class OutPickSubmit extends BaseEntity @Excel(name = "物料数量") private String quantit; - public void setId(Long id) + private String warehouseId; + + private String exitId; + + private String productName; + + public String getWarehouseId() { + return warehouseId; + } + + public void setWarehouseId(String warehouseId) { + this.warehouseId = warehouseId; + } + + public String getExitId() { + return exitId; + } + + public void setExitId(String exitId) { + this.exitId = exitId; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public void setId(Long id) { this.id = id; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java index 75c6791..bd9817c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java @@ -315,22 +315,19 @@ public class PdaController extends BaseController { mydoJob.setWarehouseId(basWarehouse.getWarehouseId()); mydoJob.setCargoSpaceId(trayCodeMsg.getTrayCode()); mydoJob.setInOut(trayCodeMsg.getInOut()); - if("1".equals(trayCodeMsg.getInOut())){ - mydoJob.setStatus("1"); - }else{ - mydoJob.setStatus("3"); - } - - List mydoJobs = mydoJobService.selectMydoJobList(mydoJob); //将mydoJob添加进mydoJobArrayList mydoJobArrayList.addAll(mydoJobs); - } //ctu库 if("2".equals(basWarehouse.getWarehouseType()) && !"1".equals(trayCodeMsg.getInOut())){ MydoJob mydoJob = new MydoJob(); - mydoJob.setInOut("2"); + if("4".equals(trayCodeMsg.getInOut())){ + mydoJob.setInOut("4"); + }else{ + mydoJob.setInOut("2"); + } + mydoJob.setWarehouseId(basWarehouse.getWarehouseId()); mydoJob.setCargoSpaceId(trayCodeMsg.getTrayCode()); mydoJob.setStatus("3"); @@ -338,7 +335,6 @@ public class PdaController extends BaseController { mydoJobArrayList.addAll(mydoJobs2); } - } } @@ -433,5 +429,14 @@ public class PdaController extends BaseController { public AjaxResult getAisleStatisticsData(@RequestParam("warehouseId") String warehouseId){ return success(pdaService.getAisleStatisticsData(warehouseId)); } + + /** + * 绑定料架 + */ + @RequestMapping("/bindShelf") + @ResponseBody + public AjaxResult bindShelf(@RequestBody TrayCodeMakeSure trayCodeMakeSure) { + return pdaService.bindShelf(trayCodeMakeSure); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMakeSure.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMakeSure.java index 8d5498c..a2e8e0c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMakeSure.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMakeSure.java @@ -17,6 +17,10 @@ public class TrayCodeMakeSure { private String trayCode; //容器码 private String containerCode; + + private String warehouseId; + + private String exitId; //拣选列表 private List mydoJobDetailList; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaService.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaService.java index 006767e..806b928 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaService.java @@ -42,4 +42,6 @@ public interface PdaService { Map getAisleStatisticsData(String warehouseId); AjaxResult bindContainer(TrayCodeMakeSure trayCodeMakeSure); + + AjaxResult bindShelf(TrayCodeMakeSure trayCodeMakeSure); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java index d495b3d..175bbd1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java @@ -227,17 +227,24 @@ public class PdaServiceImp implements PdaService { //判断任务是否存在 MydoJob mydoJobParam = new MydoJob(); mydoJobParam.setTrayCode(trayCodeMakeSure.getTrayCode()); + mydoJobParam.setStatus("3"); List mydoJobList = mydoJobService.selectMydoJobList(mydoJobParam); if (CollUtil.isEmpty(mydoJobList)) { return AjaxResult.warn("任务不存在"); } + + MydoJobDetail mydoJobDetailParam = new MydoJobDetail(); mydoJobDetailParam.setJobId(mydoJobList.get(0).getJobId()); List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam); if (CollUtil.isEmpty(mydoJobDetails)) { return AjaxResult.warn("子任务不存在"); } + //空托盘空料箱 + if("21".equals(mydoJobList.get(0).getInOrOut()) || "22".equals(mydoJobList.get(0).getInOrOut())){ + return handleOutType2(trayCodeMakeSure, mydoJobDetails, mydoJobList.get(0)); + } //获取单据类型 OutStockout outStockoutParam = new OutStockout(); @@ -339,7 +346,8 @@ public class PdaServiceImp implements PdaService { OutPickSubmit outPickSubmitParam = new OutPickSubmit(); //outPickSubmitParam.setJobId(mydoJob.getJobId()); //outPickSubmitParam.setJobDetailId(mydoJobDetail.getJobDetailId()); - outPickSubmitParam.setTrayCode(trayCodeMakeSure.getTrayCode()); + outPickSubmitParam.setWarehouseId(mydoJob.getWarehouseId()); + outPickSubmitParam.setExitId(mydoJob.getExitId()); List outPickSubmits = outPickSubmitService.selectOutPickSubmitList(outPickSubmitParam); if (outPickSubmits.isEmpty()) { //存入中间表 @@ -349,6 +357,8 @@ public class PdaServiceImp implements PdaService { outPickSubmit.setProductId(mydoJobDetail.getProductId()); outPickSubmit.setQuantit(mydoJobDetail.getOutQuantity()); outPickSubmit.setTrayCode(trayCodeMakeSure.getTrayCode()); + outPickSubmit.setWarehouseId(mydoJob.getWarehouseId()); + outPickSubmit.setExitId(mydoJob.getExitId()); outPickSubmitService.insertOutPickSubmit(outPickSubmit); } else { OutPickSubmit oldOutPickSubmit = outPickSubmits.get(0); @@ -677,4 +687,42 @@ public class PdaServiceImp implements PdaService { return AjaxResult.success("绑定成功"); } + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult bindShelf(TrayCodeMakeSure trayCodeMakeSure) { + BasContainerDetails basContainerDetails = new BasContainerDetails(); + basContainerDetails.setContainerId(trayCodeMakeSure.getContainerCode()); + for(MydoJobDetail mydoJobDetail:trayCodeMakeSure.getMydoJobDetailList()){ + basContainerDetails.setProductId(mydoJobDetail.getProductId()); + List basContainerDetailsList = basContainerDetailsService.selectBasContainerDetailsList(basContainerDetails); + if(basContainerDetailsList.size()==0){ + basContainerDetails.setProductName(mydoJobDetail.getExtraField().getMaterialDesc()); + basContainerDetails.setQuantity(Convert.toLong(mydoJobDetail.getPickBindQuantity())); + basContainerDetailsService.insertBasContainerDetails(basContainerDetails); + }else{ + basContainerDetails.setId(basContainerDetailsList.get(0).getId()); + basContainerDetails.setQuantity(basContainerDetailsList.get(0).getQuantity()+Convert.toLong(mydoJobDetail.getPickBindQuantity())); + basContainerDetailsService.updateBasContainerDetails(basContainerDetails); + } + + + OutPickSubmit outPickSubmitParam = new OutPickSubmit(); + outPickSubmitParam.setWarehouseId(trayCodeMakeSure.getWarehouseId()); + outPickSubmitParam.setExitId(trayCodeMakeSure.getExitId()); + outPickSubmitParam.setProductId(mydoJobDetail.getProductId()); + List outPickSubmits = outPickSubmitService.selectOutPickSubmitList(outPickSubmitParam); + if( Integer.parseInt(outPickSubmits.get(0).getQuantit()) > Integer.parseInt(mydoJobDetail.getPickBindQuantity()) ){ + outPickSubmitParam.setQuantit( String.valueOf(Integer.parseInt(outPickSubmits.get(0).getQuantit()) - Integer.parseInt(mydoJobDetail.getPickBindQuantity()))); + outPickSubmitParam.setId(outPickSubmits.get(0).getId()); + outPickSubmitService.updateOutPickSubmit(outPickSubmitParam); + }else{ + outPickSubmitService.deleteOutPickSubmitById(outPickSubmits.get(0).getId()); + } + } + + + + + return AjaxResult.success("绑定成功!"); + } } diff --git a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml index f8caa0c..76fcb78 100644 --- a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml @@ -84,8 +84,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and mj.class_id = #{classId} and mj.warehouse_id = #{warehouseId} and mj.fault_flag = #{faultFlag} - and mj.in_or_out >=20 - and mj.in_or_out < 20 + and mj.in_or_out >=20 and mj.in_or_out not in(25,26) + and mj.in_or_out < 20 and mj.in_or_out not in(5,6) and mj.in_or_out in (5,6) and mj.in_or_out in (25,26) diff --git a/ruoyi-admin/src/main/resources/mapper/out/OutPickSubmitMapper.xml b/ruoyi-admin/src/main/resources/mapper/out/OutPickSubmitMapper.xml index 2d06799..185fb86 100644 --- a/ruoyi-admin/src/main/resources/mapper/out/OutPickSubmitMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/out/OutPickSubmitMapper.xml @@ -11,20 +11,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + - select id, tray_code, job_id, job_detail_id, product_id, quantit from out_pick_submit + select id, tray_code, job_id, job_detail_id, product_id, quantit,exit_id,warehouse_id from out_pick_submit @@ -41,6 +46,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" job_detail_id, product_id, quantit, + warehouse_id, + exit_id, #{trayCode}, @@ -48,6 +55,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{jobDetailId}, #{productId}, #{quantit}, + #{warehouseId}, + #{exitId}, @@ -59,6 +68,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" job_detail_id = #{jobDetailId}, product_id = #{productId}, quantit = #{quantit}, + warehouse_id = #{warehouseId}, + exit_id = #{exitId}, where id = #{id}