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 2a76b58..332deaf 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 @@ -27,9 +27,9 @@ public class ToWmsApiController { /** * 入库任务请求 */ - @PostMapping("/inJob") - public AjaxResult inJob(@RequestBody MydoJob mydoJob) { - AjaxResult ajaxResult = toWmsService.inJob(mydoJob); + @PostMapping("/requestEnter") + public AjaxResult requestEnter(@RequestBody MydoJob mydoJob) { + AjaxResult ajaxResult = toWmsService.requestEnter(mydoJob); RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "InJob"); requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg"))); requestLogService.insertRequestLog(requestLog); 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 d8990ad..f572c1d 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 @@ -11,7 +11,7 @@ import java.util.Map; */ public interface IToWmsService { - AjaxResult inJob(MydoJob mydoJob); + AjaxResult requestEnter(MydoJob mydoJob); AjaxResult jobFinish(WmsJobRequest wmsJobRequest); 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 08cd0d3..a07aacc 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 @@ -71,12 +71,21 @@ public class ToWmsServiceImpl implements IToWmsService { @Override - public AjaxResult inJob(MydoJob mydoJob) { - List mydoJobs = mydoJobService.selectMydoJobList(mydoJob); + public AjaxResult requestEnter(MydoJob param) { + MydoJob mydoJobParam = new MydoJob(); + mydoJobParam.setTrayCode(param.getTrayCode()); + List mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam); if(mydoJobs.isEmpty()){ return AjaxResult.error("此托盘没有作业"); } - return AjaxResult.success(mydoJobs.get(0)); + MydoJob mydoJob = mydoJobs.get(0); + if ("1".equals(mydoJob.getExecutionPhase())){ + mydoJob.setExecutionPhase("2"); + mydoJob.setEntranceId(param.getEntranceId()); + mydoJob.setStatus("3"); + mydoJobService.updateMydoJob(mydoJob); + } + return AjaxResult.success(mydoJob); } @Override @@ -93,7 +102,7 @@ public class ToWmsServiceImpl implements IToWmsService { //入库 mydoJobParam.setTaskNo(wmsJobRequest.getTaskNo()); mydoJobParam.setTrayCode(wmsJobRequest.getTrayCode()); - List inMydoJobs = mydoJobService.selectMydoJobList(mydoJobParam); + List inMydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam); if (inMydoJobs.isEmpty()){ return AjaxResult.error("没有该作业 taskNo: {}", wmsJobRequest.getTaskNo()); } @@ -113,7 +122,7 @@ public class ToWmsServiceImpl implements IToWmsService { //出库 mydoJobParam.setTaskNo(wmsJobRequest.getTaskNo()); mydoJobParam.setTrayCode(wmsJobRequest.getTrayCode()); - List outMydoJobs = mydoJobService.selectMydoJobList(mydoJobParam); + List outMydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam); if (outMydoJobs.isEmpty()){ return AjaxResult.error("没有该作业 taskNo: {}", wmsJobRequest.getTaskNo()); } 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 b25e626..5574c05 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 @@ -28,6 +28,7 @@ public interface IMydoJobService * @return 任务表集合 */ public List selectMydoJobList(MydoJob mydoJob); + public List selectMydoJobListApi(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 3501d86..44c0760 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 @@ -90,6 +90,17 @@ public class MydoJobServiceImpl implements IMydoJobService { return mydoJobMapper.selectMydoJobList(mydoJob); } + /** + * 对外接口查询任务表列表 + * + * @param mydoJob + * @return + */ + @Override + public List selectMydoJobListApi(MydoJob mydoJob) { + return mydoJobMapper.selectMydoJobList(mydoJob); + } + /** * 新增任务表 * @@ -148,27 +159,37 @@ public class MydoJobServiceImpl implements IMydoJobService { if (job == null) { return AjaxResult.warn("任务不存在"); } - if(!"1".equals(job.getStatus())) { + if (!"1".equals(job.getStatus())) { return AjaxResult.warn("任务已开始"); } - MydoJobDetail param = new MydoJobDetail(); - param.setJobId(jobId); - List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param); + if ("1".equals(job.getInOrOut()) || "4".equals(job.getInOrOut())) { + mydoJob.setStatus("5"); + updateMydoJob(mydoJob); + //插入历史表 + insertHistory(mydoJob.getJobId()); - for (MydoJobDetail mydoJobDetail : mydoJobDetails) { - String inOrOutDId = mydoJobDetail.getInOrOutDId(); - InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByStockinDetailId(inOrOutDId); - BigDecimal stockInNum = Convert.toBigDecimal(inStockinDetail.getScanNum()); - BigDecimal jobInNum = Convert.toBigDecimal(mydoJobDetail.getInQuantity()); - BigDecimal subtract = stockInNum.subtract(jobInNum); - inStockinDetail.setScanNum(Convert.toStr(subtract)); - inStockinDetailService.updateInStockinDetail(inStockinDetail); + return AjaxResult.success(); + } else { + MydoJobDetail param = new MydoJobDetail(); + param.setJobId(jobId); + List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param); + + for (MydoJobDetail mydoJobDetail : mydoJobDetails) { + String inOrOutDId = mydoJobDetail.getInOrOutDId(); + InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByStockinDetailId(inOrOutDId); + BigDecimal stockInNum = Convert.toBigDecimal(inStockinDetail.getScanNum()); + BigDecimal jobInNum = Convert.toBigDecimal(mydoJobDetail.getInQuantity()); + BigDecimal subtract = stockInNum.subtract(jobInNum); + inStockinDetail.setScanNum(Convert.toStr(subtract)); + inStockinDetailService.updateInStockinDetail(inStockinDetail); + } + mydoJob.setStatus("5"); + updateMydoJob(mydoJob); + //插入历史表 + insertHistory(mydoJob.getJobId()); + return AjaxResult.success(); } - mydoJob.setStatus("5"); - updateMydoJob(mydoJob); - //插入历史表 - insertHistory(mydoJob.getJobId()); - return AjaxResult.success(); + } /** @@ -194,21 +215,122 @@ public class MydoJobServiceImpl implements IMydoJobService { if (job == null) { return AjaxResult.warn("任务不存在"); } - //入库作业 - MydoJobDetail param = new MydoJobDetail(); - param.setJobId(jobId); - List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param); - BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId()); - if (CollUtil.isNotEmpty(mydoJobDetails)) { - List list = new ArrayList<>(); + if ("1".equals(job.getStatus()) || "2".equals(job.getStatus())) { + return AjaxResult.warn("任务未开始"); + } + if ("1".equals(job.getInOrOut()) || "4".equals(job.getInOrOut())) { + //空料箱入库 托盘垛入库 + //入库作业 + MydoJobDetail param = new MydoJobDetail(); + param.setJobId(jobId); + List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param); + BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId()); + if (CollUtil.isNotEmpty(mydoJobDetails)) { + List list = new ArrayList<>(); + for (MydoJobDetail mydoJobDetail : mydoJobDetails) { + //正常库存 + list.add(getStockByInStockinDetail(mydoJobDetail, job, "1")); + } + //修改货位状态 + basCargoSpace.setStatus("2"); + basCargoSpace.setTrayCode(job.getTrayCode()); + basCargoSpace.setCargoSpaceId(job.getCargoSpaceId()); + basCargoSpaceService.updateBasCargoSpace(basCargoSpace); + //插入库存信息 + basStockService.insertBasStockList(list); + //结束任务 + mydoJob.setStatus("4"); + updateMydoJob(mydoJob); + // 插入任务历史表 删除任务 + insertHistory(mydoJob.getJobId()); + return AjaxResult.success(); + } else { + return AjaxResult.warn("子任务不存在"); + } + } else if ("2".equals(job.getInOrOut()) || "3".equals(job.getInOrOut())) { + //ctu物料入库 高架库入库 + //入库作业 + MydoJobDetail param = new MydoJobDetail(); + param.setJobId(jobId); + List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param); + BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId()); + if (CollUtil.isNotEmpty(mydoJobDetails)) { + List list = new ArrayList<>(); + //查找是否存在异常信息 + OutExceptionRecord outExceptionRecordParam = new OutExceptionRecord(); + outExceptionRecordParam.setTrayCode(job.getTrayCode()); + outExceptionRecordParam.setWarehouseId(job.getWarehouseId()); + List outExceptionRecords = outExceptionRecordService.selectOutExceptionRecordList(outExceptionRecordParam); + for (MydoJobDetail mydoJobDetail : mydoJobDetails) { + + //修改单据实际数量 物料入库 高架库入库 + String inOrOutDId = mydoJobDetail.getInOrOutDId(); + InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByStockinDetailId(inOrOutDId); + inStockinDetail.setAssignNum(Convert.toStr(Convert.toBigDecimal(inStockinDetail.getAssignNum()).add(Convert.toBigDecimal(mydoJobDetail.getInQuantity())))); + inStockinDetailService.updateInStockinDetail(inStockinDetail); + + Optional first = outExceptionRecords.stream().filter(x -> x.getTrayCode().equals(job.getTrayCode()) && x.getProductId().equals(mydoJobDetail.getProductId())).findFirst(); + if (first.isPresent()) { + //生成异常库存 + BasStock stockByInStockinDetail = getStockByInStockinDetail(mydoJobDetail, job, "3"); + list.add(stockByInStockinDetail); + //修改异常记录中的库存id + OutExceptionRecord outExceptionRecord = first.get(); + outExceptionRecord.setStockId(stockByInStockinDetail.getStockId()); + outExceptionRecordService.updateOutExceptionRecord(outExceptionRecord); + } else { + //正常库存 + list.add(getStockByInStockinDetail(mydoJobDetail, job, "1")); + } + } + //删除异常库存记录 + List collect = outExceptionRecords.stream().map(OutExceptionRecord::getOutGuid).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(collect)) { + for (Long id : collect) { + outExceptionRecordService.deleteOutExceptionRecordByOutGuid(id); + } + + } + //修改货位状态 + basCargoSpace.setStatus("2"); + basCargoSpace.setTrayCode(job.getTrayCode()); + basCargoSpace.setCargoSpaceId(job.getCargoSpaceId()); + basCargoSpaceService.updateBasCargoSpace(basCargoSpace); + + //插入库存信息 + basStockService.insertBasStockList(list); + + //结束任务 + mydoJob.setStatus("4"); + updateMydoJob(mydoJob); + // 插入任务历史表 删除任务 + insertHistory(mydoJob.getJobId()); + return AjaxResult.success(); + } else { + return AjaxResult.warn("子任务不存在"); + } + } else if ("5".equals(job.getInOrOut()) || "6".equals(job.getInOrOut())) { + //盘点 ctu入库 高架库入库 + //入库作业 + MydoJobDetail param = new MydoJobDetail(); + param.setJobId(jobId); + List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param); + BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId()); + if (CollUtil.isNotEmpty(mydoJobDetails)) { + List list = new ArrayList<>(); + - if ("5".equals(job.getInOrOut()) || "6".equals(job.getInOrOut())) { //查询盘点信息中的异常信息 CheckDifferenceRecord checkDifferenceRecordParam = new CheckDifferenceRecord(); checkDifferenceRecordParam.setTrayCode(job.getTrayCode()); checkDifferenceRecordParam.setWarehouseId(job.getWarehouseId()); List checkDifferenceRecords = checkDifferenceRecordService.selectCheckDifferenceRecordList(checkDifferenceRecordParam); for (MydoJobDetail mydoJobDetail : mydoJobDetails) { + //修改单据实际数量 + String inOrOutDId = mydoJobDetail.getInOrOutDId(); + InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByStockinDetailId(inOrOutDId); + inStockinDetail.setAssignNum(Convert.toStr(Convert.toBigDecimal(inStockinDetail.getAssignNum()).add(Convert.toBigDecimal(mydoJobDetail.getInQuantity())))); + inStockinDetailService.updateInStockinDetail(inStockinDetail); //如果存在盘点异常信息 根据托盘条码和物料id 筛选异常信息 Optional first = checkDifferenceRecords.stream().filter(x -> x.getTrayCode().equals(job.getTrayCode()) && x.getProductId().equals(mydoJobDetail.getProductId())).findFirst(); if (first.isPresent()) { @@ -226,61 +348,32 @@ public class MydoJobServiceImpl implements IMydoJobService { } } + + //修改货位状态 + basCargoSpace.setStatus("2"); + basCargoSpace.setTrayCode(job.getTrayCode()); + basCargoSpace.setCargoSpaceId(job.getCargoSpaceId()); + basCargoSpaceService.updateBasCargoSpace(basCargoSpace); + + //插入库存信息 + basStockService.insertBasStockList(list); + + //结束任务 + mydoJob.setStatus("4"); + updateMydoJob(mydoJob); + // 插入任务历史表 删除任务 + insertHistory(mydoJob.getJobId()); + return AjaxResult.success(); } else { - //查找是否存在异常信息 - OutExceptionRecord outExceptionRecordParam = new OutExceptionRecord(); - outExceptionRecordParam.setTrayCode(job.getTrayCode()); - outExceptionRecordParam.setWarehouseId(job.getWarehouseId()); - List outExceptionRecords = outExceptionRecordService.selectOutExceptionRecordList(outExceptionRecordParam); - for (MydoJobDetail mydoJobDetail : mydoJobDetails) { - Optional first = outExceptionRecords.stream().filter(x -> x.getTrayCode().equals(job.getTrayCode()) && x.getProductId().equals(mydoJobDetail.getProductId())).findFirst(); - if (first.isPresent()){ - //生成异常库存 - BasStock stockByInStockinDetail = getStockByInStockinDetail(mydoJobDetail, job, "3"); - list.add(stockByInStockinDetail); - //修改异常记录中的库存id - OutExceptionRecord outExceptionRecord = first.get(); - outExceptionRecord.setStockId(stockByInStockinDetail.getStockId()); - outExceptionRecordService.updateOutExceptionRecord(outExceptionRecord); - }else { - //正常库存 - list.add(getStockByInStockinDetail(mydoJobDetail, job, "1")); - } - } - //删除异常库存记录 - List collect = outExceptionRecords.stream().map(OutExceptionRecord::getOutGuid).collect(Collectors.toList()); - if (CollUtil.isNotEmpty( collect)){ - for (Long id : collect) { - outExceptionRecordService.deleteOutExceptionRecordByOutGuid(id); - } - - } - + return AjaxResult.warn("子任务不存在"); } - - - //修改货位状态 - basCargoSpace.setStatus("2"); - basCargoSpace.setTrayCode(job.getTrayCode()); - basCargoSpace.setCargoSpaceId(job.getCargoSpaceId()); - basCargoSpaceService.updateBasCargoSpace(basCargoSpace); - - //插入库存信息 - basStockService.insertBasStockList(list); - - //结束任务 - mydoJob.setStatus("4"); - updateMydoJob(mydoJob); - // 插入任务历史表 删除任务 - insertHistory(mydoJob.getJobId()); - return AjaxResult.success(); } else { - return AjaxResult.warn("子任务不存在"); + return AjaxResult.warn("暂不支持的任务类型"); } } - private BasStock getStockByInStockinDetail(MydoJobDetail mydoJobDetail, MydoJob mydoJob,String productStatus) { + private BasStock getStockByInStockinDetail(MydoJobDetail mydoJobDetail, MydoJob mydoJob, String productStatus) { BasStock stock = new BasStock(); stock.setStockId(basJobIdService.getJobId("KC")); stock.setCargoSpaceId(mydoJob.getCargoSpaceId()); @@ -360,16 +453,16 @@ public class MydoJobServiceImpl implements IMydoJobService { HashMap map = new HashMap<>(); String msg = ""; String Stringbuilder = ""; - for(String stockId:stockIds){ - map.put("stockId",stockId); + for (String stockId : stockIds) { + map.put("stockId", stockId); mydoJobMapper.pointOut(map); String result = map.get("result").toString(); - if("10".equals(result)){ - msg="操作成功!"; - }else{ - msg=map.get("v_resultmsg").toString(); + if ("10".equals(result)) { + msg = "操作成功!"; + } else { + msg = map.get("v_resultmsg").toString(); } - Stringbuilder+=stockId+msg+"
"; + Stringbuilder += stockId + msg + "
"; } return AjaxResult.success(Stringbuilder.toString()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/mapper/OutStockoutMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/mapper/OutStockoutMapper.java index f7a988e..b1b22f4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/mapper/OutStockoutMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/mapper/OutStockoutMapper.java @@ -6,15 +6,15 @@ import com.ruoyi.out.outStockout.domain.OutStockout; /** * 出库主单Mapper接口 - * + * * @author ruoyi * @date 2025-05-20 */ -public interface OutStockoutMapper +public interface OutStockoutMapper { /** * 查询出库主单 - * + * * @param stockoutGuid 出库主单主键 * @return 出库主单 */ @@ -22,7 +22,7 @@ public interface OutStockoutMapper /** * 查询出库主单列表 - * + * * @param outStockout 出库主单 * @return 出库主单集合 */ @@ -30,7 +30,7 @@ public interface OutStockoutMapper /** * 新增出库主单 - * + * * @param outStockout 出库主单 * @return 结果 */ @@ -38,7 +38,7 @@ public interface OutStockoutMapper /** * 修改出库主单 - * + * * @param outStockout 出库主单 * @return 结果 */ @@ -46,7 +46,7 @@ public interface OutStockoutMapper /** * 删除出库主单 - * + * * @param stockoutGuid 出库主单主键 * @return 结果 */ @@ -54,7 +54,7 @@ public interface OutStockoutMapper /** * 批量删除出库主单 - * + * * @param stockoutGuids 需要删除的数据主键集合 * @return 结果 */ @@ -63,4 +63,6 @@ public interface OutStockoutMapper public void updateOutStockoutStatus(HashMap map); void autoAllot(HashMap map); + + OutStockout selectOutStockoutByStockoutId(String stockoutId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java index d82bc99..cf86194 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java @@ -158,6 +158,15 @@ public class OutStockoutServiceImpl implements IOutStockoutService @Override public AjaxResult autoAllot(String stockoutId) { + + OutStockout outStockout = outStockoutMapper.selectOutStockoutByStockoutId(stockoutId); + if (outStockout == null){ + return AjaxResult.warn("未找到出库单"); + } + if ("1".equals(outStockout.getStatus())){ + return AjaxResult.warn("出库单状态未审核"); + } + HashMap map = new HashMap<>(); StringBuilder stringBuilder = new StringBuilder(); OutStockoutDetail outStockoutDetail = new OutStockoutDetail(); 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 8732174..313b4d9 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 @@ -216,10 +216,10 @@ public class PdaServiceImp implements PdaService { @Transactional(rollbackFor = Exception.class) public AjaxResult outMakeSure(TrayCodeMakeSure trayCodeMakeSure) { - List mydoJobDetailList = trayCodeMakeSure.getMydoJobDetailList(); + /*List mydoJobDetailList = trayCodeMakeSure.getMydoJobDetailList(); if(CollUtil.isEmpty(mydoJobDetailList)){ return AjaxResult.warn("拣选的物料不能为空"); - } + }*/ //判断任务是否存在 MydoJob mydoJobParam = new MydoJob(); mydoJobParam.setTrayCode(trayCodeMakeSure.getTrayCode()); @@ -247,10 +247,10 @@ public class PdaServiceImp implements PdaService { switch (billType) { case "1": //拣选单据 - return handleOutType1(trayCodeMakeSure,mydoJobDetailList,mydoJobList.get(0)); + return handleOutType1(trayCodeMakeSure, mydoJobDetails, mydoJobList.get(0)); case "2": //退货单据 不绑定容器 - return handleOutType2(trayCodeMakeSure,mydoJobDetailList,mydoJobList.get(0)); + return handleOutType2(trayCodeMakeSure, mydoJobDetails, mydoJobList.get(0)); default: return AjaxResult.warn("单据类型错误"); } @@ -258,20 +258,22 @@ public class PdaServiceImp implements PdaService { /** * 处理退货出库 + * * @param trayCodeMakeSure * @param mydoJobDetailList * @param mydoJob * @return */ - private AjaxResult handleOutType2(TrayCodeMakeSure trayCodeMakeSure,List mydoJobDetailList,MydoJob mydoJob) { + private AjaxResult handleOutType2(TrayCodeMakeSure trayCodeMakeSure, List mydoJobDetailList, MydoJob mydoJob) { //修改拣选数量 for (MydoJobDetail mydoJobDetail : mydoJobDetailList) { - MydoJobDetail mydoJobDetailOld = mydoJobDetailService.selectMydoJobDetailByJobDetailId(mydoJobDetail.getJobDetailId()); - BigDecimal oldPickQuantity = Convert.toBigDecimal(mydoJobDetailOld.getPickQuantity()); - BigDecimal newPickQuantity = Convert.toBigDecimal(mydoJobDetail.getPickQuantity()); - mydoJobDetailOld.setPickQuantity(oldPickQuantity.add(newPickQuantity).toString()); - mydoJobDetailService.updateMydoJobDetail(mydoJobDetailOld); + //修改拣选数量 + //MydoJobDetail mydoJobDetailOld = mydoJobDetailService.selectMydoJobDetailByJobDetailId(mydoJobDetail.getJobDetailId()); + /*BigDecimal oldPickQuantity = Convert.toBigDecimal(mydoJobDetailOld.getPickQuantity()); + BigDecimal newPickQuantity = Convert.toBigDecimal(mydoJobDetail.getOutQuantity());*/ + mydoJobDetail.setPickQuantity(mydoJobDetail.getOutQuantity()); + mydoJobDetailService.updateMydoJobDetail(mydoJobDetail); //修改电子标签 TagTask param = new TagTask(); param.setJobDetailId(mydoJobDetail.getJobDetailId()); @@ -279,13 +281,13 @@ public class PdaServiceImp implements PdaService { if (CollUtil.isNotEmpty(tagTasks)) { TagTask tagTask = tagTasks.get(0); BigDecimal num = Convert.toBigDecimal(tagTask.getNum()); - if (num.compareTo(newPickQuantity) == 0){ - tagTask.setStatus("2"); - tagTaskService.updateTagTask(tagTask); - }else { + /*if (num.compareTo(newPickQuantity) == 0){*/ + tagTask.setStatus("2"); + tagTaskService.updateTagTask(tagTask); + /*}else { tagTask.setNum(num.subtract(newPickQuantity).toString()); tagTaskService.updateTagTask(tagTask); - } + }*/ } } @@ -312,44 +314,45 @@ public class PdaServiceImp implements PdaService { /** * 处理正常出库 + * * @param trayCodeMakeSure * @param mydoJobDetailList * @param mydoJob * @return */ - private AjaxResult handleOutType1(TrayCodeMakeSure trayCodeMakeSure,List mydoJobDetailList,MydoJob mydoJob) { + private AjaxResult handleOutType1(TrayCodeMakeSure trayCodeMakeSure, List mydoJobDetailList, MydoJob mydoJob) { for (MydoJobDetail mydoJobDetail : mydoJobDetailList) { //修改拣选数量 - MydoJobDetail mydoJobDetailOld = mydoJobDetailService.selectMydoJobDetailByJobDetailId(mydoJobDetail.getJobDetailId()); - BigDecimal oldPickQuantity = Convert.toBigDecimal(mydoJobDetailOld.getPickQuantity()); - BigDecimal newPickQuantity = Convert.toBigDecimal(mydoJobDetail.getPickQuantity()); - mydoJobDetailOld.setPickQuantity(oldPickQuantity.add(newPickQuantity).toString()); - mydoJobDetailService.updateMydoJobDetail(mydoJobDetailOld); + //MydoJobDetail mydoJobDetailOld = mydoJobDetailService.selectMydoJobDetailByJobDetailId(mydoJobDetail.getJobDetailId()); + /*BigDecimal oldPickQuantity = Convert.toBigDecimal(mydoJobDetailOld.getPickQuantity()); + BigDecimal newPickQuantity = Convert.toBigDecimal(mydoJobDetail.getOutQuantity());*/ + mydoJobDetail.setPickQuantity(mydoJobDetail.getOutQuantity()); + mydoJobDetailService.updateMydoJobDetail(mydoJobDetail); OutPickSubmit outPickSubmitParam = new OutPickSubmit(); //outPickSubmitParam.setJobId(mydoJob.getJobId()); //outPickSubmitParam.setJobDetailId(mydoJobDetail.getJobDetailId()); outPickSubmitParam.setTrayCode(trayCodeMakeSure.getTrayCode()); List outPickSubmits = outPickSubmitService.selectOutPickSubmitList(outPickSubmitParam); - if (outPickSubmits.isEmpty()){ + if (outPickSubmits.isEmpty()) { //存入中间表 OutPickSubmit outPickSubmit = new OutPickSubmit(); outPickSubmit.setJobId(mydoJob.getJobId()); outPickSubmit.setJobDetailId(mydoJobDetail.getJobDetailId()); outPickSubmit.setProductId(mydoJobDetail.getProductId()); - outPickSubmit.setQuantit(mydoJobDetail.getPickQuantity()); + outPickSubmit.setQuantit(mydoJobDetail.getOutQuantity()); outPickSubmit.setTrayCode(trayCodeMakeSure.getTrayCode()); outPickSubmitService.insertOutPickSubmit(outPickSubmit); - }else { + } else { OutPickSubmit oldOutPickSubmit = outPickSubmits.get(0); oldOutPickSubmit.setQuantit(Convert.toBigDecimal(oldOutPickSubmit.getQuantit()).add(Convert.toBigDecimal(mydoJobDetail.getPickQuantity())).toString()); outPickSubmitService.updateOutPickSubmit(oldOutPickSubmit); } //修改单据实际数量 - String inOrOutDId = mydoJobDetailOld.getInOrOutDId(); + String inOrOutDId = mydoJobDetail.getInOrOutDId(); OutStockoutDetail outStockoutDetail = outStockoutDetailService.selectOutStockoutDetailByStockoutDetailId(inOrOutDId); outStockoutDetail.setAssignNum(outStockoutDetail.getAssignNum().add(Convert.toBigDecimal(mydoJobDetail.getPickQuantity()))); outStockoutDetailService.updateOutStockoutDetail(outStockoutDetail); @@ -386,14 +389,13 @@ public class PdaServiceImp implements PdaService { } - @Override @Transactional(rollbackFor = Exception.class) public AjaxResult checkMakeSure(TrayCodeMakeSure trayCodeMakeSure) { List mydoJobDetailList = trayCodeMakeSure.getMydoJobDetailList(); - if(CollUtil.isNotEmpty(mydoJobDetailList)){ + if (CollUtil.isNotEmpty(mydoJobDetailList)) { boolean flag = mydoJobDetailList.stream().anyMatch(x -> StrUtil.isEmpty(x.getStockId()) && "0".equals(x.getInQuantity())); - if (flag){ + if (flag) { return AjaxResult.warn("新增库存,存在为0的数量"); } for (MydoJobDetail mydoJobDetail : mydoJobDetailList) { @@ -420,9 +422,9 @@ public class PdaServiceImp implements PdaService { map.put("v_tray_code", trayCodeMakeSure.getTrayCode()); pdaMapper.checkMakeSure(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()); } } @@ -470,7 +472,7 @@ public class PdaServiceImp implements PdaService { //自动分配 return outStockoutService.autoAllot(stockOutId); } else { - throw new RuntimeException(map.get("v_resultmsg").toString()); + throw new RuntimeException(map.get("v_resultmsg").toString()); } } @@ -512,17 +514,17 @@ public class PdaServiceImp implements PdaService { //判断details中的数量是否都为0 if (CollUtil.isNotEmpty(basContainer.getDetails())) { for (BasContainerDetails detail : basContainer.getDetails()) { - //如果存在数量不为0的 + //如果存在数量不为0的 if (detail.getQuantity() != 0) { - if(StrUtil.isEmpty(basContainer.getSpare1())){ + if (StrUtil.isEmpty(basContainer.getSpare1())) { return AjaxResult.warn("请选择退料仓库"); } //去ctu库站点 BasProductPort basProductPort = new BasProductPort(); basProductPort.setWarehouseId(basContainer.getSpare1()); List basProductPorts = basProductPortMapper.selectBasProductPortList(basProductPort); - endPoint=basProductPorts.get(0).getId(); + endPoint = basProductPorts.get(0).getId(); } @@ -555,13 +557,26 @@ public class PdaServiceImp implements PdaService { if (space.getStatus() != null) { String statusName; switch (Integer.parseInt(space.getStatus())) { - case 1: statusName = "空货位"; break; - case 2: statusName = "满货位"; break; - case 3: statusName = "入库分配"; break; - case 4: statusName = "出库分配"; break; - case 5: statusName = "入库需盘点"; break; - case 6: statusName = "出库需盘点"; break; - default: continue; + case 1: + statusName = "空货位"; + break; + case 2: + statusName = "满货位"; + break; + case 3: + statusName = "入库分配"; + break; + case 4: + statusName = "出库分配"; + break; + case 5: + statusName = "入库需盘点"; + break; + case 6: + statusName = "出库需盘点"; + break; + default: + continue; } statusCount.put(statusName, statusCount.getOrDefault(statusName, 0) + 1); } @@ -594,17 +609,17 @@ public class PdaServiceImp implements PdaService { mydoJob1.setInOut("2"); List mydoJobs1 = mydoJobFinishMapper.selectMydoJobFinishListByMydoJob(mydoJob1); - map.put("in",mydoJobs.size()); - map.put("out",mydoJobs1.size()); + map.put("in", mydoJobs.size()); + map.put("out", mydoJobs1.size()); return map; } @Override public AjaxResult bindContainer(TrayCodeMakeSure trayCodeMakeSure) { - if (CollUtil.isEmpty(trayCodeMakeSure.getMydoJobDetailList())){ + if (CollUtil.isEmpty(trayCodeMakeSure.getMydoJobDetailList())) { return AjaxResult.warn("请选择提供绑定数量"); } - if (StrUtil.isEmpty(trayCodeMakeSure.getContainerCode())){ + if (StrUtil.isEmpty(trayCodeMakeSure.getContainerCode())) { return AjaxResult.warn("请选择绑定容器"); } for (MydoJobDetail mydoJobDetail : trayCodeMakeSure.getMydoJobDetailList()) { @@ -613,11 +628,11 @@ public class PdaServiceImp implements PdaService { basContainerDetailsParam.setContainerId(trayCodeMakeSure.getContainerCode()); basContainerDetailsParam.setProductId(mydoJobDetail.getProductId()); List basContainerDetails = basContainerDetailsService.selectBasContainerDetailsList(basContainerDetailsParam); - if (CollUtil.isNotEmpty(basContainerDetails)){ + if (CollUtil.isNotEmpty(basContainerDetails)) { BasContainerDetails oldBasContainerDetails = basContainerDetails.get(0); - oldBasContainerDetails.setQuantity(oldBasContainerDetails.getQuantity()+Convert.toLong(mydoJobDetail.getPickBindQuantity())); + oldBasContainerDetails.setQuantity(oldBasContainerDetails.getQuantity() + Convert.toLong(mydoJobDetail.getPickBindQuantity())); basContainerDetailsService.updateBasContainerDetails(oldBasContainerDetails); - }else { + } else { BasContainerDetails newBasContainerDetails = new BasContainerDetails(); newBasContainerDetails.setContainerId(trayCodeMakeSure.getContainerCode()); newBasContainerDetails.setProductId(mydoJobDetail.getProductId()); @@ -632,12 +647,12 @@ public class PdaServiceImp implements PdaService { List outPickSubmits = outPickSubmitService.selectOutPickSubmitList(outPickSubmitParam); for (OutPickSubmit outPickSubmit : outPickSubmits) { BigDecimal subtract = Convert.toBigDecimal(outPickSubmit.getQuantit()).subtract(Convert.toBigDecimal(mydoJobDetail.getPickBindQuantity())); - if (subtract.compareTo(BigDecimal.ZERO) == 0){ + if (subtract.compareTo(BigDecimal.ZERO) == 0) { //删除缓存信息 outPickSubmitService.deleteOutPickSubmitById(outPickSubmit.getId()); - }else if (subtract.compareTo(BigDecimal.ZERO) < 0){ + } else if (subtract.compareTo(BigDecimal.ZERO) < 0) { return AjaxResult.warn("绑定数量不能大于实际数量"); - }else { + } else { outPickSubmit.setQuantit(subtract.toString()); outPickSubmitService.updateOutPickSubmit(outPickSubmit); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/receive/stockin/service/impl/ReceiveStockinServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/receive/stockin/service/impl/ReceiveStockinServiceImpl.java index 8a5b120..c4f08cd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/receive/stockin/service/impl/ReceiveStockinServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/receive/stockin/service/impl/ReceiveStockinServiceImpl.java @@ -284,6 +284,7 @@ public class ReceiveStockinServiceImpl implements IReceiveStockinService // 设置状态等默认值 inStockin.setStatus("1"); inStockin.setSpare1(receiveStockin.getStockinId()); + inStockin.setDepartmentNo(Convert.toStr(SecurityUtils.getDeptId())); return inStockin; } diff --git a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml index 738b3a1..5482f3b 100644 --- a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml @@ -92,6 +92,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${params.warehouseDataScope} + order by mj.create_time desc + diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index 258a340..e698a66 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -115,7 +115,7 @@ public class SecurityConfig // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers("/swagger-ui.html","/changeLanguage", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**","/pda/**").permitAll() - .antMatchers("/api/**").permitAll() + .antMatchers("/api/**","/api2wms/**","/api2wcs/**").permitAll() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated(); }) diff --git a/ruoyi-ui/.env.staging b/ruoyi-ui/.env.staging index 209b64e..dbe8edd 100644 --- a/ruoyi-ui/.env.staging +++ b/ruoyi-ui/.env.staging @@ -1,5 +1,5 @@ # 页面标题 -VUE_APP_TITLE = 若依管理系统 +VUE_APP_TITLE = "ForTucky WMS system" BABEL_ENV = production diff --git a/ruoyi-ui/src/lang/en.js b/ruoyi-ui/src/lang/en.js index bf70e06..5f2d796 100644 --- a/ruoyi-ui/src/lang/en.js +++ b/ruoyi-ui/src/lang/en.js @@ -225,6 +225,7 @@ export default { englishDesc: '英文描述', cartonNo: '箱号', packingMethod: '包装方式', + createTime:"创建时间" }, // ***************出库单据管理************** outStockoutManage: { diff --git a/ruoyi-ui/src/lang/zh.js b/ruoyi-ui/src/lang/zh.js index 4a81efd..74ee59a 100644 --- a/ruoyi-ui/src/lang/zh.js +++ b/ruoyi-ui/src/lang/zh.js @@ -198,6 +198,7 @@ export default { englishDesc: '英文描述', cartonNo: '箱号', packingMethod: '包装方式', + createTime:"创建时间" }, // ***************新建出库单据************** addOutStockout: { diff --git a/ruoyi-ui/src/views/in/job/index.vue b/ruoyi-ui/src/views/in/job/index.vue index 9369b5f..18f3997 100644 --- a/ruoyi-ui/src/views/in/job/index.vue +++ b/ruoyi-ui/src/views/in/job/index.vue @@ -163,8 +163,8 @@ // 任务号 - // 供应商 - // 部门 + + // 托盘码 // 货位 // 优先级 @@ -175,6 +175,11 @@ // 入口ID // 仓库ID + // 创建时间 + + // 开始时间 - + + --> + @@ -535,7 +535,7 @@ export default { this.getList() }) }else { - this.$modal.msgError("操作失败") + this.$modal.msgError("单据已执行") } }, @@ -556,7 +556,7 @@ export default { this.getList() }) }else { - this.$modal.msgError("操作失败") + this.$modal.msgError("单据已执行,请勿重复审核") } }, /**确认单据按钮操作 */ @@ -572,7 +572,7 @@ export default { this.getList() }) }else { - this.$modal.msgError("操作失败") + this.$modal.msgError("单据未执行完成") } }, /** 打印条码按钮操作 */ diff --git a/ruoyi-ui/src/views/job/outJobManagement.vue b/ruoyi-ui/src/views/job/outJobManagement.vue index 4fd45a7..673a634 100644 --- a/ruoyi-ui/src/views/job/outJobManagement.vue +++ b/ruoyi-ui/src/views/job/outJobManagement.vue @@ -112,20 +112,20 @@ - + - + - + @@ -175,7 +175,7 @@ import {listWarehouse} from "@/api/bas/warehouse"; export default { name: "MydoJob", - dicts: ['execution_phase_type', 'in_job_type', 'on_line_type', 'mydo_job_status'], + dicts: ['execution_phase_type', 'in_job_type', 'on_line_type', 'mydo_job_status','out_job_type'], data() { return { // 遮罩层 diff --git a/ruoyi-ui/src/views/out/outStockoutManage.vue b/ruoyi-ui/src/views/out/outStockoutManage.vue index eb7d1c1..99d59ae 100644 --- a/ruoyi-ui/src/views/out/outStockoutManage.vue +++ b/ruoyi-ui/src/views/out/outStockoutManage.vue @@ -416,6 +416,11 @@ export default { } const stockoutIds = this.selectedRows.map(row => row.stockoutId) console.log("自动分配:", stockoutIds) + let outstock = this.selectedRows[0] + if (outstock.status !== "2") { + this.$modal.msgError("请选择审核状态为审核通过单据") + return + } let data = { stockoutId: stockoutIds[0] } @@ -435,6 +440,11 @@ export default { return } const stockoutIds = this.selectedRows.map(row => row.stockoutId) + let outstock = this.selectedRows[0] + if (outstock.status !== "1") { + this.$modal.msgError("单据已审核") + return + } // TODO: 调用手动分配接口 console.log("手动分配:", stockoutIds) }, diff --git a/ruoyi-ui/src/views/system/role/index.vue b/ruoyi-ui/src/views/system/role/index.vue index dcb6165..cfef384 100644 --- a/ruoyi-ui/src/views/system/role/index.vue +++ b/ruoyi-ui/src/views/system/role/index.vue @@ -414,6 +414,10 @@ export default { // 角色顺序不能为空 { required: true, message: this.$t('systemManagement_RoleManagement.checkRoleSortIsNull'), trigger: "blur" } ] + }, + quaryWarehouse:{ + pageNum:1, + pageSize:99 } } }, @@ -424,7 +428,7 @@ export default { methods: { /** 获取仓库列表 */ getWarehouseList() { - listWarehouse().then(response => { + listWarehouse(this.quaryWarehouse).then(response => { this.warehouseOptions = response.rows; }); }, diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js index f483b3c..40e140d 100644 --- a/ruoyi-ui/vue.config.js +++ b/ruoyi-ui/vue.config.js @@ -9,7 +9,7 @@ const CompressionPlugin = require('compression-webpack-plugin') const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题 -const baseUrl = 'http://localhost:8081' // 后端接口 +const baseUrl = 'http://localhost:8080' // 后端接口 const port = process.env.port || process.env.npm_config_port || 80 // 端口