自动化立体仓库 - WMS系统
#
luxiaotao1123
2022-03-29 b539f99fca278df53d53c54b7567e6685b8cf8ca
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -6,6 +6,7 @@
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.VersionUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -17,6 +18,7 @@
/**
 * Created by vincent on 2020/7/4
 */
@Slf4j
@Service
@Transactional
public class WorkMastHandler extends AbstractHandler<String> {
@@ -50,6 +52,7 @@
            if (null == locMast) {
                exceptionHandle("工作档[workNo={0}]库位号错误[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
            }
            assert locMast != null;
            switch (wrkMast.getIoType()) {
                // 空板入库
                case 10:
@@ -77,32 +80,38 @@
                    }
                    // 遍历工作明细,更新库存明细和入库通知档
                    for (WrkDetl wrkDetl : wrkDetls) {
                        LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()).eq("matnr", wrkDetl.getMatnr()));
                        LocDetl locDetl = locDetlService.selectItem(wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                        if (null != locDetl) {
                            boolean res = locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr());
                            if (!res) {
                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr())) {
                                exceptionHandle("全板入库 ===>> 更新库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                            }
                        } else {
                            locDetl = new LocDetl();
                            locDetl.setLocNo(wrkMast.getLocNo()); // 库位号
                            VersionUtils.setLocDetl(locDetl, wrkDetl); // 版本控制
                            locDetl.setAnfme(wrkDetl.getAnfme()); // 数量
                            locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码
                            locDetl.setModiTime(now);
                            locDetl.setAppeTime(now);
                            if (!locDetlService.insert(locDetl)) {
                                exceptionHandle("全板入库 ===>> 添加库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                            }
                        }
                        // 更新入库通知档 status ===>> Y
                        WaitPakin setParam = new WaitPakin();
                        setParam.setStatus("Y");
                        boolean updateRes = waitPakinService.update(setParam
                                , new EntityWrapper<WaitPakin>().eq("barcode", wrkDetl.getZpallet())
                                        .eq("matnr", wrkDetl.getMatnr())
                                        .eq("anfme", wrkDetl.getAnfme()));
                        if (!updateRes && updateRes) {
                            exceptionHandle("全板入库 ===>> 更新入库通知档失败;[workNo={0}]", wrkMast.getWrkNo());
                        }
                        // 更新入库通知档 ioStatus ===>> Y
                        try {
                            WaitPakin setParam = new WaitPakin();
                            setParam.setIoStatus("Y");
                            boolean updateRes = waitPakinService.update(setParam
                                    , new EntityWrapper<WaitPakin>().eq("zpallet", wrkDetl.getZpallet())
                                            .eq("matnr", wrkDetl.getMatnr())
                                            .eq("anfme", wrkDetl.getAnfme()));
                            if (!updateRes && updateRes) {
                                exceptionHandle("全板入库 ===>> 更新入库通知档失败;[workNo={0}]", wrkMast.getWrkNo());
                            }
                        } catch (Exception ignore){}
                    }
                    // 修改库位状态 S ====>> F
                    if (locMast.getLocSts().equals("S")) {
@@ -161,6 +170,8 @@
                            locDetl = new LocDetl();
                            locDetl.setLocNo(wrkMast.getLocNo()); // 库位号
                            VersionUtils.setLocDetl(locDetl, wrkDetl); // 版本控制
                            locDetl.setAnfme(wrkDetl.getAnfme()); // 数量
                            locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码
                            locDetl.setModiTime(now);
                            locDetl.setAppeTime(now);
                            if (!locDetlService.insert(locDetl)) {
@@ -242,6 +253,7 @@
                exceptionHandle("更新入库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
            }
        } catch (Exception e) {
            log.error("fail", e);
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return FAIL.setMsg(e.getMessage());
@@ -256,6 +268,7 @@
            if (null == locMast) {
                exceptionHandle("工作档[workNo={0}]库位号错误[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
            }
            assert locMast != null;
            switch (wrkMast.getIoType()) {
                // 全板出库
                case 101:
@@ -305,6 +318,7 @@
                exceptionHandle("更新出库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
            }
        } catch (Exception e) {
            log.error("fail", e);
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return FAIL.setMsg(e.getMessage());