|  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Transactional(rollbackFor = Throwable.class) | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public boolean createInOrder(InHedTB inHedTB, List<InDetTB> inDetTBs) { | 
|---|
|  |  |  | Order order = orderService.selectByNo(inHedTB.getBillNo()); | 
|---|
|  |  |  | // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据 | 
|---|
|  |  |  | if (!Cools.isEmpty(order)) { | 
|---|
|  |  |  | if (order.getSettle() > 1L) { | 
|---|
|  |  |  | throw new CoolException(inHedTB.getBillNo() + "正在出库,无法修改单据"); | 
|---|
|  |  |  | throw new CoolException(inHedTB.getBillNo() + "正在入库,无法修改单据"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | orderService.remove(order.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DocType docType = docTypeService.selectOrAdd(inHedTB.getIoKindID(), Boolean.FALSE); | 
|---|
|  |  |  | DocType docType = docTypeService.selectOrAdd(inHedTB.getIoKindName(), inHedTB.getIoKindID(), Boolean.TRUE); | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | // 单据主档 | 
|---|
|  |  |  | order = new Order( | 
|---|
|  |  |  | 
|---|
|  |  |  | inHedTB.getMakeDate(),    // 修改时间 | 
|---|
|  |  |  | inHedTB.getRemark()    // 备注 | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | order.setTemp1(inHedTB.getTemp1()); | 
|---|
|  |  |  | order.setTemp2(inHedTB.getTemp2()); | 
|---|
|  |  |  | order.setTemp3(inHedTB.getTemp3()); | 
|---|
|  |  |  | order.setWareId(inHedTB.getWareId()); | 
|---|
|  |  |  | order.setWareName(inHedTB.getWareName()); | 
|---|
|  |  |  | if (!orderService.insert(order)) { | 
|---|
|  |  |  | throw new CoolException("生成单据主档失败,请联系管理员"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (InDetTB outDetTB : inDetTBs) { | 
|---|
|  |  |  | Mat mat = matService.selectByMatnr(outDetTB.getItemCode()); | 
|---|
|  |  |  | Mat mat = matService.selectByMatnr(outDetTB.getItemId()); | 
|---|
|  |  |  | if (Cools.isEmpty(mat)) { | 
|---|
|  |  |  | throw new CoolException(outDetTB.getItemCode() + "编号商品检索失败,请先添加商品"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | orderDetl.setOrderNo(outDetTB.getBillNo()); | 
|---|
|  |  |  | orderDetl.setOutOrderNo(outDetTB.getOrderNo()); | 
|---|
|  |  |  | orderDetl.setAutoId(outDetTB.getAutoId()); | 
|---|
|  |  |  | orderDetl.setLuHao(outDetTB.getLuHao()); | 
|---|
|  |  |  | orderDetl.setSpecs(outDetTB.getSPgNO()); | 
|---|
|  |  |  | orderDetl.setDetId(outDetTB.getDetId()); | 
|---|
|  |  |  | //            orderDetl.setLuHao(outDetTB.getLuHao()); | 
|---|
|  |  |  | //            orderDetl.setSpecs(outDetTB.getSPgNO()); | 
|---|
|  |  |  | orderDetl.setPacking(outDetTB.getPacking()); | 
|---|
|  |  |  | orderDetl.setSuppCode(inHedTB.getObjectId()); | 
|---|
|  |  |  | orderDetl.setSupp(inHedTB.getObjectName()); | 
|---|
|  |  |  | orderDetl.setWareId(outDetTB.getWareId()); | 
|---|
|  |  |  | orderDetl.setWareName(outDetTB.getWareName()); | 
|---|
|  |  |  | orderDetl.setBatch(outDetTB.getItemBatch()); | 
|---|
|  |  |  | orderDetl.setAnfme(outDetTB.getMainNum()); | 
|---|
|  |  |  | orderDetl.setINO(outDetTB.getINO()); | 
|---|
|  |  |  | orderDetl.setINo(outDetTB.getINO()); | 
|---|
|  |  |  | orderDetl.setOrderId(order.getId()); | 
|---|
|  |  |  | orderDetl.setTemp1(outDetTB.getTemp1()); | 
|---|
|  |  |  | orderDetl.setTemp2(outDetTB.getTemp2()); | 
|---|
|  |  |  | 
|---|
|  |  |  | orderDetl.setUpdateBy(9527L); | 
|---|
|  |  |  | orderDetl.setUpdateTime(now); | 
|---|
|  |  |  | orderDetl.setStatus(1); | 
|---|
|  |  |  | orderDetl.setProType(outDetTB.getProtype()); | 
|---|
|  |  |  | orderDetl.setQty(0.0D); | 
|---|
|  |  |  | orderDetl.setSPgNO(outDetTB.getSPgNO()); | 
|---|
|  |  |  | if (!orderDetlService.insert(orderDetl)) { | 
|---|
|  |  |  | throw new CoolException("生成单据明细失败,请联系管理员"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | log.info("入库单据成功详情,{}", orderDetl); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Transactional(rollbackFor = Throwable.class) | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public boolean createOutOrder(OutHedTB inHedTB, List<OutDetTB> inDetTBs) { | 
|---|
|  |  |  | Order order = orderService.selectByNo(inHedTB.getBillNo()); | 
|---|
|  |  |  | // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据 | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | orderService.remove(order.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DocType docType = docTypeService.selectOrAdd(inHedTB.getIoKindID(), Boolean.FALSE); | 
|---|
|  |  |  | DocType docType = docTypeService.selectOrAdd(inHedTB.getIoKindName(),inHedTB.getIoKindID(), Boolean.FALSE); | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | // 单据主档 | 
|---|
|  |  |  | order = new Order( | 
|---|
|  |  |  | 
|---|
|  |  |  | inHedTB.getMakeDate(),    // 修改时间 | 
|---|
|  |  |  | inHedTB.getRemark()    // 备注 | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | order.setTemp1(inHedTB.getTemp1()); | 
|---|
|  |  |  | order.setTemp2(inHedTB.getTemp2()); | 
|---|
|  |  |  | order.setTemp3(inHedTB.getTemp3()); | 
|---|
|  |  |  | order.setWareId(inHedTB.getWareId()); | 
|---|
|  |  |  | order.setWareName(inHedTB.getWareName()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (!orderService.insert(order)) { | 
|---|
|  |  |  | throw new CoolException("生成单据主档失败,请联系管理员"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (OutDetTB outDetTB : inDetTBs) { | 
|---|
|  |  |  | Mat mat = matService.selectByMatnr(outDetTB.getItemCode()); | 
|---|
|  |  |  | Mat mat = matService.selectByMatnr(outDetTB.getItemId()); | 
|---|
|  |  |  | if (Cools.isEmpty(mat)) { | 
|---|
|  |  |  | throw new CoolException(outDetTB.getItemCode() + "编号商品检索失败,请先添加商品"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | orderDetl.setOrderNo(outDetTB.getBillNo()); | 
|---|
|  |  |  | orderDetl.setOutOrderNo(outDetTB.getOrderNo()); | 
|---|
|  |  |  | orderDetl.setAutoId(outDetTB.getAutoId()); | 
|---|
|  |  |  | orderDetl.setLuHao(outDetTB.getLuHao()); | 
|---|
|  |  |  | orderDetl.setSpecs(mat.getSpecs()); | 
|---|
|  |  |  | orderDetl.setDetId(outDetTB.getDetId()); | 
|---|
|  |  |  | //            orderDetl.setLuHao(outDetTB.getLuHao()); | 
|---|
|  |  |  | orderDetl.setSpecs(outDetTB.getSPgNO()); | 
|---|
|  |  |  | orderDetl.setSuppCode(inHedTB.getObjectId()); | 
|---|
|  |  |  | orderDetl.setSupp(inHedTB.getObjectName()); | 
|---|
|  |  |  | orderDetl.setPacking(outDetTB.getPacking()); | 
|---|
|  |  |  | orderDetl.setWareId(outDetTB.getWareId()); | 
|---|
|  |  |  | orderDetl.setWareName(outDetTB.getWareName()); | 
|---|
|  |  |  | orderDetl.setBatch(outDetTB.getItemBatch()); | 
|---|
|  |  |  | orderDetl.setAnfme(outDetTB.getMainNum()); | 
|---|
|  |  |  | orderDetl.setINO(outDetTB.getINO()); | 
|---|
|  |  |  | orderDetl.setINo(outDetTB.getINO()); | 
|---|
|  |  |  | orderDetl.setOrderId(order.getId()); | 
|---|
|  |  |  | orderDetl.setTemp1(outDetTB.getTemp1()); | 
|---|
|  |  |  | orderDetl.setTemp2(outDetTB.getTemp2()); | 
|---|
|  |  |  | orderDetl.setTemp3(outDetTB.getTemp3()); | 
|---|
|  |  |  | orderDetl.setOrderNo(order.getOrderNo()); | 
|---|
|  |  |  | orderDetl.setThreeCode(outDetTB.getDetId() + ""); | 
|---|
|  |  |  | orderDetl.setThreeCode(outDetTB.getTemp1()); | 
|---|
|  |  |  | orderDetl.setModel(outDetTB.getItemCode()); | 
|---|
|  |  |  | orderDetl.setCreateBy(9527L); | 
|---|
|  |  |  | orderDetl.setCreateTime(now); | 
|---|
|  |  |  | orderDetl.setUpdateBy(9527L); | 
|---|
|  |  |  | orderDetl.setUpdateTime(now); | 
|---|
|  |  |  | orderDetl.setStatus(1); | 
|---|
|  |  |  | orderDetl.setQty(0.0D); | 
|---|
|  |  |  | orderDetl.setProType(outDetTB.getProType()); | 
|---|
|  |  |  | orderDetl.setSPgNO(outDetTB.getSPgNO()); | 
|---|
|  |  |  | if (!orderDetlService.insert(orderDetl)) { | 
|---|
|  |  |  | throw new CoolException("生成单据明细失败,请联系管理员"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | log.info("出库单据成功详情,{}", orderDetl); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|