自动化立体仓库 - WMS系统
#
lty
2025-06-05 078d76d0e964be567927b1765986dffe8f2c170a
src/main/java/com/zy/third/erp/task/ERPInOrOutService.java
@@ -51,17 +51,17 @@
    /**
     * @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(
@@ -100,11 +100,16 @@
                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() + "编号商品检索失败,请先添加商品");
            }
@@ -113,14 +118,17 @@
            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());
@@ -132,10 +140,13 @@
            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;
    }
@@ -144,7 +155,7 @@
    /**
     * @return
     */
    @Transactional(rollbackFor = Throwable.class)
    @Transactional
    public boolean createOutOrder(OutHedTB inHedTB, List<OutDetTB> inDetTBs) {
        Order order = orderService.selectByNo(inHedTB.getBillNo());
        // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据
@@ -154,7 +165,7 @@
            }
            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(
@@ -193,11 +204,17 @@
                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() + "编号商品检索失败,请先添加商品");
            }
@@ -206,29 +223,37 @@
            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;
    }