自动化立体仓库 - WMS系统
skyouc
2 天以前 a412fb692f1ff4a5b18e64ac1bdb5788fd55d4d0
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -6,10 +6,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.enums.LocStsType;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.BasStationServiceImpl;
import com.zy.asrs.service.impl.LocCacheServiceImpl;
import com.zy.asrs.service.impl.OrderPakinServiceImpl;
import com.zy.asrs.service.impl.TaskDetlServiceImpl;
import com.zy.asrs.service.impl.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import lombok.extern.slf4j.Slf4j;
@@ -58,6 +55,8 @@
    private BasStationServiceImpl basStationService;
    @Autowired
    private WorkService workService;
    @Autowired
    private LocAroundBindService locAroundBindService;
    public ReturnT<String> start(WrkMast wrkMast) {
        // 4.入库完成
@@ -98,6 +97,11 @@
                            return FAIL.setMsg("空板入库 ===>> 修改库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                        }
                    }
                    break;
                // 全板入库
                case 1:
@@ -115,7 +119,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(), wrkDetl.getBoxType3());
                        if (null != locDetl) {
@@ -129,7 +132,11 @@
                            locDetl = new LocDetl();
                            locDetl.sync(wrkDetl);
                            locDetl.setLocNo(wrkMast.getLocNo()); // 库位号
                            locDetl.setAnfme(wrkDetl.getAnfme()); // 数量
                            if (!Objects.isNull(wrkMast.getWrkCode())) {
                                locDetl.setAnfme(wrkDetl.getAnfme()); // 数量
                            } else {
                                locDetl.setAnfme(wrkDetl.getRealQty());
                            }
                            locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码
                            locDetl.setModiTime(now);
                            locDetl.setAppeTime(now);
@@ -444,6 +451,18 @@
            return FAIL.setMsg(e.getMessage());
        }
        /***/
        if (Objects.isNull(wrkMast.getWrkCode())) {
            LocMast lcmst = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
            lcmst.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
            if (!locMastService.updateById(lcmst)) {
                throw new CoolException("库位状态修改失败!!");
            }
        }
        return SUCCESS;
    }
@@ -489,7 +508,8 @@
    }
    private ReturnT<String> doOut(WrkMast wrkMast) {
    @Transactional(rollbackFor = Exception.class)
    public ReturnT<String> doOut(WrkMast wrkMast) {
        Date now = new Date();
        LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
        try {
@@ -507,7 +527,18 @@
                    if (!Objects.isNull(wrkMast.getWrkCode())) {
                        //TODO 移库
//                        workService.locMove(wrkMast.getSourceLocNo(), wrkMast.getLocNo(), wrkMast.getAppeUser());
                        movLoc(wrkMast);
                        //修改工位库态
                        LocAroundBind bLocNo = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", wrkMast.getLocNo()));
                        if (Objects.isNull(bLocNo)) {
                            throw new CoolException("数据错误, 目标工位不存在!!");
                        }
                        bLocNo.setLocType(LocStsType.LOC_STS_TYPE_F.type);
                        if (!locAroundBindService.updateById(bLocNo)) {
                            throw new CoolException("工位状态修改失败!!");
                        }
                    } else {
//                    // 出库确认信号位
//                    if (Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N")) {