自动化立体仓库 - WMS系统
#
luxiaotao1123
2020-07-07 ab2b8ef5df5edf24cf158dbcfc1a43b0629d644e
#
4个文件已修改
4个文件已添加
1个文件已删除
232 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/task/AbstractHandler.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AsrsException.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/ReturnT.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/TestScheduler.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WcsDispatcher.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WorkLogScheduler.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WorkMastScheduler.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AbstractHandler.java
@@ -1,21 +1,17 @@
package com.zy.asrs.task;
import com.core.exception.CoolException;
/**
 * Created by vincent on 2020/7/4
 */
public abstract class AbstractHandler {
public abstract class AbstractHandler<T> {
    public void run(){
        boolean start = start();
        System.out.println(start);
    }
    public final ReturnT<T> SUCCESS = new ReturnT<>(200, null);
    public final ReturnT<T> FAIL = new ReturnT<>(500, null);
    protected abstract boolean start();
    protected abstract ReturnT<T> start();
    protected void exceptionHandle(String errorMsg){
        throw new CoolException("231");
        throw new AsrsException(errorMsg);
    }
}
src/main/java/com/zy/asrs/task/AsrsException.java
New file
@@ -0,0 +1,16 @@
package com.zy.asrs.task;
/**
 * Created by vincent on 2020/7/7
 */
public class AsrsException extends RuntimeException {
    public AsrsException(Throwable e) {
        super(e);
    }
    public AsrsException(String message) {
        super(message);
    }
}
src/main/java/com/zy/asrs/task/ReturnT.java
New file
@@ -0,0 +1,65 @@
package com.zy.asrs.task;
import java.io.Serializable;
/**
 * Created by vincent on 2020/7/7
 */
public class ReturnT<T> implements Serializable {
    public static final long serialVersionUID = 42L;
    public static final int SUCCESS_CODE = 200;
    public static final int FAIL_CODE = 500;
    private int code;
    private String msg;
    private T content;
    public ReturnT() {
    }
    public ReturnT(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    public ReturnT(T content) {
        this.code = 200;
        this.content = content;
    }
    public boolean isSuccess(){
        return this.code == 200;
    }
    public int getCode() {
        return this.code;
    }
    public ReturnT<T> setCode(int code) {
        this.code = code;
        return this;
    }
    public String getMsg() {
        return this.msg;
    }
    public ReturnT<T> setMsg(String msg) {
        this.msg = msg;
        return this;
    }
    public T getContent() {
        return this.content;
    }
    public ReturnT<T> setContent(T content) {
        this.content = content;
        return this;
    }
    public String toString() {
        return "ReturnT [code=" + this.code + ", msg=" + this.msg + ", content=" + this.content + "]";
    }
}
src/main/java/com/zy/asrs/task/TestScheduler.java
File was deleted
src/main/java/com/zy/asrs/task/WcsDispatcher.java
@@ -2,21 +2,21 @@
import com.zy.asrs.task.handler.WorkLogHandler;
import com.zy.asrs.task.handler.WorkMastHandler;
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.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
/**
 * 单线程模式  ( 已弃用 )
 * 任务中心调度器
 * Created by vincent on 2020/7/4
 */
@Component
//@Component
@Deprecated
public class WcsDispatcher {
    private static final Logger log = LoggerFactory.getLogger(WcsDispatcher.class);
@@ -36,19 +36,9 @@
                try {
                    Thread.sleep(3000);
//                    workMastHandler.start();
                    workMastHandler.start();
                    if(!workLogHandler.start()) {
                        Config config = new Config(
                                "name",    // 名称[非空]
                                "code",    // 编码[非空]
                                "val",    // 对应值[非空]
                                (short)1,    // 类型[非空]
                                (short)1    // 状态[非空]
                        );
                        boolean insert = configService.insert(config);
                        System.out.println(insert);
                    }
                    workLogHandler.start();
                } catch (Exception e) {
                    log.error("Exception", e);
src/main/java/com/zy/asrs/task/WorkLogScheduler.java
New file
@@ -0,0 +1,29 @@
package com.zy.asrs.task;
import com.zy.asrs.task.handler.WorkLogHandler;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
 * Created by vincent on 2020/7/7
 */
@Component
public class WorkLogScheduler {
    @Autowired
    private WorkLogHandler workLogHandler;
    @Autowired
    private ConfigService configService;
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){
        ReturnT<Config> result = workLogHandler.start();
        if (!result.isSuccess()) {
            configService.insert(result.getContent());
        }
    }
}
src/main/java/com/zy/asrs/task/WorkMastScheduler.java
New file
@@ -0,0 +1,21 @@
package com.zy.asrs.task;
import com.zy.asrs.task.handler.WorkMastHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
/**
 * Created by vincent on 2020/7/7
 */
//@Component
public class WorkMastScheduler {
    @Autowired
    private WorkMastHandler workMastHandler;
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){
        workMastHandler.start();
    }
}
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -8,6 +8,8 @@
import com.zy.asrs.service.WrkMastLogService;
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;
@@ -17,7 +19,7 @@
 * Created by vincent on 2020/7/6
 */
@Service
public class WorkLogHandler extends AbstractHandler {
public class WorkLogHandler extends AbstractHandler<Config> {
    @Autowired
    private WrkMastService wrkMastService;
@@ -30,19 +32,19 @@
    @Override
    @Transactional
    public boolean start() {
    public ReturnT<Config> start() {
        try {
            WrkMast wrkMast = wrkMastService.selectToBeHistoryData();
            if (null == wrkMast) {
                return true;
                return SUCCESS;
            }
            // 保存工作主档历史档
            if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
                exceptionHandle(""); // todo
            }
            // 删除工作主档
            if (wrkMastService.deleteById(wrkMast)) {
                exceptionHandle(""); // todo
            if (!wrkMastService.deleteById(wrkMast)) {
                exceptionHandle("1111"); // todo
            }
            // 保存工作明细档历史档
            if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
@@ -55,9 +57,16 @@
        } catch (Exception e) {
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return false;
            Config config = new Config(
                    "name",    // 名称[非空]
                    "code",    // 编码[非空]
                    "val",    // 对应值[非空]
                    (short)1,    // 类型[非空]
                    (short)1    // 状态[非空]
            );
            return FAIL.setMsg(e.getMessage()).setContent(config);
        }
        return true;
        return SUCCESS;
    }
}
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -4,6 +4,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.ReturnT;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -16,7 +17,7 @@
 */
@Service
@Transactional
public class WorkMastHandler extends AbstractHandler {
public class WorkMastHandler extends AbstractHandler<String> {
    @Autowired
    private WrkMastService wrkMastService;
@@ -29,10 +30,10 @@
    @Autowired
    private WaitPakinService waitPakinService;
    public boolean start() {
    public ReturnT<String> start() {
        List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData();
        if (wrkMasts.isEmpty()) {
            return true;
            return SUCCESS;
        }
        for (WrkMast wrkMast : wrkMasts) {
            // 4.入库完成
@@ -43,7 +44,7 @@
                doOut(wrkMast);
            }
        }
        return true;
        return SUCCESS;
    }
    private void doIn(WrkMast wrkMast){