Merge remote-tracking branch 'origin/phyzwms2' into phyzwms2
|  |  |  | 
|---|
|  |  |  | 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 -> { | 
|---|