自动化立体仓库 - WMS系统
123
zhang
4 天以前 949488f0d87544a7b1a3277c32d3c6def1e68fe0
123
3个文件已修改
96 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/OrderDetl.java 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/WrkDetlMapper.xml 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -59,7 +59,7 @@
    /**
     * 作业数量
     *
     * <p>
     *  入库 : 组托完成,组托档、工作档、入库完成数量
     *  出库 : 工作档、出库完成数量
     */
@@ -69,7 +69,7 @@
    /**
     * 完成数量
     *
     * <p>
     *  入库 : qty 👆
     *  出库 : qty 👆
     */
@@ -358,7 +358,8 @@
    @TableField("remark")
    private String remark;
    public OrderDetl() {}
    public OrderDetl() {
    }
    public OrderDetl(Long orderId, String orderNo, Double anfme, Double qty, String matnr, String maktx, String batch, String specs, String model, String color, String brand, String unit, Double price, String sku, Double units, String barcode, String origin, String manu, String manuDate, String itemNum, Double safeQty, Double weight, Double manLength, Double volume, String threeCode, String supp, String suppCode, Integer beBatch, String deadTime, Integer deadWarn, Integer source, Integer inspect, Integer danger, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) {
        this.orderId = orderId;
@@ -460,7 +461,9 @@
    }
    public String getBeBatch$(){
        if (null == this.beBatch){ return null; }
        if (null == this.beBatch) {
            return null;
        }
        switch (this.beBatch){
            case 1:
                return "是";
@@ -472,7 +475,9 @@
    }
    public String getSource$(){
        if (null == this.source){ return null; }
        if (null == this.source) {
            return null;
        }
        switch (this.source){
            case 1:
                return "制造";
@@ -486,7 +491,9 @@
    }
    public String getInspect$(){
        if (null == this.inspect){ return null; }
        if (null == this.inspect) {
            return null;
        }
        switch (this.inspect){
            case 1:
                return "是";
@@ -498,7 +505,9 @@
    }
    public String getDanger$(){
        if (null == this.danger){ return null; }
        if (null == this.danger) {
            return null;
        }
        switch (this.danger){
            case 1:
                return "是";
@@ -510,7 +519,9 @@
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        if (null == this.status) {
            return null;
        }
        switch (this.status){
            case 1:
                return "正常";
@@ -585,6 +596,35 @@
        );
    }
    public boolean beSimilar(WrkDetl orderDetl) {
        return (
                this.orderNo.equals(orderDetl.getOrderNo())
                        && this.matnr.equals(orderDetl.getMatnr())
                        && this.batch.equals(orderDetl.getBatch())
                        && this.brand.equals(orderDetl.getBrand())
                        && this.standby1.equals(orderDetl.getStandby1())
                        && this.standby2.equals(orderDetl.getStandby2())
                        && this.standby3.equals(orderDetl.getStandby3())
                        && this.boxType1.equals(orderDetl.getBoxType1())
                        && this.boxType2.equals(orderDetl.getBoxType2())
                        && this.boxType3.equals(orderDetl.getBoxType3())
        );
    }
    public boolean beSimilarByWrkDetl(WrkDetl orderDetl) {
        return (
                this.orderNo.equals(orderDetl.getOrderNo())
                        && this.matnr.equals(orderDetl.getMatnr())
                        && this.brand.equals(orderDetl.getBrand())
                        && this.standby1.equals(orderDetl.getStandby1())
                        && this.standby2.equals(orderDetl.getStandby2())
                        && this.standby3.equals(orderDetl.getStandby3())
                        && this.boxType1.equals(orderDetl.getBoxType1())
                        && this.boxType2.equals(orderDetl.getBoxType2())
                        && this.boxType3.equals(orderDetl.getBoxType3())
        );
    }
    public String getStandby1$() {
        StoreTypeService service = SpringUtils.getBean(StoreTypeService.class);
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -188,7 +188,8 @@
            }
        }
        if (complete) {
            if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
            List<OrderDetl> old = orderDetlService.selectByOrderId(orderSou.getId());
            if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_no", order.getOrderNo()))) {
                throw new CoolException("重整出库订单【orderNo = " + order.getOrderNo() + "】明细失败");
            }
            List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(order.getOrderNo());
@@ -196,13 +197,27 @@
                OrderDetl orderDetl = new OrderDetl();
                orderDetl.sync(wrkDetl);
                orderDetl.setQty(wrkDetl.getAnfme());
                orderDetl.setOrderId(order.getId());
                orderDetl.setOrderNo(order.getOrderNo());
                orderDetl.setOrderId(orderSou.getId());
                orderDetl.setOrderNo(orderSou.getOrderNo());
                orderDetl.setStatus(1);
                orderDetl.setCreateTime(order.getCreateTime());
                orderDetl.setCreateBy(order.getCreateBy());
                orderDetl.setUpdateTime(order.getUpdateTime());
                orderDetl.setUpdateBy(order.getUpdateBy());
                orderDetl.setCreateTime(orderSou.getCreateTime());
                orderDetl.setCreateBy(orderSou.getCreateBy());
                orderDetl.setUpdateTime(orderSou.getUpdateTime());
                orderDetl.setUpdateBy(orderSou.getUpdateBy());
                orderDetl.setId(null);
                //先按照批次匹配,再按照无批次号批次,因为销售发货,批次号可能带,有可能不携带,所以就会有问题;而且考虑到一条订单里如果相同物料,一条带批次,一条不带批次,情况
                for (OrderDetl xxx : old) {
                    if (xxx.beSimilar(wrkDetl)) {
                        orderDetl.setRemark(xxx.getRemark());
                    }
                }
                if (Cools.isEmpty(orderDetl.getRemark())) {
                    for (OrderDetl xxx : old) {
                        if (xxx.beSimilarByWrkDetl(wrkDetl)) {
                            orderDetl.setRemark(xxx.getRemark());
                        }
                    }
                }
                if (!orderDetlService.insert(orderDetl)) {
                    throw new CoolException("重整出库订单【orderNo = " + order.getOrderNo() + "】明细失败");
                }
src/main/resources/mapper/asrs/WrkDetlMapper.xml
@@ -88,9 +88,16 @@
    </update>
    <select id="selectAndLogByOrderNo" resultMap="BaseResultMap">
        select * from asr_wrk_detl where order_no = #{orderNo} and io_type != 53
        select awd.*
        from asr_wrk_detl awd
                 left join asr_wrk_mast awm on awd.wrk_no = awm.wrk_no and awd.io_time = awm.io_time
        where order_no = #{orderNo}
        union
        select * from asr_wrk_detl_log where order_no = #{orderNo} and io_type != 53
        select distinct awdl.*
        from asr_wrk_detl_log awdl
                 left join asr_wrk_mast_log awml on awdl.wrk_no = awml.wrk_no and awdl.io_time = awml.io_time
        where awdl.order_no = #{orderNo}
          and (awml.manu_type is null or awml.manu_type != '手动取消')
    </select>
    <update id="updateInspect">