|  |  | 
 |  |  |             wrkDetl.setSuppCode(detlDto.getFromOrderNo()); //来源单号 | 
 |  |  |             wrkDetl.setTemp1(detlDto.getTemp1()); | 
 |  |  |             wrkDetl.setTemp2(detlDto.getTemp2()); | 
 |  |  |             wrkDetl.setTemp3(detlDto.getSuppName()); | 
 |  |  |             wrkDetl.setTemp4(detlDto.getTemp4()); | 
 |  |  |             if (!wrkDetlService.insert(wrkDetl)) { | 
 |  |  |                 throw new CoolException("保存工作明细失败"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         orderService.updateSettle(order.getId(), 2L, userId); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void pingKuUnShelves(CombParam combParam, Long userId) { | 
 |  |  |         String orderNo = combParam.getOrderNo(); | 
 |  |  |  | 
 |  |  |         Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", combParam.getLocno()).eq("type", 3)); | 
 |  |  |         if (Cools.isEmpty(node)){ | 
 |  |  |             throw new CoolException("未找到库位信息"); | 
 |  |  |         } | 
 |  |  |         //根据订单号生成出库任务工作档 | 
 |  |  |         Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", orderNo)); | 
 |  |  |         if (order.getSettle() != 1 && order.getSettle() != 2){ | 
 |  |  |             throw new CoolException("该订单已处理"); | 
 |  |  |         } | 
 |  |  |         List<DetlDto> detlDtos = new ArrayList<>(); | 
 |  |  |         for (CombParam.CombMat elem : combParam.getCombMats()) { | 
 |  |  |             Wrapper<ManLocDetl> manLocDetlWrapper = new EntityWrapper<ManLocDetl>().eq("loc_no", combParam.getLocno()) | 
 |  |  |                     .eq("matnr", elem.getMatnr()).eq("batch", elem.getBatch()) | 
 |  |  |                     .eq("temp3", elem.getSupp()).eq("temp1", elem.getTemp1()).eq("temp2", elem.getTemp2()); | 
 |  |  |             ManLocDetl manLocDetl = manLocDetlService.selectOne(manLocDetlWrapper); | 
 |  |  |  | 
 |  |  |             if (Cools.isEmpty(manLocDetl)){ | 
 |  |  |                 throw new CoolException("该库位未查询到货物信息"); | 
 |  |  |             } | 
 |  |  |             if (elem.getAnfme()> manLocDetl.getAnfme()){ | 
 |  |  |                 throw new CoolException("出库数量大于库位剩余数量"); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch()); | 
 |  |  |             if (Cools.isEmpty(orderDetl)) { | 
 |  |  |                 throw new CoolException("该单据中未找到对应物料明细"); | 
 |  |  |             } | 
 |  |  |             if (elem.getAnfme() > orderDetl.getEnableQty()) { | 
 |  |  |                 throw new CoolException(orderDetl.getMatnr() + "入库数量不合法"); | 
 |  |  |             } | 
 |  |  |             // 修改订单作业数量 | 
 |  |  |             if (!orderDetlService.increaseWorkQty(order.getId(), elem.getMatnr(), elem.getBatch(), elem.getAnfme())) { | 
 |  |  |                 throw new CoolException("修改单据作业数量失败"); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getSuppCode() | 
 |  |  |                     , orderDetl.getManu(),orderDetl.getSku(),orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2(),orderDetl.getTemp3(),orderDetl.getTemp4()); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             int workNo = commonService.getWorkNo(4); | 
 |  |  |             Date now = new Date(); | 
 |  |  |             // 生成工作档 | 
 |  |  |             WrkMast wrkMast = new WrkMast(); | 
 |  |  |             wrkMast.setWrkNo(workNo); | 
 |  |  |             wrkMast.setIoTime(new Date()); | 
 |  |  |             wrkMast.setWrkSts(14L); // 工作状态:生成入库ID | 
 |  |  |             wrkMast.setIoType(301); // 入出库状态:301.平库出库 | 
 |  |  |             wrkMast.setIoPri(12D); // 优先级 | 
 |  |  |             wrkMast.setSourceLocNo(node.getName()); | 
 |  |  |             wrkMast.setBarcode(""); // 托盘码 | 
 |  |  |             wrkMast.setFullPlt("Y"); // 满板:Y | 
 |  |  |             wrkMast.setPicking("N"); // 拣料 | 
 |  |  |             wrkMast.setExitMk("N"); // 退出 | 
 |  |  |             wrkMast.setEmptyMk("N"); // 空板 | 
 |  |  |             wrkMast.setLinkMis("Y"); | 
 |  |  |             wrkMast.setSheetNo(order.getOrderNo()); | 
 |  |  |             // 操作人员数据 | 
 |  |  |             wrkMast.setAppeTime(now); | 
 |  |  |             wrkMast.setModiTime(now); | 
 |  |  |             boolean res = wrkMastService.insert(wrkMast); | 
 |  |  |             if (!res) { | 
 |  |  |                 throw new CoolException("保存工作档失败"); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             Mat mat = matService.selectByMatnr(detlDto.getMatnr()); | 
 |  |  |             if (Cools.isEmpty(mat)) { | 
 |  |  |                 throw new CoolException(detlDto.getMatnr() + "商品档案不存在"); | 
 |  |  |             } | 
 |  |  |             WrkDetl wrkDetl = new WrkDetl(); | 
 |  |  |  | 
 |  |  |             wrkDetl.sync(detlDto); | 
 |  |  |             wrkDetl.sync(mat); | 
 |  |  |  | 
 |  |  |             wrkDetl.setOrderNo(order.getOrderNo()); | 
 |  |  |             wrkDetl.setWrkNo(wrkMast.getWrkNo()); | 
 |  |  |             wrkDetl.setIoTime(wrkMast.getIoTime()); | 
 |  |  |             wrkDetl.setAppeTime(now); | 
 |  |  |             wrkDetl.setModiTime(now); | 
 |  |  |             wrkDetl.setManu(detlDto.getMark()); //标记 | 
 |  |  |             wrkDetl.setOrigin(order.getItemName());//仓库 | 
 |  |  |             wrkDetl.setSupp(detlDto.getSuppName()); //供应商 | 
 |  |  |             wrkDetl.setSku(detlDto.getCustomer()); //客户名称 | 
 |  |  |             wrkDetl.setThreeCode(detlDto.getOrderNo()); //u8发过来的订单号 | 
 |  |  |             wrkDetl.setSuppCode(detlDto.getFromOrderNo()); //来源单号 | 
 |  |  |             wrkDetl.setTemp1(detlDto.getTemp1()); | 
 |  |  |             wrkDetl.setTemp2(detlDto.getTemp2()); | 
 |  |  |             wrkDetl.setTemp3(detlDto.getTemp3()); | 
 |  |  |             wrkDetl.setTemp4(detlDto.getTemp4()); | 
 |  |  |             if (!wrkDetlService.insert(wrkDetl)) { | 
 |  |  |                 throw new CoolException("保存工作明细失败"); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             if (new BigDecimal(manLocDetl.getAnfme()).subtract(new BigDecimal(elem.getAnfme())).doubleValue() == 0){ | 
 |  |  |                 manLocDetlService.delete(manLocDetlWrapper); | 
 |  |  |             }else { | 
 |  |  |                 manLocDetl.setAnfme(new BigDecimal(manLocDetl.getAnfme()).subtract(new BigDecimal(elem.getAnfme())).doubleValue()); | 
 |  |  |                 if (!manLocDetlService.update(manLocDetl,manLocDetlWrapper)) { | 
 |  |  |                     throw new CoolException("更新明细失败"); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         orderService.updateSettle(order.getId(), 2L, userId); | 
 |  |  |  |