| | |
| | | Date now = new Date(); |
| | | List<HashMap<String,String>> dbList = (List<HashMap<String, String>>) params.get("dbList"); |
| | | params.get("dbList"); |
| | | String orderNo = params.get("orderNo").toString(); |
| | | for (HashMap<String, String> map : dbList) { |
| | | String locNo = map.get("locNo"); |
| | | String barcode = map.get("suppCode"); |
| | |
| | | // 更新订单 |
| | | // 先查询库订单明细 所属的订单 |
| | | |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("source",36).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode())); |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no",orderNo).eq("source",17).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode())); |
| | | orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme()); |
| | | if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("source",36).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){ |
| | | if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no",orderNo).eq("source",17).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){ |
| | | throw new CoolException("修改订单明细失败,请联系管理员"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr()); |
| | | } |
| | | // 更新订单状态 |
| | | Order order = orderService.selectByNo(orderNo); |
| | | Long settle = order.getSettle(); |
| | | if (settle == 1L) { |
| | | if (!orderService.updateSettle(order.getId(),2L,getUserId())) { |
| | | throw new CoolException("订单号:{"+order.getOrderNo()+"}更新订单状态:1-->2 失败!(半成品调拨单任务)" ); |
| | | } |
| | | } |
| | | } |
| | | // 更新源库位 |
| | | AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo)); |
| | |
| | | List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1)); |
| | | List<Long> docIds = new ArrayList<>(); |
| | | for (DocType pakin : pakins) { |
| | | if (pakin.getDocId() == 36) { |
| | | if (pakin.getDocId() == 17) { |
| | | docIds.add(pakin.getDocId()); |
| | | } |
| | | } |
| | |
| | | List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1)); |
| | | List<Long> docIds = new ArrayList<>(); |
| | | for (DocType pakin : pakins) { |
| | | if (pakin.getDocId() != 33 && pakin.getDocId() != 34 && pakin.getDocId() != 35) { |
| | | if (pakin.getDocId() != 17 && pakin.getDocId() != 33 && pakin.getDocId() != 34 && pakin.getDocId() != 35) { |
| | | docIds.add(pakin.getDocId()); |
| | | } |
| | | } |
| | | wrapper.ne("source",19); |
| | | wrapper.in("source",docIds); |
| | | Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper); |
| | | for (OrderDetl record : page.getRecords()) { |
| | | Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode()); |
| | |
| | | if (agvLocMast.getFloor() != floor) { |
| | | if (agvLocMast.getFloor() == 1 && (floor == 2 || floor == 3)) { |
| | | throw new CoolException("当前库位请选择调拨单调拨!"); |
| | | } else if ((agvLocMast.getFloor() == 2 || agvLocMast.getFloor() == 3) && (floor == 1 || floor == 4)) { |
| | | throw new CoolException("当前库位请选择调拨回流单回退!"); |
| | | } else { |
| | | ioType = 12; |
| | | } |
| | |
| | | }); |
| | | } |
| | | |
| | | // 如果当前任务是箱壳二三楼回退一楼的 回滚调拨单 |
| | | if (ioType == 12 && locMast.getFloor() == 1 && floor != 4 && agvLocMast.getFloor() != 1) { |
| | | List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo())); |
| | | for (AgvLocDetl agvLocDetl : agvLocDetls) { |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("source", 33)); |
| | | if (Cools.isEmpty(orderDetl)) { |
| | | throw new CoolException("当前物料的调拨单不存在!"); |
| | | } |
| | | Order order = orderService.selectByNo(orderDetl.getOrderNo()); |
| | | if (Cools.isEmpty(order)) { |
| | | throw new CoolException("当前物料的调拨单不存在!"); |
| | | } |
| | | if (order.getSettle() == 4L) { |
| | | if (!orderService.updateSettle(order.getId(),2L,userId)) { |
| | | throw new CoolException("调拨单回滚异常!"); |
| | | } |
| | | } |
| | | orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme()); |
| | | if (!orderDetlService.updateById(orderDetl)) { |
| | | throw new CoolException("保存工作明细失败"); |
| | | } |
| | | } |
| | | } |
| | | // // 如果当前任务是箱壳二三楼回退一楼的 回滚调拨单 |
| | | // if (ioType == 12 && locMast.getFloor() == 1 && floor != 4 && agvLocMast.getFloor() != 1) { |
| | | // List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo())); |
| | | // for (AgvLocDetl agvLocDetl : agvLocDetls) { |
| | | // OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("source", 33)); |
| | | // if (Cools.isEmpty(orderDetl)) { |
| | | // throw new CoolException("当前物料的调拨单不存在!"); |
| | | // } |
| | | // Order order = orderService.selectByNo(orderDetl.getOrderNo()); |
| | | // if (Cools.isEmpty(order)) { |
| | | // throw new CoolException("当前物料的调拨单不存在!"); |
| | | // } |
| | | // if (order.getSettle() == 4L) { |
| | | // if (!orderService.updateSettle(order.getId(),2L,userId)) { |
| | | // throw new CoolException("调拨单回滚异常!"); |
| | | // } |
| | | // } |
| | | // orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme()); |
| | | // if (!orderDetlService.updateById(orderDetl)) { |
| | | // throw new CoolException("保存工作明细失败"); |
| | | // } |
| | | // } |
| | | // } |
| | | //更新目标库位状态 |
| | | updateAgvLocMast(agvLocMast,"P"); |
| | | updateAgvLocMast(locMast,"Q"); |
| | |
| | | String locNo = wrkMast.getSourceLocNo(); |
| | | // 目标库位 |
| | | String targetLocNo = wrkMast.getLocNo(); |
| | | agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo),"",(short)0); |
| | | agvLocMastService.updateLocStsByLocNo(locNo, "F", wrkMast.getBarcode(), (short) getContainerTypeByloc(locNo), "", (short) 0); |
| | | if (wrkMast.getIoType() == 108) { |
| | | if (wrkMast.getWrkSts() != 22) { |
| | | agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null); |
| | | agvLocMastService.updateLocStsByLocNo(targetLocNo, "O", "", null); |
| | | } |
| | | } else { |
| | | if (wrkMast.getWrkSts() != 207L && wrkMast.getWrkSts() != 205L) { |
| | | if (wrkMast.getWrkSts() != 22) { |
| | | agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue()); |
| | | agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo, "O", "", wrkMast.getWhsType().shortValue()); |
| | | } |
| | | } else { |
| | | throw new CoolException("当前作业不能取消!"); |
| | |
| | | List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo)); |
| | | // 更新订单 |
| | | for (AgvLocDetl agvLocDetl : agvLocDetls) { |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode())); |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode())); |
| | | orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme()); |
| | | if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no","DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){ |
| | | throw new CoolException("修改订单明细失败,请联系管理员"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr()); |
| | | if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) { |
| | | throw new CoolException("修改订单明细失败,请联系管理员" + agvLocDetl.getOrderNo() + agvLocDetl.getMatnr()); |
| | | } |
| | | // FlowLog flowLog = new FlowLog(); |
| | | // flowLog.setFid(String.valueOf(flowId)); |
| | |
| | | // if (!flowLogService.insert(flowLog)) { |
| | | // throw new CoolException("同步半成品调拨单流水记录失败"); |
| | | // } |
| | | } |
| | | |
| | | // 回流单取消 |
| | | } else if (wrkMast.getIoType() == 114) { |
| | | //源库位 |
| | | String locNo = wrkMast.getSourceLocNo(); |
| | | // 目标库位 |
| | | String targetLocNo = wrkMast.getLocNo(); |
| | | agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo)); |
| | | agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null); |
| | | // 源库位 库位主档 |
| | | AgvLocMast sourceLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo)); |
| | | AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", targetLocNo)); |
| | | // 当前任务是跨层移库 且目标楼层是1楼的 回滚调拨单 |
| | | List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo)); |
| | | for (AgvLocDetl agvLocDetl : agvLocDetls) { |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("source", 17)); |
| | | orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme()); |
| | | if (!orderDetlService.updateById(orderDetl)) { |
| | | throw new CoolException("更新订单明细失败"); |
| | | } |
| | | } |
| | | //出库取消 |
| | | } else { |
| | |
| | | |
| | | } |
| | | |
| | | if(wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10 && wrkMast.getIoType()!=111 && wrkMast.getIoType()!=108 && wrkMast.getIoType() != 12 && wrkMast.getIoType() != 11){ |
| | | if(wrkMast.getIoType() != 114 && wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10 && wrkMast.getIoType()!=111 && wrkMast.getIoType()!=108 && wrkMast.getIoType() != 12 && wrkMast.getIoType() != 11){ |
| | | //订单回滚 |
| | | //List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | List<AgvWrkDetl> agvWrkDetlList1 = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); |
| | |
| | | } |
| | | agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString()); |
| | | switch (agvWrkMast.getIoType()) { |
| | | case 114: |
| | | case 108: |
| | | case 12: |
| | | agvTaskCreateParam.setTaskTyp("F06"); |
| | |
| | | .or().eq("io_type", 108) |
| | | .or().eq("io_type", 111) |
| | | .or().eq("io_type", 112) |
| | | .or().eq("io_type", 113)).getRecords(); |
| | | .or().eq("io_type", 113) |
| | | .or().eq("io_type", 114)).getRecords(); |
| | | |
| | | if(!Cools.isEmpty(agvWrkMastList)){ |
| | | agvWrkMastList.forEach(agvWrkMast -> { |