自动化立体仓库 - WMS系统
#
lsh
2024-12-21 7658be06a4f6ed1ed24c41d7c5a2f0602ffbe660
#
9个文件已修改
140 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/AutoMove.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetlPakin.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetlPakout.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMastFourWarVehicle.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMastFourWarVehicleLog.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/DetlDto.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -90,7 +90,7 @@
    /**
     * 入库单回写
     */
    @PostMapping("/order/pakin/complete/default/v1")
//    @PostMapping("/order/pakin/complete/default/v1")
    public synchronized R orderPakinComplete(@RequestHeader(required = false) String appkey,
                                             @RequestBody(required = false) OpenOrderCompleteParam param,
                                             HttpServletRequest request) {
@@ -126,7 +126,7 @@
    /**
     * 出库单回写
     */
    @PostMapping("/order/pakout/complete/default/v1")
//    @PostMapping("/order/pakout/complete/default/v1")
    public synchronized R orderPakoutComplete(@RequestHeader(required = false) String appkey,
                                              @RequestBody(required = false) OpenOrderCompleteParam param,
                                              HttpServletRequest request) {
src/main/java/com/zy/asrs/entity/AutoMove.java
@@ -35,7 +35,7 @@
    @ApiModelProperty(value= "")
    @TableField("line_number")
    private Integer lineNumber;
    private Long lineNumber;
    @ApiModelProperty(value= "")
    @TableField("loc_no")
@@ -64,7 +64,7 @@
    public AutoMove() {}
    public AutoMove(Short status,Integer lineNumber,String locNo,Integer rowPriority,String orderNo,Date createTime,Date updateTime,Integer uuid) {
    public AutoMove(Short status,Long lineNumber,String locNo,Integer rowPriority,String orderNo,Date createTime,Date updateTime,Integer uuid) {
        this.status = status;
        this.lineNumber = lineNumber;
        this.locNo = locNo;
src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -308,7 +308,7 @@
     */
    @ApiModelProperty(value= "行号")
    @TableField("line_number")
    private Integer lineNumber;
    private Long lineNumber;
    /**
     * 备用1
src/main/java/com/zy/asrs/entity/OrderDetlPakin.java
@@ -308,7 +308,7 @@
     */
    @ApiModelProperty(value= "行号")
    @TableField("line_number")
    private Integer lineNumber;
    private Long lineNumber;
    /**
     * 备用1
src/main/java/com/zy/asrs/entity/OrderDetlPakout.java
@@ -308,7 +308,7 @@
     */
    @ApiModelProperty(value= "行号")
    @TableField("line_number")
    private Integer lineNumber;
    private Long lineNumber;
    /**
     * 备用1
src/main/java/com/zy/asrs/entity/WrkMastFourWarVehicle.java
@@ -98,7 +98,7 @@
     */
    @ApiModelProperty(value= "行号")
    @TableField("line_number")
    private Integer lineNumber;
    private Long lineNumber;
    /**
     * 工作类型  类型  1:入库  2:出库
@@ -121,7 +121,7 @@
    public WrkMastFourWarVehicle() {}
    public WrkMastFourWarVehicle(Long wrkNo,Integer wrkStart,Integer wrkEnd,Integer staStart,Integer staEnd,Date createTime,Date updateTime,Integer type,Integer wrkSts,Integer lineNumber,Integer wrkType,Date bignTime,Integer wrkCrn) {
    public WrkMastFourWarVehicle(Long wrkNo,Integer wrkStart,Integer wrkEnd,Integer staStart,Integer staEnd,Date createTime,Date updateTime,Integer type,Integer wrkSts,Long lineNumber,Integer wrkType,Date bignTime,Integer wrkCrn) {
        this.wrkNo = wrkNo;
        this.wrkStart = wrkStart;
        this.wrkEnd = wrkEnd;
src/main/java/com/zy/asrs/entity/WrkMastFourWarVehicleLog.java
@@ -98,7 +98,7 @@
     */
    @ApiModelProperty(value= "行号")
    @TableField("line_number")
    private Integer lineNumber;
    private Long lineNumber;
    /**
     * 工作类型  类型  1:入库  2:出库
@@ -121,7 +121,7 @@
    public WrkMastFourWarVehicleLog() {}
    public WrkMastFourWarVehicleLog(Long wrkNo,Integer wrkStart,Integer wrkEnd,Integer staStart,Integer staEnd,Date createTime,Date updateTime,Integer type,Integer wrkSts,Integer lineNumber,Integer wrkType,Date bignTime,Integer wrkCrn) {
    public WrkMastFourWarVehicleLog(Long wrkNo,Integer wrkStart,Integer wrkEnd,Integer staStart,Integer staEnd,Date createTime,Date updateTime,Integer type,Integer wrkSts,Long lineNumber,Integer wrkType,Date bignTime,Integer wrkCrn) {
        this.wrkNo = wrkNo;
        this.wrkStart = wrkStart;
        this.wrkEnd = wrkEnd;
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -53,13 +53,14 @@
    @Override
    @Transactional
    public void pakinOrderCreate(OpenOrderPakinParam param) {
        OrderInAndOutUtil.query(Boolean.TRUE,param.getOrderNo());
        Order order = orderService.selectByNo(param.getOrderNo());
        if (!Cools.isEmpty(order)) {
            throw new CoolException(param.getOrderNo() + "单据已存在,请勿重复提交");
        }
        DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.TRUE);
        Date now = new Date();
        // 单据主档
        Order order = new Order(
        order = new Order(
                String.valueOf(snowflakeIdWorker.nextId()),    // 编号[非空]
                param.getOrderNo(),    // 订单编号
                DateUtils.convert(now),    // 单据日期
@@ -95,16 +96,16 @@
                now,    // 修改时间
                null    // 备注
        );
        OrderInAndOutUtil.insertOrder(Boolean.TRUE,order);
        if (!orderService.insert(order)) {
            throw new CoolException("生成单据主档失败,请联系管理员");
        }
        // 单据明细档
        List<DetlDto> list = new ArrayList<>();
        List<DetlDto> orderDetails = param.getOrderDetails();
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(),detail.getBrand(),detail.getStandby1(),detail.getStandby2(),detail.getStandby3(), detail.getAnfme());
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(),detail.getBrand(),detail.getStandby1(),detail.getStandby2(),detail.getStandby3(),detail.getLineNumber(), detail.getAnfme());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getBrand(),dto.getStandby1(),dto.getStandby2(),dto.getStandby3());
                DetlDto detlDto = DetlDto.findLineNumber(list, dto.getMatnr(), dto.getBatch(),dto.getBrand(),dto.getStandby1(),dto.getStandby2(),dto.getStandby3(),dto.getLineNumber());
                assert detlDto != null;
                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
            } else {
@@ -118,8 +119,13 @@
            }
            OrderDetl orderDetl = new OrderDetl();
            orderDetl.sync(mat);
            orderDetl.setLineNumber(detlDto.getLineNumber());
            orderDetl.setBatch(detlDto.getBatch());
            orderDetl.setAnfme(detlDto.getAnfme());
            orderDetl.setBrand(detlDto.getBrand());
            orderDetl.setStandby1(detlDto.getStandby1());
            orderDetl.setStandby2(detlDto.getStandby2());
            orderDetl.setStandby3(detlDto.getStandby3());
            orderDetl.setOrderId(order.getId());
            orderDetl.setOrderNo(order.getOrderNo());
            orderDetl.setCreateBy(9527L);
@@ -128,7 +134,9 @@
            orderDetl.setUpdateTime(now);
            orderDetl.setStatus(1);
            orderDetl.setQty(0.0D);
            OrderInAndOutUtil.insertOrderDetl(Boolean.TRUE,order,orderDetl);
            if (!orderDetlService.insert(orderDetl)) {
                throw new CoolException("生成单据明细失败,请联系管理员");
            }
        }
    }
@@ -194,15 +202,13 @@
    @Override
    @Transactional
    public void pakoutOrderCreate(OpenOrderPakoutParam param) {
//        Order order = orderService.selectByNo(param.getOrderNo());
        Order order = OrderInAndOutUtil.selectByNo(Boolean.FALSE, param.getOrderNo());
        Order order = orderService.selectByNo(param.getOrderNo());
        // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据
        if (!Cools.isEmpty(order)) {
            if (order.getSettle() > 1L) {
                throw new CoolException(param.getOrderNo() + "正在出库,无法修改单据");
            }
//            orderService.remove(order.getId());
            OrderInAndOutUtil.remove(Boolean.FALSE,order.getId());
            orderService.remove(order.getId());
        }
        DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE);
        Date now = new Date();
@@ -243,17 +249,16 @@
                now,    // 修改时间
                null    // 备注
        );
//        if (!orderService.insert(order)) {
//            throw new CoolException("生成单据主档失败,请联系管理员");
//        }
        OrderInAndOutUtil.insertOrder(Boolean.FALSE,order);
        if (!orderService.insert(order)) {
            throw new CoolException("生成单据主档失败,请联系管理员");
        }
        // 单据明细档
        List<DetlDto> list = new ArrayList<>();
        List<DetlDto> orderDetails = param.getOrderDetails();
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(),detail.getBrand(),detail.getStandby1(),detail.getStandby2(),detail.getStandby3(), detail.getAnfme());
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(),detail.getBrand(),detail.getStandby1(),detail.getStandby2(),detail.getStandby3(),detail.getLineNumber(), detail.getAnfme());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getBrand(),dto.getStandby1(),dto.getStandby2(),dto.getStandby3());
                DetlDto detlDto = DetlDto.findLineNumber(list, dto.getMatnr(), dto.getBatch(),dto.getBrand(),dto.getStandby1(),dto.getStandby2(),dto.getStandby3(),dto.getLineNumber());
                assert detlDto != null;
                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
            } else {
@@ -267,8 +272,13 @@
            }
            OrderDetl orderDetl = new OrderDetl();
            orderDetl.sync(mat);
            orderDetl.setLineNumber(detlDto.getLineNumber());
            orderDetl.setBatch(detlDto.getBatch());
            orderDetl.setAnfme(detlDto.getAnfme());
            orderDetl.setBrand(detlDto.getBrand());
            orderDetl.setStandby1(detlDto.getStandby1());
            orderDetl.setStandby2(detlDto.getStandby2());
            orderDetl.setStandby3(detlDto.getStandby3());
            orderDetl.setOrderId(order.getId());
            orderDetl.setOrderNo(order.getOrderNo());
            orderDetl.setCreateBy(9527L);
@@ -277,10 +287,9 @@
            orderDetl.setUpdateTime(now);
            orderDetl.setStatus(1);
            orderDetl.setQty(0.0D);
//            if (!orderDetlService.insert(orderDetl)) {
//                throw new CoolException("生成单据明细失败,请联系管理员");
//            }
            OrderInAndOutUtil.insertOrderDetl(Boolean.FALSE,order,orderDetl);
            if (!orderDetlService.insert(orderDetl)) {
                throw new CoolException("生成单据明细失败,请联系管理员");
            }
        }
    }
src/main/java/com/zy/common/model/DetlDto.java
@@ -24,10 +24,22 @@
    private String standby1 = "";
    private String standby2 = "";
    private String standby3 = "";
    private Long lineNumber = 1L;
    private Double anfme;
    public DetlDto() {
    }
    public DetlDto(String matnr, String batch, String brand, String standby1, String standby2, String standby3, Long lineNumber, Double anfme) {
        this.matnr = matnr;
        this.batch = batch;
        this.brand = brand;
        this.standby1 = standby1;
        this.standby2 = standby2;
        this.standby3 = standby3;
        this.lineNumber = lineNumber;
        this.anfme = anfme;
    }
    public DetlDto(String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double anfme) {
@@ -38,6 +50,16 @@
        this.standby2 = standby2;
        this.standby3 = standby3;
        this.anfme = anfme;
    }
    public DetlDto(String matnr, String batch, String brand, String standby1, String standby2, String standby3, Long lineNumber) {
        this.matnr = matnr;
        this.batch = batch;
        this.brand = brand;
        this.standby1 = standby1;
        this.standby2 = standby2;
        this.standby3 = standby3;
        this.lineNumber = lineNumber;
    }
    public DetlDto(String matnr, String batch, String brand, String standby1, String standby2, String standby3) {
@@ -95,6 +117,30 @@
        return false;
    }
    public static boolean hasListLineNumber(Set<DetlDto> detlDtos, OrderDetl orderDetl) {
        for (DetlDto dto : detlDtos) {
//            if (Cools.isEmpty(dto.getBatch()) && Cools.isEmpty(orderDetl.getBatch())) {
//                if (dto.getMatnr().equals(orderDetl.getMatnr())) {
//                    return true;
//                }
//            } else
//            {
//                if (!Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(orderDetl.getBatch())) {
//                    if (dto.getMatnr().equals(orderDetl.getMatnr()) && dto.getBatch().equals(orderDetl.getBatch())) {
//                        return true;
//                    }
            if (dto.getMatnr().equals(orderDetl.getMatnr()) && Cools.eq(dto.getBatch(), orderDetl.getBatch())
                    && Cools.eq(dto.getBrand(), orderDetl.getBrand()) && Cools.eq(dto.getStandby1(), orderDetl.getStandby1())
                    && Cools.eq(dto.getStandby2(), orderDetl.getStandby2()) && Cools.eq(dto.getStandby3(), orderDetl.getStandby3())
                    && dto.getLineNumber().equals(orderDetl.getLineNumber())) {
                return true;
            }
//                }
//            }
        }
        return false;
    }
    public static boolean hasList(Set<DetlDto> detlDtos, OrderDetlPakin orderDetl) {
        for (DetlDto dto : detlDtos) {
            if (dto.getMatnr().equals(orderDetl.getMatnr()) && Cools.eq(dto.getBatch(), orderDetl.getBatch())
@@ -142,6 +188,21 @@
        return null;
    }
    public static DetlDto findLineNumber(List<DetlDto> detlDtos, String matnr, String batch, String brand, String standby1, String standby2, String standby3,Long lineNumber) {
        if (Cools.isEmpty(matnr)) {
            return null;
        }
        for (DetlDto detlDto : detlDtos) {
            if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch())
                    && brand.equals(detlDto.getBrand()) && standby1.equals(detlDto.getStandby1())
                    && standby2.equals(detlDto.getStandby2()) && standby3.equals(detlDto.getStandby3())
                    && lineNumber.equals(detlDto.getLineNumber())) {
                return detlDto;
            }
        }
        return null;
    }
    public static DetlDto findDto(List<DetlDto> detlDtos,DetlDto detlDtoB) {
        if (Cools.isEmpty(detlDtoB)) {
            return null;