diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/RequestEnter.java b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/RequestEnter.java index 38bd56e..66c04ce 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/RequestEnter.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/RequestEnter.java @@ -10,12 +10,11 @@ import lombok.NoArgsConstructor; public class RequestEnter { //物料码 private String trayCode; - //物料大小 1-5 - private String size; + //入库位置 private String entranceId; - //入库楼层 1-一楼 2-二楼 - private String floor; - private String type; + private String warehouseId; + + private String roadwayId; } 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 cc45f78..be09c84 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 @@ -89,212 +89,7 @@ public class ToWmsServiceImpl implements IToWmsService { @Override @Transactional(rollbackFor = Exception.class) public AjaxResult requestEnterByTrayCode(RequestEnter requestEnter) { - - HashMap result = new HashMap<>(); - - - if (StrUtil.isEmpty(requestEnter.getTrayCode())) { - return AjaxResult.error("托盘条码不能为空"); - } - log.info("扫码内容{}", requestEnter.getTrayCode()); - - - //解析扫码内容 - String trayCode = requestEnter.getTrayCode(); - String[] split = trayCode.split(" "); - String model = split[0].substring(6); - String color = split[1].substring(6); - String serial = split[2].substring(7); - String v = split[3].substring(2); - String hz = split[4].substring(3); - String ph = split[5].substring(3); - String nw = split[6].substring(5); - String gw = split[7].substring(5); - String productId = split[8].substring(10); - String bm = split[9].substring(2, split[9].length() - 1); - String[] decode = ProcodeUtils.decode(bm); - String erpBill = decode[0]; - String xh = decode[1]; - String jx = decode[2]; - String fx = decode[3]; - String xlh = decode[4]; - log.info("二维码详情 productId:{} model:{},color:{},serial:{},v:{},hz:{},ph:{},nw:{},gw:{},erpBill:{},xh:{},jx:{},fx:{},xlh:{}", productId, model, color, serial, v, hz, ph, nw, gw, erpBill, xh, jx, fx, xlh); - for (String s : split) { - if (StrUtil.isEmpty(s)) { - return new AjaxResult(1, "二维码内容错误"); - } - } - - //查询物料信息 - BasProduct basProductParam = new BasProduct(); - basProductParam.setProductId(productId); - List basProducts = basProductService.selectBasProductList(basProductParam); - if (CollUtil.isEmpty(basProducts)) { - return new AjaxResult(2, "物料不存在"); - } - - BasProduct basProduct = basProducts.get(0); - - //根据包装方式 主要包装方式 描述 长 宽 高 包装材积 - int size = getSize(basProduct); - - //超大托盘不处理 直接返回 - if (size == 5) { - return new AjaxResult(3, "超大托盘"); - } - //托盘大小与电气返回不匹配 - - if (StrUtil.isNotBlank(requestEnter.getSize()) && !"1".equals(requestEnter.getType()) && size != Integer.parseInt(requestEnter.getSize())) { - return new AjaxResult(4, "托盘大小不匹配"); - } - - - String inOrOutType = null; - String inStockId = null; - String inStockDetailId = null; - if ("1".equals(requestEnter.getFloor())) { - //一楼入库 其它入库 和 退料入库 存在单据,需要修改单据数量 - InStockin inStockinParam = new InStockin(); - inStockinParam.setErpBill(erpBill); - List inStockins = inStockinService.selectInStockinListApi(inStockinParam); - if (CollUtil.isEmpty(inStockins)) { - return AjaxResult.error("单据不存在"); - } - InStockin inStockin = inStockins.get(0); - if ("1".equals(inStockin.getStatus()) || "2".equals(inStockin.getStatus())) { - inStockin.setStatus("3"); - inStockinService.updateInStockin(inStockin); - } - inOrOutType = inStockin.getInType(); - inStockId = inStockin.getStockinId(); - InStockinDetail inStockinDetailParam = new InStockinDetail(); - inStockinDetailParam.setStockinId(inStockin.getStockinGuid()); - inStockinDetailParam.setProductId(basProduct.getProductId()); - List inStockinDetails = inStockinDetailService.selectInStockinDetailList(inStockinDetailParam); - if (CollUtil.isEmpty(inStockinDetails)) { - return AjaxResult.error("单据明细不存在"); - } - InStockinDetail inStockinDetail = inStockinDetails.get(0); - inStockDetailId = inStockinDetail.getStockinDetailId(); - inStockinDetail.setScanNum(Convert.toStr(Convert.toBigDecimal(inStockinDetail.getScanNum()).add(Convert.toBigDecimal(1)))); - inStockinDetailService.updateInStockinDetail(inStockinDetail); - - } else { - inOrOutType = "1"; - } - - - //生成作业 - MydoJob mydoJob = new MydoJob(); - mydoJob.setStatus("1"); - mydoJob.setInOrOut(inOrOutType); - mydoJob.setExecutionPhase("1"); - mydoJob.setTrayCode(basJobIdService.getJobId("TP")); - mydoJob.setWarehouseId("01"); - mydoJob.setRoadwayId(getRoadway(size)); - mydoJob.setLineId(erpBill); - BasRoadway basRoadway = basRoadwayService.selectBasRoadwayById(mydoJob.getRoadwayId()); - if ("1".equals(requestEnter.getFloor())) { - if ("Y".equals(basRoadway.getInLocked())) { - return new AjaxResult(6, "巷道已锁"); - } - } else { - if ("Y".equals(basRoadway.getInLocked2())) { - return new AjaxResult(6, "巷道已锁"); - } - } - - //根据巷道查找货位 - BasCargoSpace basCargoSpaceParam = new BasCargoSpace(); - basCargoSpaceParam.setWarehouseId(mydoJob.getWarehouseId()); - basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId()); - BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam); - if (ObjUtil.isNull(basCargoSpace)) { - return new AjaxResult(5, "没有货位"); - } - mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId()); - mydoJob.setEntranceId(requestEnter.getEntranceId()); - mydoJobService.insertMydoJob(mydoJob); - - //生成子作业 - MydoJobDetail mydoJobDetail = new MydoJobDetail(); - mydoJobDetail.setJobDetailId(mydoJob.getJobId() + "-1"); - mydoJobDetail.setJobId(mydoJob.getJobId()); - mydoJobDetail.setCreateTime(new Date()); - mydoJobDetail.setProductGuid(basProduct.getProductGuid()); - mydoJobDetail.setProductId(basProduct.getProductId()); - mydoJobDetail.setInQuantity("1"); - mydoJobDetail.setSpare1(xh); - mydoJobDetail.setSpare2(nw); - mydoJobDetail.setSpare3(color); - mydoJobDetail.setSpare4(xlh); - mydoJobDetail.setSpare5(v); - mydoJobDetail.setSpare6(hz); - mydoJobDetail.setSpare7(ph); - mydoJobDetail.setSpare8(gw); - mydoJobDetail.setSpare9(fx); - mydoJobDetail.setUnit(jx); - mydoJobDetail.setSpec(basProduct.getSpec()); - mydoJobDetail.setInOrOutId(inStockId); - mydoJobDetail.setInOrOutDId(inStockDetailId); - mydoJobDetail.setStockinId(inStockId); - mydoJobDetailService.insertMydoJobDetail(mydoJobDetail); - - //修改货位状态 - basCargoSpace.setStatus("3"); - basCargoSpaceService.updateBasCargoSpace(basCargoSpace); - //type=1是手持机调用 - if (!"1".equals(requestEnter.getType())) { - mydoJob.setStatus("3"); - mydoJobService.updateMydoJob(mydoJob); - } - - if ("1".equals(mydoJob.getInOrOut())) { - //生成调拨单 - Map saveTransferBill = toErpService.saveTransferBill(); - if (!"200".equals(saveTransferBill.get("code"))) { - return AjaxResult.error("生成调拨单失败"); - } - log.info("生成调拨单{}", saveTransferBill); - //存入调拨单数据 已生成 - TransferBillCallback transferBillCallback = new TransferBillCallback(); - transferBillCallback.setJobId(mydoJob.getJobId()); - transferBillCallback.setErpBill(erpBill); - transferBillCallback.setType("1"); - transferBillCallback.setStatus("1"); - transferBillCallbackService.insertTransferBillCallback(transferBillCallback); - } - //修改作业状态为正执行 - result.put("jobId", mydoJob.getJobId()); - result.put("taskNo", mydoJob.getTaskNo()); - result.put("cargoSpaceId", mydoJob.getCargoSpaceId()); - result.put("roadwayId", mydoJob.getRoadwayId()); - result.put("entranceId", mydoJob.getEntranceId()); - result.put("inOrOut", mydoJob.getInOrOut()); - - return AjaxResult.success(result); - } - - private String getRoadway(int size) { - return switch (size) { - case 1 -> "1"; - case 2, 3, 4 -> "2"; - default -> null; - }; - } - - /** - * todo 根据包装方式 主要包装方式 描述 长 宽 高 包装材积获取大小 - */ - private int getSize(BasProduct basProduct) { - String remark = basProduct.getRemark(); - String packageType = basProduct.getSpare34(); - String mainPackageType = basProduct.getSpare35(); - String length = basProduct.getSpare36(); - String width = basProduct.getSpare37(); - String height = basProduct.getSpare38(); - String volume = basProduct.getSpare39(); - return 1; + return null; } @Override @@ -304,36 +99,13 @@ public class ToWmsServiceImpl implements IToWmsService { param.setEntranceId(requestEnter.getEntranceId()); MydoJob mydoJob = mydoJobService.selectMydoJobByEntranceId(param); - if (mydoJob != null && StrUtil.isNotEmpty(mydoJob.getTrayCode())) { - List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailListByJobId(mydoJob.getJobId()); - if (CollUtil.isEmpty(mydoJobDetails)) { - return AjaxResult.error("没有任务"); - } - MydoJobDetail mydoJobDetail = mydoJobDetails.get(0); - String productId = mydoJobDetail.getProductId(); - BasProduct basProduct = basProductService.selectBasProductByProductId(productId); - - int size = getSize(basProduct); - //超大托盘不处理 直接返回 - if (size == 5) { - return new AjaxResult(3, "超大托盘"); - } - //托盘大小与电气返回不匹配 - if (size != Integer.parseInt(requestEnter.getSize())) { - return new AjaxResult(4, "托盘大小不匹配"); - } - - HashMap result = new HashMap<>(); - result.put("jobId", mydoJob.getJobId()); - result.put("taskNo", mydoJob.getTaskNo()); - result.put("cargoSpaceId", mydoJob.getCargoSpaceId()); - result.put("roadwayId", mydoJob.getRoadwayId()); - result.put("entranceId", mydoJob.getEntranceId()); - return AjaxResult.success(result); - - } else { - return AjaxResult.error("没有任务"); - } + HashMap result = new HashMap<>(); + result.put("jobId", mydoJob.getJobId()); + result.put("taskNo", mydoJob.getTaskNo()); + result.put("cargoSpaceId", mydoJob.getCargoSpaceId()); + result.put("roadwayId", mydoJob.getRoadwayId()); + result.put("entranceId", mydoJob.getEntranceId()); + return AjaxResult.success(result); } @Override @@ -391,15 +163,14 @@ public class ToWmsServiceImpl implements IToWmsService { basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId()); BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam); if (basCargoSpace == null) { - log.error("没有空货位"); - return AjaxResult.error(MessageUtils.message("error.message20")); + return AjaxResult.error("没有空货位"); } else { mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId()); mydoJob.setFaultFlag("1"); mydoJobService.updateMydoJob(mydoJob); basCargoSpace.setStatus("3"); basCargoSpaceService.updateBasCargoSpace(basCargoSpace); - return AjaxResult.success(new RequestEnterResponse(basCargoSpace.getCargoSpaceId(), null, mydoJob.getJobId())); + return AjaxResult.success(new RequestEnterResponse(basCargoSpace.getCargoSpaceId(), mydoJob.getTrayCode(), mydoJob.getJobId())); } } @@ -429,26 +200,32 @@ public class ToWmsServiceImpl implements IToWmsService { MydoJob param = new MydoJob(); param.setStatus("1"); param.setTrayCode(requestEnter.getTrayCode()); - MydoJob mydoJob = mydoJobService.selectMydoJobByEntranceId(param); - - if (ObjUtil.isNull(mydoJob)){ + param.setWarehouseId(requestEnter.getWarehouseId()); + List mydoJobs = mydoJobService.selectMydoJobListApi(param); + if (CollUtil.isEmpty(mydoJobs)){ return AjaxResult.error("没有该托盘任务", requestEnter.getTrayCode()); } - BasCargoSpace basCargoSpaceParam = new BasCargoSpace(); - basCargoSpaceParam.setWarehouseId(mydoJob.getWarehouseId()); - basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId()); - BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam); - if (ObjUtil.isNull(basCargoSpace)){ - return AjaxResult.error("没有空货位"); + MydoJob mydoJob = mydoJobs.get(0); + if(StrUtil.isEmpty(mydoJob.getCargoSpaceId())){ + BasCargoSpace basCargoSpaceParam = new BasCargoSpace(); + basCargoSpaceParam.setWarehouseId(mydoJob.getWarehouseId()); + basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId()); + BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam); + if (ObjUtil.isNull(basCargoSpace)){ + return AjaxResult.error("没有空货位"); + } + + //修改作业状态为正执行 + mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId()); + mydoJob.setStatus("3"); + mydoJob.setStartTime(DateUtil.formatDateTime(new Date())); + mydoJob.setRoadwayId(requestEnter.getRoadwayId()); + mydoJobService.updateMydoJob(mydoJob); + + //修改货位状态为已分配 + basCargoSpace.setStatus("3"); + basCargoSpaceService.updateBasCargoSpace(basCargoSpace); } - //修改作业状态为正执行 - mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId()); - mydoJob.setStatus("3"); - mydoJob.setStartTime(DateUtil.formatDateTime(new Date())); - mydoJobService.updateMydoJob(mydoJob); - //修改货位状态为已分配 - basCargoSpace.setStatus("3"); - basCargoSpaceService.updateBasCargoSpace(basCargoSpace); //返回结果 result.put("jobId", mydoJob.getJobId()); 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 17c421f..efcc4ec 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 @@ -488,13 +488,6 @@ public class MydoJobServiceImpl implements IMydoJobService { job.setFinishTime(DateUtil.formatDateTime(DateUtil.date())); updateMydoJob(job); insertHistory(jobId); - //通知wcs - AjaxResult ajaxResult = iToWcsService.cancelTaskByTaskNo(job.getTaskNo()); - if (ajaxResult.isSuccess()){ - return AjaxResult.success(); - }else { - throw new RuntimeException(Convert.toStr(ajaxResult.get("msg"))); - } } } catch (Exception e) {