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 5390298..cc45f78 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 @@ -397,6 +397,8 @@ public class ToWmsServiceImpl implements IToWmsService { 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())); } } @@ -424,82 +426,37 @@ public class ToWmsServiceImpl implements IToWmsService { } 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, "二维码内容错误"); - } - } - - MydoJob param = new MydoJob(); param.setStatus("1"); - param.setEntranceId(requestEnter.getEntranceId()); - param.setLineId(erpBill); + param.setTrayCode(requestEnter.getTrayCode()); MydoJob mydoJob = mydoJobService.selectMydoJobByEntranceId(param); - MydoJobDetail mydoJobDetailParam = new MydoJobDetail(); - mydoJobDetailParam.setJobId(mydoJob.getJobId()); - mydoJobDetailParam.setProductId(productId); - List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam); - if (mydoJobDetails.isEmpty()){ - return new AjaxResult(1, "该任务没有该物料"); + if (ObjUtil.isNull(mydoJob)){ + return AjaxResult.error("没有该托盘任务", requestEnter.getTrayCode()); } - - //查询物料信息 - BasProduct basProductParam = new BasProduct(); - basProductParam.setProductId(productId); - List basProducts = basProductService.selectBasProductList(basProductParam); - if (CollUtil.isEmpty(basProducts)) { - return new AjaxResult(2, "物料不存在"); + BasCargoSpace basCargoSpaceParam = new BasCargoSpace(); + basCargoSpaceParam.setWarehouseId(mydoJob.getWarehouseId()); + basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId()); + BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam); + if (ObjUtil.isNull(basCargoSpace)){ + return AjaxResult.error("没有空货位"); } - - 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, "托盘大小不匹配"); - } - //修改作业状态为正执行 + 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()); 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()); - - mydoJob.setStatus("3"); - mydoJob.setStartTime(DateUtil.formatDateTime(new Date())); - mydoJobService.updateMydoJob(mydoJob); return AjaxResult.success(result); }