自动化立体仓库 - WMS系统
#
luxiaotao1123
2020-07-07 497660fe835e6eee3a11558c280133c405a8ec2c
#
5个文件已修改
74 ■■■■ 已修改文件
src/main/java/com/zy/asrs/task/WcsDispatcher.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WorkLogScheduler.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WorkMastScheduler.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WcsDispatcher.java
@@ -36,9 +36,9 @@
                try {
                    Thread.sleep(3000);
                    workMastHandler.start();
                    workLogHandler.start();
//                    workMastHandler.start();
//
//                    workLogHandler.start();
                } catch (Exception e) {
                    log.error("Exception", e);
src/main/java/com/zy/asrs/task/WorkLogScheduler.java
@@ -1,8 +1,10 @@
package com.zy.asrs.task;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.handler.WorkLogHandler;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -13,16 +15,22 @@
@Component
public class WorkLogScheduler {
    private static final Logger log = LoggerFactory.getLogger(WorkLogScheduler.class);
    @Autowired
    private WorkLogHandler workLogHandler;
    @Autowired
    private ConfigService configService;
    private WrkMastService wrkMastService;
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){
        ReturnT<Config> result = workLogHandler.start();
        WrkMast wrkMast = wrkMastService.selectToBeHistoryData();
        if (null == wrkMast) {
            return;
        }
        ReturnT<String> result = workLogHandler.start(wrkMast);
        if (!result.isSuccess()) {
            configService.insert(result.getContent());
            log.error("工作档[workNo={}]历史档处理失败", wrkMast.getWrkNo());
        }
    }
src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -3,9 +3,12 @@
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.handler.WorkMastHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import java.util.Date;
import java.util.List;
/**
@@ -13,6 +16,8 @@
 */
//@Component
public class WorkMastScheduler {
    private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
    @Autowired
    private WrkMastService wrkMastService;
@@ -26,10 +31,15 @@
            return;
        }
        for (WrkMast wrkMast : wrkMasts) {
            ReturnT<String> start = workMastHandler.start(wrkMast);
            ReturnT<String> returnT = workMastHandler.start(wrkMast);
            if (!returnT.isSuccess()) {
                wrkMast.setUpdMk("X");
                wrkMast.setErrorMemo(returnT.getMsg());
                wrkMast.setErrorTime(new Date());
                if (!wrkMastService.updateById(wrkMast)) {
                    log.error("工作档[workNo={}]标记待处理失败", wrkMast.getWrkNo());
                }
            }
        }
    }
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -9,7 +9,6 @@
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.ReturnT;
import com.zy.system.entity.Config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -19,7 +18,7 @@
 * Created by vincent on 2020/7/6
 */
@Service
public class WorkLogHandler extends AbstractHandler<Config> {
public class WorkLogHandler extends AbstractHandler<String> {
    @Autowired
    private WrkMastService wrkMastService;
@@ -30,14 +29,9 @@
    @Autowired
    private WrkDetlLogService wrkDetlLogService;
//    @Override
    @Transactional
    public ReturnT<Config> start() {
    public ReturnT<String> start(WrkMast wrkMast) {
        try {
            WrkMast wrkMast = wrkMastService.selectToBeHistoryData();
            if (null == wrkMast) {
                return SUCCESS;
            }
            // 保存工作主档历史档
            if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
                exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMast.getWrkNo());
@@ -57,15 +51,7 @@
        } catch (Exception e) {
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            // todo
            Config config = new Config(
                    "name",    // 名称[非空]
                    "code",    // 编码[非空]
                    "val",    // 对应值[非空]
                    (short)1,    // 类型[非空]
                    (short)1    // 状态[非空]
            );
            return FAIL.setMsg(e.getMessage()).setContent(config);
            return FAIL.setMsg(e.getMessage());
        }
        return SUCCESS;
    }
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -289,23 +289,23 @@
                    // 根据工作号,查询工作明细档
                    List<WrkDetl> wrkDetls101 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                    if (wrkDetls101.isEmpty()) {
                        exceptionHandle(""); // todo
                        exceptionHandle("全板出库 ===>> 工作明细档为空;[workNo={0}]", wrkMast.getWrkNo());
                    }
                    for (WrkDetl wrkDetl : wrkDetls101) {
                        // todo:luxiaotao 3)修改出库通知档 status ==> Y
                    }
                    // 删除工作档源库位的库存明细
                    if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
                        exceptionHandle(""); // todo
                        exceptionHandle("全板出库 ===>> 删除库存明细失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                    }
                    // 修改库位状态 R ===>> O
                    // 修改源库位状态 R ===>> O
                    if (locMast.getLocType().equals("R")) {
                        locMast.setLocType("O");
                        locMast.setBarcode("");
                        locMast.setModiTime(now);
                        locMast.setIoTime(now);
                        if (!locMastService.updateById(locMast)) {
                            exceptionHandle(""); // todo
                            exceptionHandle("全板出库 ===>> 修改源库位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                        }
                    }
                    break;
@@ -318,7 +318,7 @@
                        locMast.setModiTime(now);
                        locMast.setIoTime(now);
                        if (!locMastService.updateById(locMast)) {
                            exceptionHandle(""); // todo
                            exceptionHandle("空板出库 ===>> 修改源库位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                        }
                    }
                    break;
@@ -329,7 +329,7 @@
            wrkMast.setWrkSts(15L);
            wrkMast.setModiTime(now);
            if (!wrkMastService.updateById(wrkMast)) {
                exceptionHandle(""); // todo
                exceptionHandle("更新出库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
            }
        } catch (Exception e) {
            e.printStackTrace();