自动化立体仓库 - WMS系统
#
lsh
2024-01-11 e44239cb6516389b4dd4a63747df7bc82681660b
#
1个文件已添加
11个文件已修改
213 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/WrkDetlSingle.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMast.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMastSta.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMastStaLog.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/SingleMountUnstackingCompleteParam.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/ReportToDismantleTheStackScheduler.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/ReportToOKScheduler.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WorkLogScheduler.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/ReportToDismantleTheStackHandler.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WrkMastStaInItHandler.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkDetlSingle.java
@@ -3,6 +3,8 @@
import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableField;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.zy.common.utils.Synchro;
import org.springframework.format.annotation.DateTimeFormat;
import com.core.common.SpringUtils;
import com.zy.system.service.UserService;
@@ -459,5 +461,9 @@
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public void sync(Object source) {
        Synchro.Copy(source, this);
    }
}
src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -67,7 +67,7 @@
    /**
     * 徐工汉云拆垛标记  0: 未拆  1: 已拆  2:已处理可下一步(转历史档)
     * 徐工汉云拆垛标记  0: 初始 1、未拆已上报  2: 已拆  3:已处理可下一步(转历史档)
     */
    @ApiModelProperty(value= "")
    @TableField("sheet_no")
src/main/java/com/zy/asrs/entity/WrkMastSta.java
@@ -86,9 +86,9 @@
    private Date updateTime;
    /**
     * 类型 0:非空  1:空板
     * 类型 1:非空  2:空板
     */
    @ApiModelProperty(value = "类型 0:非空  1:空板")
    @ApiModelProperty(value = "类型 1:非空  2:空板")
    private Integer type;
    /**
src/main/java/com/zy/asrs/entity/WrkMastStaLog.java
@@ -5,6 +5,8 @@
import com.baomidou.mybatisplus.annotations.TableField;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.zy.common.utils.Synchro;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -174,5 +176,8 @@
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.bignTime);
    }
    public void sync(Object source) {
        Synchro.Copy(source, this);
    }
}
src/main/java/com/zy/asrs/entity/param/SingleMountUnstackingCompleteParam.java
@@ -1,7 +1,11 @@
package com.zy.asrs.entity.param;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.WrkMast;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/*
 *  Created by Monkey D. Luffy on 2023.07.19
@@ -9,14 +13,37 @@
@Data
public class SingleMountUnstackingCompleteParam {
    private String barcode;//    是    字符串    托盘码
    private String palletizingNo;//    是    字符串    拆垛位编号
    private String boxType;//    是    字符串    码垛木箱类型(同一托盘一种类型)
    private String palletizingNo;//    是    字符串    码垛木箱类型(同一托盘一种类型)
    private String createTime;//        是    字符串    创建时间
    private String uuid;//        是    字符串    时间戳
    private Integer staStart;//        是    字符串    起始站点(托盘所在站点)
    private Integer staEnd;//        是    字符串    目标站点(拆垛目的站点)
    private List<MatList> matLists;//        是    列表    拆垛剩余货物信息(可以为空)
    @Data
    public static class MatList{
        private String position;//        是    字符串    木箱码垛位置
        private boolean unstackingEnd;//    尾箱标识(最后一托为true,其他为false)
        private String boxNo;//        是    字符串    木箱编号(唯一字段,出库依据,出库时按照木箱编号出库)
    }
    public SingleMountUnstackingCompleteParam(){}
    public SingleMountUnstackingCompleteParam(WrkMast wrkMast,List<WrkDetl> wrkDetlList){
        Date now = new Date();
        this.barcode=wrkMast.getBarcode();
        this.boxType=wrkDetlList.get(0).getBrand();
        createTime=now.toString();
        uuid=String.valueOf(now.getTime());
        List<MatList> matLists=new ArrayList<>();
        for (WrkDetl wrkDetl:wrkDetlList){
            MatList matList = new MatList();
            matList.setBoxNo(wrkDetl.getBatch());
            matList.setPosition(wrkDetl.getOrigin());
            matList.setUnstackingEnd(false);
            matLists.add(matList);
        }
        this.matLists = matLists;
    }
}
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -891,9 +891,10 @@
        //判断param参数
        if (Cools.isEmpty(param.getBarcode())){
            throw new CoolException("参数:托盘码 barcode为空");
        }else if (Cools.isEmpty(param.getPalletizingNo())){
            throw new CoolException("参数:码垛位编号 palletizingNo为空");
        }
//        else if (Cools.isEmpty(param.getPalletizingNo())){
//            throw new CoolException("参数:码垛位编号 palletizingNo为空");
//        }
        WrkMast wrkMastMatrix = wrkMastService.selectByBarcode(param.getBarcode());
        if (Cools.isEmpty(wrkMastMatrix)){
            throw new CoolException("参数:托盘码查询工作档失败:"+param.getBarcode());
src/main/java/com/zy/asrs/task/ReportToDismantleTheStackScheduler.java
@@ -1,7 +1,7 @@
package com.zy.asrs.task;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.BarcodeUploadHandler;
import com.zy.asrs.task.handler.ReportToDismantleTheStackHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -14,13 +14,13 @@
public class ReportToDismantleTheStackScheduler {
    @Autowired
    private BarcodeUploadHandler barcodeUploadHandler;
    private ReportToDismantleTheStackHandler reportToDismantleTheStackHandler;
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){//条码上传中控
        int[] staNos =new int[]{216,220};
    private void execute(){//拆垛信息上传
        int[] staNos =new int[]{118,119,120,121};
        for (int staNo : staNos){
            ReturnT<String> result = barcodeUploadHandler.start(staNo);
            ReturnT<String> result = reportToDismantleTheStackHandler.start(staNo);
            if (result.getCode()==200){
                break;
            }
src/main/java/com/zy/asrs/task/ReportToOKScheduler.java
New file
@@ -0,0 +1,30 @@
package com.zy.asrs.task;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.ReportToDismantleTheStackHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
 * Created by Monkey D. Luffy on 2023.07.25
 * 徐工汉云..............以下.............上饶江铜.............拆垛完成信息处理
 */
@Component
public class ReportToOKScheduler {
    @Autowired
    private ReportToDismantleTheStackHandler reportToDismantleTheStackHandler;
//    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){//拆垛完成信息处理
        int[] staNos =new int[]{118,119,120,121};
        for (int staNo : staNos){
            ReturnT<String> result = reportToDismantleTheStackHandler.start(staNo);
            if (result.getCode()==200){
                break;
            }
        }
    }
}
src/main/java/com/zy/asrs/task/WorkLogScheduler.java
@@ -1,7 +1,11 @@
package com.zy.asrs.task;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.WrkMastSta;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.service.WrkMastStaService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.WorkLogHandler;
import lombok.extern.slf4j.Slf4j;
@@ -22,6 +26,8 @@
    private WorkLogHandler workLogHandler;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkMastStaService wrkMastStaService;
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){
@@ -37,4 +43,18 @@
        }
    }
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute2(){
        List<WrkMastSta> wrkMastStaList = wrkMastStaService.selectList(new EntityWrapper<WrkMastSta>().eq("wrk_sts", 3));
        if (Cools.isEmpty(wrkMastStaList) || wrkMastStaList.size()==0) {
            return;
        }
        for (WrkMastSta wrkMastSta : wrkMastStaList) {
            ReturnT<String> result = workLogHandler.start(wrkMastSta);
            if (!result.isSuccess()) {
                log.error("工作档[workNo={}]历史档处理失败", wrkMastSta.getWrkNo());
            }
        }
    }
}
src/main/java/com/zy/asrs/task/handler/ReportToDismantleTheStackHandler.java
@@ -5,8 +5,8 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.WaitPakin;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.SingleMountUnstackingCompleteParam;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
@@ -18,6 +18,8 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
 * Created by Monkey D. Luffy on 2023.07.25
 * 徐工汉云..............以下.............上饶江铜.............自动补空板
@@ -28,11 +30,11 @@
public class ReportToDismantleTheStackHandler extends AbstractHandler<String> {
    @Autowired
    private WaitPakinService waitPakinService;
    private WrkMastService wrkMastService;
    @Autowired
    private LocMastService locMastService;
    private WrkDetlSingleService wrkDetlSingleService;
    @Autowired
    private CommonService commonService;
    private WrkDetlService wrkDetlService;
    @Autowired
    private StaDescService staDescService;
    @Autowired
@@ -48,17 +50,42 @@
    public ReturnT<String> start(int staNo) {
        try {
            BasDevp basDevp = basDevpService.selectById(staNo);
            if (!Cools.isEmpty(basDevp) && !Cools.isEmpty(basDevp.getBarcode()) && basDevp.getWrkNo()==9992){ //上传前工作号跟电控约定为9992(你可以自定义)
                WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()));
                if (Cools.isEmpty(waitPakin)){
                    ReturnT<String> result = null;
                    result = postMesData(barcodeUploadpath,basDevp);
                    System.out.println(result);
                    if (result.getCode()==200){
                        return SUCCESS;
                    }else {
                        log.error("条码上传中控失败");
            if (!Cools.isEmpty(basDevp) && basDevp.getAutoing().equals("Y") && basDevp.getWrkNo()!=0){ //上传前工作号跟电控约定为9992(你可以自定义)
                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
                if (Cools.isEmpty(wrkMast) || !wrkMast.getSheetNo().equals("0")){
                    return SUCCESS;
                }
                List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
                if (Cools.isEmpty(wrkDetls) || wrkDetls.size()==0){
                    return SUCCESS;
                }
                SingleMountUnstackingCompleteParam singleMountUnstackingCompleteParam = new SingleMountUnstackingCompleteParam(wrkMast,wrkDetls);
                singleMountUnstackingCompleteParam.setStaStart(staNo);
                singleMountUnstackingCompleteParam.setStaEnd(staNo>119? 135:133);
                ReturnT<String> result = null;
                result = postMesData(barcodeUploadpath,singleMountUnstackingCompleteParam);
                System.out.println(result);
                if (true){
                    for (WrkDetl wrkDetl:wrkDetls){
                        WrkDetlSingle wrkDetlSingle = new WrkDetlSingle();
                        wrkDetlSingle.sync(wrkDetl);
                        wrkDetlSingleService.insert(wrkDetlSingle);
                    }
                    wrkMast.setSheetNo("1");
                    wrkMastService.updateById(wrkMast);
                    return SUCCESS;
                }
                if (result.getCode()==200){
                    for (WrkDetl wrkDetl:wrkDetls){
                        WrkDetlSingle wrkDetlSingle = new WrkDetlSingle();
                        wrkDetlSingle.sync(wrkDetl);
                        wrkDetlSingleService.insert(wrkDetlSingle);
                    }
                    wrkMast.setSheetNo("1");
                    wrkMastService.updateById(wrkMast);
                    return SUCCESS;
                }else {
                    log.error("条码上传中控失败");
                }
            }
        }catch (Exception e){
@@ -94,7 +121,7 @@
                try {
                    // 保存接口日志
                    apiLogService.save(
                            "上报erp系统",
                            "上报桁架系统",
                            erpUrl + erpPath,
                            null,
                            erpUrl,
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -2,9 +2,7 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.WaitPakin;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
@@ -38,6 +36,10 @@
    private WaitPakinLogService waitPakinLogService;
    @Autowired
    private OrderService orderService;
    @Autowired
    private WrkMastStaService wrkMastStaService;
    @Autowired
    private WrkMastStaLogService wrkMastStaLogService;
    @Transactional
    public ReturnT<String> start(WrkMast wrkMast) {
@@ -121,4 +123,26 @@
        return SUCCESS;
    }
    @Transactional
    public ReturnT<String> start(WrkMastSta wrkMastSta) {
        try {
            WrkMastStaLog wrkMastStaLog = new WrkMastStaLog();
            wrkMastStaLog.sync(wrkMastSta);
            // 保存工作主档历史档
            if (!wrkMastStaLogService.insert(wrkMastStaLog)) {
                exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMastSta.getWrkNo());
            }
            // 删除工作主档
            if (!wrkMastStaService.deleteById(wrkMastSta)) {
                exceptionHandle("删除工作主档[workNo={0}]失败", wrkMastSta.getWrkNo());
            }
        } catch (Exception e) {
            log.error("fail", e);
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return FAIL.setMsg(e.getMessage());
        }
        return SUCCESS;
    }
}
src/main/java/com/zy/asrs/task/handler/WrkMastStaInItHandler.java
@@ -33,6 +33,9 @@
    public ReturnT<String> start(WrkMast wrkMast,BasDevp basDevp,Integer type) {
        try {
            WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkMast.getWrkNo().longValue()));
            if (!Cools.isEmpty(wrkMastSta)){
                return SUCCESS;
            }
            switch (type){
                case 13://出  3:取放
                    if (Cools.isEmpty(wrkMastSta)){
@@ -48,14 +51,16 @@
                        wrkMastSta1.setType(fullKM(wrkMast)? 1:2);
                        wrkMastSta1.setWrkType(1);
                        wrkMastStaService.insert(wrkMastSta1);
                    }
                    };
                    break;
                case 22://2:放
                    if (Cools.isEmpty(wrkMastSta)){
                        WrkMastSta wrkMastSta1 = new WrkMastSta(wrkMast,new Date(),basDevp);
                        wrkMastSta1.setType(fullKM(wrkMast)? 1:2);
                        wrkMastSta1.setWrkType(5);
                        wrkMastStaService.insert(wrkMastSta1);
                    }
                    };
                    break;
//                case 23://3:取放
//                    if (Cools.isEmpty(wrkMastSta)){
//                        WrkMastSta wrkMastSta1 = new WrkMastSta(wrkMast,new Date(),basDevp);
@@ -64,14 +69,14 @@
//                        wrkMastStaService.insert(wrkMastSta1);
//                    }
                default:
                    return FAIL;
                    return SUCCESS;
            }
        }catch (Exception e){
            log.error("异常!!!"+e);
            return FAIL;
        }
        return FAIL;
        return SUCCESS;
    }
    public boolean fullKM(WrkMast wrkMast){