自动化立体仓库 - WMS系统
skyouc
1 天以前 8575002e3bce8a6d16633d5c1a4eed99ccf638ce
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -4,7 +4,9 @@
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.enums.LocAreaType;
import com.zy.asrs.enums.LocStsType;
import com.zy.asrs.enums.TaskIOType;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.*;
import com.zy.asrs.task.AbstractHandler;
@@ -60,6 +62,8 @@
    private WaitPakinLogService waitPakinLogService;
    @Autowired
    private BasStationDetlService basStationDetlService;
    @Autowired
    private BasAreasService basAreasService;
    public ReturnT<String> start(WrkMast wrkMast) {
        // 4.入库完成
@@ -75,6 +79,12 @@
    public ReturnT<String> doIn(WrkMast wrkMast) {
        Date now = new Date();
        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
        BasAreas basAreas = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("whs_type_id", LocAreaType.LOC_AREA_TYPE_CRN.type));
        if (Objects.isNull(basAreas)) {
            throw new CoolException("数据错误:库区不存在!!");
        }
        locMast.setAreaId(basAreas.getId());
        locMast.setAreaName(basAreas.getName());
        try {
            if (null == locMast) {
                // exceptionHandle("工作档[workNo={0}]库位号错误[locNo={1}]", wrkMast.getWrkNo(),
@@ -122,7 +132,6 @@
                    }
                    // 遍历工作明细,更新库存明细和入库通知档
                    for (WrkDetl wrkDetl : wrkDetls) {
                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(),
                                wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(),
                                wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(),
@@ -233,6 +242,8 @@
                            locDetl.sync(wrkDetl);
                            locDetl.setLocNo(wrkMast.getLocNo()); // 库位号
                            locDetl.setAnfme(wrkDetl.getAnfme()); // 数量
                            locDetl.setAreaId(locMast.getAreaId());
                            locMast.setAreaName(locMast.getAreaName());
                            locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码
                            locDetl.setModiTime(now);
                            locDetl.setAppeTime(now);
@@ -345,7 +356,6 @@
                    }
                    // 修改库存明细数量,如无库存,曾新增
                    for (WrkDetl wrkDetl : wrkDetls54) {
                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(),
                                wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(),
                                wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(),
@@ -366,6 +376,8 @@
                            locDetl.sync(wrkDetl);
                            locDetl.setLocNo(wrkMast.getLocNo()); // 库位号
                            locDetl.setAnfme(wrkDetl.getAnfme()); // 数量
                            locDetl.setAreaId(locMast.getAreaId());
                            locMast.setAreaName(locMast.getAreaName());
                            locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码
                            locDetl.setModiTime(now);
                            locDetl.setAppeTime(now);
@@ -413,6 +425,28 @@
                                    + wrkMast.getLocNo() + "]");
                        }
                    }
                    String agvSta = null;
                    if (wrkMast.getIoType() == TaskIOType.MERGE_OUT.type) {
                        agvSta = wrkMast.getPauseMk();
                    }
                    // . 删除缓存站点明细
                    if (!Objects.isNull(agvSta)) {
                        // 修改目标站点信息
                        BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", agvSta));
                        if (Objects.isNull(station)) {
                            throw new CoolException("站点不存在!!");
                        }
                        basStationDetlService.delete(new EntityWrapper<BasStationDetl>().eq("dev_no", station.getDevNo()));
                        station.setLocSts(LocStsType.LOC_STS_TYPE_D.type);
                        if (!basStationService.updateById(station)) {
                            throw new CoolException("站点状态更新失败!!");
                        }
                    }
                    break;
                // 盘点入库
                case 57:
@@ -883,6 +917,33 @@
                if (!locDetlService.insert(detl)) {
                    throw new CoolException("库位明细保存失败!!");
                }
                // 更新订单完成数量
                OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(pakin.getOrderNo(),
                        pakin.getMatnr(), pakin.getBatch(), pakin.getBrand(), pakin.getStandby1(),
                        pakin.getStandby2(), pakin.getStandby3(),
                        pakin.getBoxType1(), pakin.getBoxType2(), pakin.getBoxType3());
                if (orderDetlPakin == null) {
                    orderDetlPakin = orderDetlPakinService.selectItem(pakin.getOrderNo(), pakin.getMatnr(),
                            pakin.getBatch(),
                            pakin.getBrand(), pakin.getStandby1(), pakin.getStandby2(),
                            pakin.getStandby3(),
                            pakin.getBoxType1(), pakin.getBoxType2(), pakin.getBoxType3());
                }
                try {
                    if (!Cools.isEmpty(orderDetlPakin)) {
                        if (!orderDetlPakinService.increaseQtyByOrderNo(pakin.getOrderNo(),
                                pakin.getMatnr(),
                                orderDetlPakin.getBatch(), pakin.getBrand(), pakin.getStandby1(),
                                pakin.getStandby2(), pakin.getStandby3(),
                                pakin.getBoxType1(), pakin.getBoxType2(), pakin.getBoxType3(),
                                pakin.getAnfme())) {
                            throw new CoolException("AGV全板入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo()
                                    + "],[locNo=" + wrkMast.getLocNo() + "]");
                        }
                    }
                } catch (Exception ignore) {
                }
            });
            locCache.setLocSts(LocStsType.LOC_STS_TYPE_F.type);