diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/mapper/InStockinDetailMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/mapper/InStockinDetailMapper.java index dc91ccc..421ffce 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/mapper/InStockinDetailMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/mapper/InStockinDetailMapper.java @@ -68,5 +68,5 @@ public interface InStockinDetailMapper void deleteInStockinDetailByStockinGuid(String stockinGuid); - InStockinDetail selectStockinByDetailById(String stockinDetailId); + InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/IInStockinDetailService.java b/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/IInStockinDetailService.java index f6b9b05..b08fac1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/IInStockinDetailService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/IInStockinDetailService.java @@ -80,5 +80,5 @@ public interface IInStockinDetailService AjaxResult barcodePrinting(Map stockinDetailId); - public InStockinDetail selectStockinByDetailById(String stockinDetailId); + public InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/impl/InStockinDetailServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/impl/InStockinDetailServiceImpl.java index 2dc1c90..0d06891 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/impl/InStockinDetailServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/impl/InStockinDetailServiceImpl.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Map; import cn.hutool.json.JSONUtil; +import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.domain.ExtraField; import com.ruoyi.in.stockin.domain.InStockin; @@ -124,8 +125,10 @@ public class InStockinDetailServiceImpl implements IInStockinDetailService } @Override - public InStockinDetail selectStockinByDetailById(String stockinDetailId) { - return inStockinDetailMapper.selectStockinByDetailById(stockinDetailId); + @DataScope(warehouseAlias = "ist") + public InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail) { + + return inStockinDetailMapper.selectStockinByDetailById(inStockinDetail); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/domain/MydoJob.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/domain/MydoJob.java index 3817969..91a149c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/domain/MydoJob.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/domain/MydoJob.java @@ -11,7 +11,7 @@ import com.ruoyi.common.core.domain.BaseEntity; * @author ruoyi * @date 2025-05-23 */ -public class MydoJob +public class MydoJob extends BaseEntity { private static final long serialVersionUID = 1L; @@ -93,9 +93,7 @@ public class MydoJob @Excel(name = "任务类型",dictType = "in_or_out_type") private String inOrOut; - /** 开始时间 */ - @Excel(name = "创建时间") - private String createTime; + /** 开始时间 */ @Excel(name = "开始时间") @@ -146,13 +144,9 @@ public class MydoJob this.warehouseName = warehouseName; } - public String getCreateTime() { - return createTime; - } - public void setCreateTime(String createTime) { - this.createTime = createTime; - } + + public String getInOut() { return inOut; 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 01b19d3..b56b7e7 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 @@ -12,6 +12,7 @@ import com.ruoyi.bas.basJobId.service.IBasJobIdService; import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace; import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService; import com.ruoyi.bas.taskNo.service.IBasTaskNoService; +import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.in.stockindetail.domain.InStockinDetail; @@ -74,6 +75,7 @@ public class MydoJobServiceImpl implements IMydoJobService { * @return 任务表 */ @Override + @DataScope(warehouseAlias = "bw") public List selectMydoJobList(MydoJob mydoJob) { return mydoJobMapper.selectMydoJobList(mydoJob); } @@ -86,7 +88,7 @@ public class MydoJobServiceImpl implements IMydoJobService { */ @Override public int insertMydoJob(MydoJob mydoJob) { - mydoJob.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + mydoJob.setCreateTime(new Date()); mydoJob.setJobId(basJobIdService.getJobId("RK")); mydoJob.setTaskNo(Convert.toStr(basTaskNoService.getTaskNo("1"))); return mydoJobMapper.insertMydoJob(mydoJob); @@ -246,6 +248,15 @@ public class MydoJobServiceImpl implements IMydoJobService { mydoJobDetail.setJobId(jobId); List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetail); for (MydoJobDetail detail : mydoJobDetails) { + //修改库存的出库数量 + BasStock basStock = basStockService.selectBasStockByStockId(detail.getStockId()); + if (basStock != null) { + BigDecimal outQuantity = Convert.toBigDecimal(basStock.getOutQuantity()); + BigDecimal substract = outQuantity.subtract(Convert.toBigDecimal(detail.getOutQuantity())); + basStock.setOutQuantity(String.valueOf(substract)); + basStockService.updateBasStock(basStock); + } + //修改单据数量 OutStockoutDetail outStockoutDetail = outStockoutDetailService.selectOutStockoutDetailByStockoutDetailId(detail.getInOrOutDId()); if (outStockoutDetail != null) { BigDecimal allotQuantity = outStockoutDetail.getAllotQuantity(); @@ -254,6 +265,12 @@ public class MydoJobServiceImpl implements IMydoJobService { outStockoutDetailService.updateOutStockoutDetail(outStockoutDetail); } } + //修改货位状态 + BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId()); + if (cargoSpace != null) { + cargoSpace.setStatus("1"); + basCargoSpaceService.updateBasCargoSpace(cargoSpace); + } job.setStatus("5"); insertHistory(jobId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojobdetail/domain/MydoJobDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojobdetail/domain/MydoJobDetail.java index ad56821..74430fe 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojobdetail/domain/MydoJobDetail.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojobdetail/domain/MydoJobDetail.java @@ -125,6 +125,15 @@ public class MydoJobDetail extends BaseEntity private String pickQuantity; //额外字段 private ExtraField extraField; + private String pickQuantityReal; + + public String getPickQuantityReal() { + return pickQuantityReal; + } + + public void setPickQuantityReal(String pickQuantityReal) { + this.pickQuantityReal = pickQuantityReal; + } public String getPickQuantity() { return pickQuantity; 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 e75c368..af75ac1 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 @@ -1,6 +1,7 @@ package com.ruoyi.pda.controller; import cn.hutool.core.util.StrUtil; +import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace; import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService; import com.ruoyi.bas.warehouse.domain.BasWarehouse; import com.ruoyi.bas.warehouse.service.IBasWarehouseService; @@ -11,6 +12,10 @@ import com.ruoyi.in.stockin.domain.InStockin; import com.ruoyi.in.stockin.service.IInStockinService; import com.ruoyi.in.stockindetail.domain.InStockinDetail; import com.ruoyi.in.stockindetail.service.IInStockinDetailService; +import com.ruoyi.job.mydojob.domain.MydoJob; +import com.ruoyi.job.mydojob.service.IMydoJobService; +import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail; +import com.ruoyi.job.mydojobdetail.service.IMydoJobDetailService; import com.ruoyi.pda.domain.TrayCodeMakeSure; import com.ruoyi.pda.domain.TrayCodeMsg; import com.ruoyi.pda.service.PdaService; @@ -23,6 +28,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -42,9 +48,16 @@ public class PdaController extends BaseController { private IBasWarehouseService basWarehouseService; @Autowired private ITrayMsgService trayMsgService; + @Autowired + private IBasCargoSpaceService basCargoSpaceService; + @Autowired + private IMydoJobService mydoJobService; + @Autowired + private IMydoJobDetailService mydoJobDetailService; /** * 空托盘入库 + * * @param trayCodeMsg * @return */ @@ -52,87 +65,121 @@ public class PdaController extends BaseController { @ResponseBody public AjaxResult emptyTrayIn(@RequestBody TrayCodeMsg trayCodeMsg) { BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId()); - if(basWarehouse==null){ + if (basWarehouse == null) { return AjaxResult.error("仓库不存在"); - }else{ - if("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())){ - return AjaxResult.error("请选择高架库货位"); - } - } + if ("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())) { + return AjaxResult.error("请选择高架库货位"); + } + if ("2".equals(basWarehouse.getWarehouseType())) { + BasCargoSpace basCargoSpace = new BasCargoSpace(); + basCargoSpace.setWarehouseId(trayCodeMsg.getWarehouseId()); + basCargoSpace.setStatus("1"); + List basCargoSpaces = basCargoSpaceService.selectBasCargoSpaceList(basCargoSpace); + if (basCargoSpaces.size() == 0) { + return AjaxResult.error("此仓库没有空余货位"); + } else { + trayCodeMsg.setCargoSpaceId(basCargoSpaces.get(0).getCargoSpaceId()); + } + } + + return pdaService.emptyTrayIn(trayCodeMsg); } - /** - * 空料箱入库 - */ - @RequestMapping("/emptyBoxIn") - @ResponseBody - public AjaxResult emptyBoxIn(@RequestBody TrayCodeMsg trayCodeMsg) { - AjaxResult ajaxResult = pdaService.emptyBoxIn(trayCodeMsg); - return ajaxResult; - } +// /** +// * 空料箱入库 +// */ +// @RequestMapping("/emptyBoxIn") +// @ResponseBody +// public AjaxResult emptyBoxIn(@RequestBody TrayCodeMsg trayCodeMsg) { +// AjaxResult ajaxResult = pdaService.emptyBoxIn(trayCodeMsg); +// return ajaxResult; +// } /** * 空托盘库存查询 + * * @param warehouseId * @return */ + @PreAuthorize("@ss.hasPermi('pda:selectKTPStcok:list')") @RequestMapping("/selectKTPStcok") @ResponseBody public AjaxResult selectKTPStcok(String warehouseId) { - - List basStockList = basStockService.selectKtpStock(warehouseId); + BasStock basStock = new BasStock(); + basStock.setWarehouseId(warehouseId); + List basStockList = basStockService.selectKtpStock(basStock); if (basStockList.size() != 0) { - return AjaxResult.success(basStockList); - }else{ - return AjaxResult.error("此区域没有空托盘库存"); + return AjaxResult.success(basStockList); + } else { + return AjaxResult.error("此区域没有空托盘库存"); } } /** * 空托盘出库 + * * @param * @return */ @RequestMapping("/emptyTrayOut") @ResponseBody - public AjaxResult emptyTrayOut(@RequestBody TrayCodeMsg trayCodeMsg ) { + public AjaxResult emptyTrayOut(@RequestBody TrayCodeMsg trayCodeMsg) { BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId()); - if (basWarehouse == null){ + if (basWarehouse == null) { return AjaxResult.error("仓库不存在"); - }else{ - if("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())){ - return AjaxResult.error("请选择高架库货位"); + } + if ("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())) { + return AjaxResult.error("请选择高架库货位"); + } + if ("2".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getExitId())) { + return AjaxResult.error("请选择出口"); + } + if("2".equals(basWarehouse.getWarehouseType())){ + BasStock basStock = new BasStock(); + basStock.setWarehouseId(trayCodeMsg.getWarehouseId()); + List basStockList = basStockService.selectKtpStock(basStock); + if(basStockList.size() == 0){ + return AjaxResult.error("此区域没有空托盘库存或此用户没有该区域权限"); + }else{ + trayCodeMsg.setCargoSpaceId(basStockList.get(0).getCargoSpaceId()); } } + return pdaService.emptyTrayOut(trayCodeMsg); } - /** - * 空料箱出库 - * @param trayCodeMsg - * @return - */ - @RequestMapping("/emptyBoxOut") - @ResponseBody - public AjaxResult emptyBoxOut(@RequestBody TrayCodeMsg trayCodeMsg) { - return pdaService.emptyBoxOut(trayCodeMsg); - } +// /** +// * 空料箱出库 +// * +// * @param trayCodeMsg +// * @return +// */ +// @RequestMapping("/emptyBoxOut") +// @ResponseBody +// public AjaxResult emptyBoxOut(@RequestBody TrayCodeMsg trayCodeMsg) { +// return pdaService.emptyBoxOut(trayCodeMsg); +// } /** * 绑盘查询入库单详情 + * * @param stockinDetailId * @return */ + @PreAuthorize("@ss.hasPermi('pda:inoderList:list')") @RequestMapping("/inorder/detail") @ResponseBody public InStockinDetail inoderList(String stockinDetailId) { - InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(stockinDetailId); + InStockinDetail inStockinDetail1 = new InStockinDetail(); + inStockinDetail1.setStockinDetailId(stockinDetailId); + InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(inStockinDetail1); return inStockinDetail; } + /** * 绑定托盘物料 */ @@ -155,6 +202,7 @@ public class PdaController extends BaseController { List trayMsgs = trayMsgService.selectTrayMsgList(trayMsg); return AjaxResult.success(trayMsgs); } + /** * 确认入库 */ @@ -162,18 +210,30 @@ public class PdaController extends BaseController { @ResponseBody public AjaxResult addInJob(@RequestBody TrayCodeMsg trayCodeMsg) { BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId()); -// if(basWarehouse==null){ -// return AjaxResult.error("仓库不存在"); -// } - if("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())){ + if (basWarehouse == null) { + return AjaxResult.error("仓库不存在"); + } + if ("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())) { return AjaxResult.error("请选择高架库货位"); } + if ("2".equals(basWarehouse.getWarehouseType())) { + BasCargoSpace basCargoSpace = new BasCargoSpace(); + basCargoSpace.setWarehouseId(trayCodeMsg.getWarehouseId()); + basCargoSpace.setStatus("1"); + List basCargoSpaces = basCargoSpaceService.selectBasCargoSpaceList(basCargoSpace); + if (basCargoSpaces.size() == 0) { + return AjaxResult.error("此仓库没有空余货位"); + } else { + trayCodeMsg.setCargoSpaceId(basCargoSpaces.get(0).getCargoSpaceId()); + } + } return pdaService.addInJob(trayCodeMsg); } /** * 出库确认 + * * @param trayCodeMakeSure 托盘信息 * @return */ @@ -193,5 +253,68 @@ public class PdaController extends BaseController { public AjaxResult checkMakeSure(@RequestBody TrayCodeMakeSure trayCodeMakeSure) { return pdaService.checkMakeSure(trayCodeMakeSure); } + + /** + * 查询所有待处理任务 + */ + @PreAuthorize("@ss.hasPermi('pda:taskList:list')") + @RequestMapping("/taskList") + @ResponseBody + public AjaxResult taskList(@RequestBody TrayCodeMsg trayCodeMsg) { + List basWarehouses = basWarehouseService.selectBasWarehouseList(new BasWarehouse()); + List mydoJobArrayList = new ArrayList<>(); + if(basWarehouses.size() != 0){ + + for(BasWarehouse basWarehouse : basWarehouses){ + + //高架库 + if("1".equals(basWarehouse.getWarehouseType())){ + MydoJob mydoJob = new MydoJob(); + mydoJob.setWarehouseId(basWarehouse.getWarehouseId()); + mydoJob.setCargoSpaceId(trayCodeMsg.getTrayCode()); + mydoJob.setInOut(trayCodeMsg.getInOut()); + mydoJob.setStatus("1"); + 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"); + mydoJob.setWarehouseId(basWarehouse.getWarehouseId()); + mydoJob.setCargoSpaceId(trayCodeMsg.getTrayCode()); + mydoJob.setStatus("3"); + List mydoJobs2 = mydoJobService.selectMydoJobList(mydoJob); + mydoJobArrayList.addAll(mydoJobs2); + } + + + } + + } + return AjaxResult.success(mydoJobArrayList); + } + + /** + * 用托盘条码查询子作业数据 + */ + @RequestMapping("/selectDetailByTray") + @ResponseBody + public AjaxResult selectDetailByTray(@RequestBody TrayCodeMsg trayCodeMsg) { + MydoJob mydoJob = new MydoJob(); + mydoJob.setTrayCode(trayCodeMsg.getTrayCode()); + mydoJob.setStatus(trayCodeMsg.getStatus()); + List mydoJobs = mydoJobService.selectMydoJobList(mydoJob); + if(mydoJobs.size() == 0){ + return AjaxResult.error("此托盘没有作业"); + } + MydoJobDetail mydoJobDetail = new MydoJobDetail(); + mydoJobDetail.setJobId(mydoJobs.get(0).getJobId()); + List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetail); + + return AjaxResult.success(mydoJobDetails); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMsg.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMsg.java index 7f18564..ef453f3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMsg.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMsg.java @@ -16,6 +16,25 @@ private String exitId; private String stockinDetailId; +private String inOut; +private String status; + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getInOut() { + return inOut; + } + + public void setInOut(String inOut) { + this.inOut = inOut; + } + public String getStockinDetailId() { return stockinDetailId; } 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 22c8488..0cb31d3 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 @@ -36,16 +36,18 @@ import java.util.HashMap; import java.util.List; @Service -public class PdaServiceImp implements PdaService{ +public class PdaServiceImp implements PdaService { @Autowired private PdaMapper pdaMapper; @Autowired private IBasCargoSpaceService basCargoSpaceService; @Autowired - private IMydoJobDetailService mydoJobDetailService;; + private IMydoJobDetailService mydoJobDetailService; + ; @Autowired - private IMydoJobService mydoJobService;; + private IMydoJobService mydoJobService; + ; @Autowired ISysRoleService sysRoleService; @Autowired @@ -59,6 +61,7 @@ public class PdaServiceImp implements PdaService{ /** * 空托盘入库 + * * @param trayCodeMsg * @return */ @@ -71,9 +74,9 @@ public class PdaServiceImp implements PdaService{ map.put("v_cargo_space_id", trayCodeMsg.getCargoSpaceId()); pdaMapper.emptyTrayIn(map); String result = map.get("v_result").toString(); - if("10".equals(result)){ + if ("10".equals(result)) { return AjaxResult.success(map.get("v_resultmsg").toString()); - }else{ + } else { return AjaxResult.error(map.get("v_resultmsg").toString()); } @@ -81,6 +84,7 @@ public class PdaServiceImp implements PdaService{ /** * 空料箱入库 + * * @param trayCodeMsg * @return */ @@ -92,9 +96,9 @@ public class PdaServiceImp implements PdaService{ map.put("v_entrance_id", trayCodeMsg.getEntranceId()); pdaMapper.emptyBoxIn(map); String result = map.get("v_result").toString(); - if("10".equals(result)){ + if ("10".equals(result)) { return AjaxResult.success(map.get("v_resultmsg").toString()); - }else{ + } else { return AjaxResult.error(map.get("v_resultmsg").toString()); } @@ -105,11 +109,12 @@ public class PdaServiceImp implements PdaService{ HashMap map = new HashMap<>(); map.put("v_warehouse_id", trayCodeMsg.getWarehouseId()); map.put("v_cargo_space_id", trayCodeMsg.getCargoSpaceId()); + map.put("v_exit_id", trayCodeMsg.getExitId()); pdaMapper.emptyTrayOut(map); String result = map.get("v_result").toString(); - if("10".equals(result)){ + if ("10".equals(result)) { return AjaxResult.success(map.get("v_resultmsg").toString()); - }else{ + } else { return AjaxResult.warn(map.get("v_resultmsg").toString()); } } @@ -122,9 +127,9 @@ public class PdaServiceImp implements PdaService{ map.put("v_exit_id", trayCodeMsg.getExitId()); pdaMapper.emptyBoxOut(map); String result = map.get("v_result").toString(); - if("10".equals(result)){ + if ("10".equals(result)) { return AjaxResult.success(map.get("v_resultmsg").toString()); - }else{ + } else { return AjaxResult.warn(map.get("v_resultmsg").toString()); } } @@ -132,26 +137,19 @@ public class PdaServiceImp implements PdaService{ @Override public AjaxResult bindTrayMsg(TrayCodeMsg trayCodeMsg) { //判断用户的仓库权限 - List roles = sysRoleService.selectRolesByUserId(SecurityUtils.getUserId()); - if (!roles.stream().anyMatch(SysRole::isAdmin)){ - - for (SysRole role : roles) { - if (CollUtil.isNotEmpty(role.getWarehouseDataScope())){ - InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(trayCodeMsg.getStockinDetailId()); - if(!role.getWarehouseDataScope().stream().anyMatch(warehouseId -> warehouseId.equals(inStockinDetail.getWarehouseId()))){ - return AjaxResult.warn("此用户无权限操作该仓库物料"); - } - } - } - + InStockinDetail inStockinDetail1 = new InStockinDetail(); + inStockinDetail1.setStockinDetailId(trayCodeMsg.getStockinDetailId()); + InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(inStockinDetail1); + if (inStockinDetail == null) { + return AjaxResult.warn("此用户无权限操作该仓库物料,或物料不存在"); } //判断与已绑定物料是否为同一仓库 TrayMsg trayMsg = new TrayMsg(); trayMsg.setTrayCode(trayCodeMsg.getTrayCode()); List trayMsgs = trayMsgService.selectTrayMsgList(trayMsg); - if(trayMsgs.size()>0){ - InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(trayCodeMsg.getStockinDetailId()); - if(!trayMsgs.get(0).getWarehouseId().equals(inStockinDetail.getWarehouseId())){ + if (trayMsgs.size() > 0) { +// InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(trayCodeMsg.getStockinDetailId()); + if (!trayMsgs.get(0).getWarehouseId().equals(inStockinDetail.getWarehouseId())) { return AjaxResult.warn("同一托盘不能绑定不同仓库的物料"); } } @@ -160,12 +158,12 @@ public class PdaServiceImp implements PdaService{ HashMap map = new HashMap<>(); map.put("v_tray_code", trayCodeMsg.getTrayCode()); map.put("v_stockin_detail_id", trayCodeMsg.getStockinDetailId()); - map.put("v_quantity", Integer.parseInt(trayCodeMsg.getInQuantity())); + map.put("v_quantity", Integer.parseInt(trayCodeMsg.getInQuantity())); pdaMapper.bindTrayMsg(map); String result = map.get("v_result").toString(); - if("10".equals(result)){ + if ("10".equals(result)) { return AjaxResult.success(map.get("v_resultmsg").toString()); - }else{ + } else { return AjaxResult.warn(map.get("v_resultmsg").toString()); } } @@ -179,9 +177,9 @@ public class PdaServiceImp implements PdaService{ map.put("v_cargo_space_id", trayCodeMsg.getCargoSpaceId()); pdaMapper.addInJob(map); String result = map.get("v_result").toString(); - if("10".equals(result)){ + if ("10".equals(result)) { return AjaxResult.success(map.get("v_resultmsg").toString()); - }else{ + } else { return AjaxResult.warn(map.get("v_resultmsg").toString()); } @@ -222,29 +220,29 @@ public class PdaServiceImp implements PdaService{ MydoJob mydoJobParam = new MydoJob(); mydoJobParam.setTrayCode(trayCodeMakeSure.getTrayCode()); List mydoJobList = mydoJobService.selectMydoJobList(mydoJobParam); - if (CollUtil.isEmpty(mydoJobList)){ + 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)){ + if (CollUtil.isEmpty(mydoJobDetails)) { return AjaxResult.warn("子任务不存在"); } boolean flag = mydoJobDetails.stream().allMatch(mydoJobDetail -> mydoJobDetail.getPickQuantity().equals(mydoJobDetail.getOutQuantity())); - if (flag){ + if (flag) { HashMap map = new HashMap<>(); map.put("v_tray_code", trayCodeMakeSure.getTrayCode()); pdaMapper.outMakeSure(map); String result = map.get("v_result").toString(); - if("10".equals(result)){ + if ("10".equals(result)) { return AjaxResult.success(map.get("v_resultmsg").toString()); - }else{ + } else { return AjaxResult.warn(map.get("v_resultmsg").toString()); } - }else { + } else { return AjaxResult.warn("拣选完成"); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/trayMsg/controller/TrayMsgController.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/trayMsg/controller/TrayMsgController.java index 4ecb031..e99b88e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/trayMsg/controller/TrayMsgController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/trayMsg/controller/TrayMsgController.java @@ -2,16 +2,12 @@ package com.ruoyi.pda.trayMsg.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.in.stockindetail.domain.InStockinDetail; +import com.ruoyi.in.stockindetail.service.IInStockinDetailService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; @@ -33,6 +29,8 @@ public class TrayMsgController extends BaseController { @Autowired private ITrayMsgService trayMsgService; + @Autowired + private IInStockinDetailService inStockinDetailService; /** * 查询trayMsg列表 @@ -101,4 +99,24 @@ public class TrayMsgController extends BaseController { return toAjax(trayMsgService.deleteTrayMsgByIds(ids)); } + + @PreAuthorize("@ss.hasPermi('pda:trayMsg:remove')") + @RequestMapping("/remove") + @Log(title = "trayMsg", businessType = BusinessType.DELETE) + public AjaxResult remove(@RequestBody TrayMsg trayMsg) + { + List list = trayMsgService.selectTrayMsgList(trayMsg); + int i = trayMsgService.deleteTrayMsgById(list.get(0).getId()); + if(i>0){ +// InStockinDetail inStockinDetail = new InStockinDetail(); +// inStockinDetail.setStockinDetailId(trayMsg.getStockinDetailId()); + InStockinDetail inStockinDetail1 = inStockinDetailService.selectInStockinDetailByStockinDetailId(trayMsg.getStockinDetailId()); + Integer num=Integer.parseInt(inStockinDetail1.getScanNum())-Integer.parseInt(list.get(0).getQuantity()); + inStockinDetail1.setScanNum(String.valueOf(num)); + inStockinDetailService.updateInStockinDetail(inStockinDetail1); + } + + return toAjax(i); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/trayMsg/service/impl/TrayMsgServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/trayMsg/service/impl/TrayMsgServiceImpl.java index 9052bbc..d37889a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/trayMsg/service/impl/TrayMsgServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/trayMsg/service/impl/TrayMsgServiceImpl.java @@ -1,6 +1,8 @@ package com.ruoyi.pda.trayMsg.service.impl; import java.util.List; + +import com.ruoyi.common.annotation.DataScope; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.pda.trayMsg.mapper.TrayMsgMapper; @@ -38,6 +40,7 @@ public class TrayMsgServiceImpl implements ITrayMsgService * @return trayMsg */ @Override + @DataScope(warehouseAlias = "w") public List selectTrayMsgList(TrayMsg trayMsg) { return trayMsgMapper.selectTrayMsgList(trayMsg); @@ -45,7 +48,6 @@ public class TrayMsgServiceImpl implements ITrayMsgService /** * 新增trayMsg - * * @param trayMsg trayMsg * @return 结果 */ 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 9dd3d0f..a210a63 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 @@ -61,5 +61,5 @@ public interface BasStockMapper void insertBasStockList(List list); - List selectKtpStock(String warehouseId); + List selectKtpStock(BasStock basStock); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java index d686833..cb6e590 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java @@ -63,5 +63,5 @@ public interface IBasStockService void insertBasStockList(List list); - List selectKtpStock(String warehouseId); + List selectKtpStock(BasStock basStock); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java index 171030a..aa508d7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java @@ -10,6 +10,7 @@ import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService; import com.ruoyi.bas.cargoSpace.service.impl.BasCargoSpaceServiceImpl; import com.ruoyi.bas.warehouse.domain.BasWarehouse; import com.ruoyi.bas.warehouse.service.IBasWarehouseService; +import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.stock.freeze.domain.BasStockFreezeRecord; @@ -174,9 +175,9 @@ public class BasStockServiceImpl implements IBasStockService public void insertBasStockList(List list) { basStockMapper.insertBasStockList(list); } - + @DataScope(warehouseAlias = "s") @Override - public List selectKtpStock(String warehouseId) { - return basStockMapper.selectKtpStock(warehouseId); + public List selectKtpStock(BasStock basStock) { + return basStockMapper.selectKtpStock(basStock); } } diff --git a/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml b/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml index b6a12e6..a1c5276 100644 --- a/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml @@ -76,6 +76,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bcs.cargo_space_logo = #{cargoSpaceLogo} and bcs.this_cargo_area = #{thisCargoArea} + order by the_platoon,the_floor,the_column + diff --git a/ruoyi-admin/src/main/resources/mapper/job/MydoJobDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/job/MydoJobDetailMapper.xml index fd3c989..bb2ed60 100644 --- a/ruoyi-admin/src/main/resources/mapper/job/MydoJobDetailMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/job/MydoJobDetailMapper.xml @@ -32,6 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -72,6 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mjd.spare3, mjd.spare4, mjd.pick_quantity, + mjd.out_quantity-mjd.pick_quantity as pick_quantity_real, bp.product_name, bp.spare1 as englishDesc, bp.spare2 as netWeight,bp.spare5 as length,bp.spare6 as width,bp.spare7 as height,bp.spare8 as volume diff --git a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml index b791ec8..c72173a 100644 --- a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml @@ -88,6 +88,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and mj.in_or_out < 20 and mj.in_or_out in (5,6) and mj.in_or_out in (25,26) + + ${params.warehouseDataScope} + diff --git a/ruoyi-admin/src/main/resources/mapper/pda/PdaMapper.xml b/ruoyi-admin/src/main/resources/mapper/pda/PdaMapper.xml index 6e7f466..bf07fc1 100644 --- a/ruoyi-admin/src/main/resources/mapper/pda/PdaMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/pda/PdaMapper.xml @@ -35,6 +35,7 @@ {call proc_tray_out( #{v_warehouse_id,mode=IN,jdbcType=VARCHAR}, #{v_cargo_space_id,mode=IN,jdbcType=VARCHAR}, + #{v_exit_id,mode=IN,jdbcType=VARCHAR}, #{v_result,mode=OUT,jdbcType=INTEGER}, #{v_resultmsg,mode=OUT,jdbcType=VARCHAR} )} @@ -61,9 +62,7 @@ diff --git a/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml b/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml index d7e8fcc..9cdc4ac 100644 --- a/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml @@ -252,9 +252,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + select b.cargo_space_name, b.cargo_space_id from bas_stock s,bas_cargo_space b + + s.warehouse_id=#{warehouseId} and s.cargo_space_id=b.cargo_space_id and b.warehouse_id= s.warehouse_id and b.status='2' and s.product_id='KTP0001' + + ${params.warehouseDataScope} + + order by b.the_platoon,b.the_floor,b.the_column asc