自动化立体仓库 - WMS系统
#
luxiaotao1123
2022-12-09 04475829f3de5ae3e35fb72d3e96391bab3a084e
#
6个文件已修改
128 ■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OrderDetlService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/OrderDetlMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -33,4 +33,6 @@
    List<OrderDetl> selectRemainder(@Param("orderId") Long orderId);
    List<OrderDetl> selectByMatnr(@Param("matnr") String matnr);
}
src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -27,4 +27,7 @@
    boolean modifyStatus(Long orderId, Integer status);
    List<OrderDetl> selectRemainder(Long orderId);
    OrderDetl selectByMatnr(String matnr);
}
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -2,15 +2,17 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.Cools;
import com.zy.asrs.mapper.OrderDetlMapper;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.OrderDetlService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.common.Cools;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.mapper.OrderDetlMapper;
import com.zy.asrs.service.OrderDetlService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service("orderDetlService")
public class OrderDetlServiceImpl extends ServiceImpl<OrderDetlMapper, OrderDetl> implements OrderDetlService {
@@ -78,4 +80,18 @@
        return this.baseMapper.selectRemainder(orderId);
    }
    @Override
    public OrderDetl selectByMatnr(String matnr) {
        List<OrderDetl> orderDetls = this.baseMapper.selectByMatnr(matnr);
        if (!Cools.isEmpty(orderDetls)) {
            if (orderDetls.size() > 1) {
                log.error("{}条码同时存在多笔订单,请注意查看!", matnr);
            } else {
                return orderDetls.get(0);
            }
        }
        return null;
    }
}
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -48,7 +48,19 @@
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        // 入库完成上报
        if (docType.getPakin() == 1) {
            try {
                // erp 同步
                int state = 2;
                if (!erpService.updateStateForVoucher(order.getOrderNo(), state)) {
                    throw new CoolException(order.getOrderNo() + "订单修改State为"+state+"失败");
                } else {
                    erpService.updateTimeForVoucherDetail(order.getOrderNo());
                }
            } catch (Exception e) {
                log.error("fail", e);
                return FAIL.setMsg(e.getMessage());
            }
        }
        // 出库完成上报
        if (docType.getPakout() == 1) {
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -3,8 +3,8 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.WrkMast;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
@@ -38,13 +38,13 @@
    @Autowired
    private WrkDetlLogService wrkDetlLogService;
    @Autowired
    private WaitPakinService waitPakinService;
    @Autowired
    private WaitPakinLogService waitPakinLogService;
    @Autowired
    private OrderService orderService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private ErpService erpService;
    @Autowired
    private DocTypeService docTypeService;
    // update asr_wrk_mast set inv_wh = 'Y', ove_mk = 'Y' where wrk_no =
    @Transactional
@@ -67,37 +67,48 @@
            // 入库 --------------------------------------------------------------------------------
            if (wrkMast.getWrkSts() == 10) {
                // 搜索对应入库条码在erp数据库中的状态
                List<WrkDetl> wrkDetls0 = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
                for (WrkDetl wrkDetl : wrkDetls0) {
                    Goods goods = erpService.selectGoodsOne(wrkDetl.getMatnr());
                    if (!Cools.isEmpty(goods)) {
                        if (!erpService.updateStateAndLocForGoods(goods.getBarCode(), 3, wrkMast.getLocNo())) {
                            log.error("{}条码在erp数据库中更新失败!", goods.getBarCode());
                        }
                    } else {
                        log.error("{}条码不在erp数据库中!", wrkDetl.getMatnr());
                    }
                }
                // 全板入库
                if (wrkMast.getIoType() == 1) {
                    // 入库通知单
                    if (!Cools.isEmpty(wrkMast.getBarcode())) {
                        // 保存入库通知档历史档
                        if (!waitPakinLogService.save(wrkMast.getBarcode())) {
                            exceptionHandle("保存入库通知档历史档[workNo={0}]失败", wrkMast.getWrkNo());
                        }
                        // 删除入库通知档
//                        if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()))) {
//                            exceptionHandle("删除入库通知档[workNo={0}]失败", wrkMast.getWrkNo());
//                        }
                    }
                    // 手动入库生成单据 【 上报三方平台 】
                    // 【 上报三方平台 】
                    if (!Cools.isEmpty(wrkDetls)) {
                        if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) {
                            exceptionHandle("生成手动入库单据[workNo={0}]失败", wrkMast.getWrkNo());
                        for (WrkDetl wrkDetl : wrkDetls) {
                            // Goods 表
                            Goods goods = erpService.selectGoodsOne(wrkDetl.getMatnr());
                            if (!Cools.isEmpty(goods)) {
                                if (!erpService.updateStateAndLocForGoods(goods.getBarCode(), 3, wrkMast.getLocNo())) {
                                    log.error("{}条码在erp数据库中更新失败!", goods.getBarCode());
                                }
                            } else {
                                log.error("{}条码不在erp数据库中!", wrkDetl.getMatnr());
                            }
                            // OrderDetl 表
                            OrderDetl orderDetl = orderDetlService.selectByMatnr(wrkDetl.getMatnr());
                            if (!Cools.isEmpty(orderDetl)) {
                                Order order = orderService.selectById(orderDetl.getOrderId());
                                DocType docType = docTypeService.selectById(order.getDocType());
                                if (docType.getPakin() == 1) {
                                    if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), wrkDetl.getAnfme())) {
                                        log.error("{}编号订单,更新{}条码数量失败", orderDetl.getOrderNo(), orderDetl.getMatnr());
                                    }
                                }
                                // Order 表
                                if (order.getSettle() < 3L) {
                                    List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
                                    boolean complete = true;
                                    for (OrderDetl detl : orderDetls) {
                                        if (detl.getAnfme() > detl.getQty()) {
                                            complete = false;
                                            break;
                                        }
                                    }
                                    if (complete) {
                                        if (!orderService.updateSettle(order.getId(), 4L, null)) {
                                            throw new CoolException("修改订单【orderNo = " + order.getOrderNo() + "】状态为已完成失败");
                                        }
                                    }
                                }
                            }
                        }
                    }
                    // 拣料再入库
src/main/resources/mapper/OrderDetlMapper.xml
@@ -190,4 +190,12 @@
        and order_id = #{orderId}
    </select>
    <select id="selectByMatnr" resultMap="BaseResultMap">
        select
        *
        from man_order_detl
        where 1=1
        and matnr = #{matnr}
    </select>
</mapper>