自动化立体仓库 - WMS系统
#
zwl
9 天以前 7a79eaa785da277289ccdce588206a349e5fac6e
#
5个文件已添加
8个文件已修改
9个文件已删除
1628 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WaitPakin.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMast.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/MesToCombParam.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/OutTaskParam.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/StationParam.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OpenService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/ArmRulesScheduler.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AutomaticallyIssueWCSTasksScheduler.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WorkLogScheduler.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WrkMastAgvScheduler.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java 313 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WrkMastStaLogScheduler.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/ArmRulesHandler.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderToLineHandler.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WrkMastAgvHandler.java 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WrkMastStaInItHandler.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WrkMastStaLogHandler.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -3,12 +3,19 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.AppAuth;
import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.OpenService;
import com.zy.asrs.service.WaitPakinService;
import com.zy.asrs.service.WrkDetlService;
import com.zy.common.model.DetlDto;
import com.zy.common.model.LocDetlDto;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -35,6 +42,12 @@
    @Autowired
    private OpenService openService;
    @Autowired
    private LocDetlService locDetlService;
    @Autowired
    private WaitPakinService waitPakinService;
    @Autowired
    private WrkDetlService wrkDetlService;
//    @PostMapping("/order/matSync/default/v1")
////    @AppAuth(memo = "商品信息同步接口")
@@ -398,14 +411,17 @@
    public synchronized R syncMatInfoV2(@RequestBody(required = false) List<MatSyncParam.MatParam> param){
        System.out.println(param);
//        if (Cools.isEmpty(param)) {
//            return R.parse(BaseRes.PARAM);
//        }
//        MatSyncParam matSyncParam = new MatSyncParam();
//        List<MatSyncParam.MatParam> objects = new ArrayList<>();
//        objects.add(param);
//        matSyncParam.matDetails = objects;
//        openService.syncMat(matSyncParam);
        if (Cools.isEmpty(param)) {
            return R.parse(BaseRes.PARAM);
        }
        MatSyncParam matSyncParam = new MatSyncParam();
        List<MatSyncParam.MatParam> objects = new ArrayList<>();
        for (MatSyncParam.MatParam matParam : param) {
            objects.add(matParam);
        }
        matSyncParam.matDetails = objects;
        openService.syncMat(matSyncParam);
        return R.ok();
    }
@@ -419,41 +435,7 @@
     */
    @PostMapping("/station/all")
    public synchronized R stationAll(){
        List<LinkedHashMap<String,Object>> list =new ArrayList<>();
        LinkedHashMap<String,Object> map = new LinkedHashMap<>();
        map.put("stationId","101");
        map.put("stationType","3");
        map.put("stationName","101");
        list.add(map);
        System.out.println();
//        try {
//            //获取Cookie值
//            HashMap<String, Object> headers = new HashMap<>();
//            headers.put("accesstoken", erpSecret.getAccessToken());
//            headers.put("x-acgw-identity", xAcfwIdentity);  // 自定义请求头
//            response = new HttpHandler.Builder()
//                    .setHeaders(headers)
//                    .setUri(URL)
//                    .setPath(path)
//                    .setJson(add)
//                    .build()
//                    .doPost();
//            JSONObject jsonResponse = JSON.parseObject(response);
//            if (jsonResponse.getString("errorCode").equals("401")) {
//
//            }
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//        if (Cools.isEmpty(param)) {
//            return R.parse(BaseRes.PARAM);
//        }
//        MatSyncParam matSyncParam = new MatSyncParam();
//        List<MatSyncParam.MatParam> objects = new ArrayList<>();
//        objects.add(param);
//        matSyncParam.matDetails = objects;
//        openService.syncMat(matSyncParam);
        return R.ok().add(list);
        return openService.stationAll();
    }
    /**
@@ -461,16 +443,32 @@
     * return
     */
    @PostMapping("/comb/auth")
    public synchronized R comb(@RequestBody ArrayList<HashMap<String,Object>> param){
        System.out.println(param);
//        if (Cools.isEmpty(param)) {
//            return R.parse(BaseRes.PARAM);
    public synchronized R comb(@RequestBody ArrayList<MesToCombParam> param){
        for (MesToCombParam mesToCombParam : param) {
            // 判断是否有相同条码的数据
            if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
                    eq("zpallet", mesToCombParam.getPalletId()).eq("io_status", "N")) > 0) {
                return R.error(mesToCombParam.getPalletId()+"-该托盘码已经存在组托档中");
            }
            if (mesToCombParam.getPalletId().length() != 8) {
                return R.error(mesToCombParam.getPalletId()+"-该托盘码不为8位");
            }
//        if (param.getCombMats().size()>1){
//            throw new CoolException("不允许混料===>>" + param.getBarcode());
//        }
//        MatSyncParam matSyncParam = new MatSyncParam();
//        List<MatSyncParam.MatParam> objects = new ArrayList<>();
//        objects.add(param);
//        matSyncParam.matDetails = objects;
//        openService.syncMat(matSyncParam);
            int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", mesToCombParam.getPalletId()));
            int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", mesToCombParam.getPalletId()));
//        int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getPalletId()));
            if (countLoc > 0 || countWrk > 0) {
                return R.error(mesToCombParam.getPalletId()+"-工作档/库存条码数据已存在");
            }
        }
        for (MesToCombParam mesToCombParam : param) {
            openService.mesToComb(mesToCombParam);
        }
        return R.ok();
    }
@@ -479,8 +477,10 @@
     */
    @PostMapping("/outOrder")
    public synchronized R outOrder (@RequestBody ArrayList<HashMap<String,Object>> param){
        System.out.println(param);
    public synchronized R outOrder (@RequestBody ArrayList<OutTaskParam> params){
        for (OutTaskParam outTaskParam : params) {
            openService.outOrder(outTaskParam);
        }
        return R.ok();
    }
src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -44,6 +44,12 @@
    @TableField("order_no")
    private String orderNo;
    @ApiModelProperty(value= "建议入库区域:堆垛机号")
    private String origin;
    @ApiModelProperty(value= "库位编码,若有,则存储到指定库位。为后续分区预留")
    private String manu;
    @ApiModelProperty(value= "规格")
    private String specs;
@@ -70,12 +76,6 @@
    @ApiModelProperty(value= "条码")
    private String barcode;
    @ApiModelProperty(value= "产地")
    private String origin;
    @ApiModelProperty(value= "厂家")
    private String manu;
    @ApiModelProperty(value= "生产日期")
    @TableField("manu_date")
src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -112,6 +112,14 @@
    @TableField("loc_sts")
    private String locSts;
    @ApiModelProperty(value= "订单号")
    @TableField("user_no")
    private String userNo;
    @ApiModelProperty(value= "出库顺序")
    @TableField("plt_type")
    private Integer pltType;
    /**
     * 拣料
     */
@@ -137,9 +145,6 @@
    @TableField("exit_mk")
    private String exitMk;
    @ApiModelProperty(value= "")
    @TableField("plt_type")
    private Integer pltType;
    /**
     * 空板
@@ -169,10 +174,6 @@
    @ApiModelProperty(value= "")
    @TableField("mtn_type")
    private Double mtnType;
    @ApiModelProperty(value= "")
    @TableField("user_no")
    private String userNo;
    /**
     * 堆垛机启动时间
src/main/java/com/zy/asrs/entity/param/MesToCombParam.java
New file
@@ -0,0 +1,32 @@
package com.zy.asrs.entity.param;
import io.swagger.models.auth.In;
import lombok.Data;
@Data
public class MesToCombParam {
    //托盘编码
    private String palletId;
    //物料编号
    private String matnr;
    //入库数量
    private Double anfme;
    //进仓编号
    private String entryWmsCode;
    //po单号
    private String orderId;
    //批号
    private String batchId;
    //货物状态,枚举:0 正常;1 异常;
    private Integer status;
    //是否满板,0 空板;1 满板;2 半板;
    private Integer full;
    //建议入库区域,枚举,1 A库;2 B库;3 C库;或某个巷道;
    private String storageArea;
    //库位编码,若有,则存储到指定库位。为后续分区预留
    private String locId;
    //操作类型,1 组托;2 组托解绑;
    private Integer operateType;
    //唯一码
    private String BizNo;
}
src/main/java/com/zy/asrs/entity/param/OutTaskParam.java
New file
@@ -0,0 +1,21 @@
package com.zy.asrs.entity.param;
import lombok.Data;
@Data
public class OutTaskParam {
    //出库顺序,从1开始
    private Integer seq;
    //托盘编码
    private String palletId;
    //出库口编码
    private String stationId;
    //物料编码
    private String matnr;
    //入库数量
    private double anfme;
    //进仓编号
    private String entryWmsCode;
    //出库单号
    private String orderId;
}
src/main/java/com/zy/asrs/entity/param/StationParam.java
New file
@@ -0,0 +1,15 @@
package com.zy.asrs.entity.param;
import lombok.Data;
@Data
public class StationParam {
    //站点编号
    private String stationId;
    //站点进出类型
    private String stationType;
    //站点名称
    private String stationName;
    //操作类型:1 新增;2 修改;3 禁用;4 反禁用;
    private Integer operateType;
}
src/main/java/com/zy/asrs/service/OpenService.java
@@ -1,5 +1,6 @@
package com.zy.asrs.service;
import com.core.common.R;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.result.OpenOrderCompeteResult;
@@ -60,4 +61,19 @@
    boolean agvBindAndBin(String taskNo);
    boolean taskArmOrderResult(OrderArmEndParam param);
    List<PickWrkDetlListParam> getPickList(PdaPickListParam param);
    /**
     * 输出所有入库站和出库站站点
     * @return
     */
    R stationAll ();
    /**
     * mes发组托档给到wms
     */
    R mesToComb(MesToCombParam param);
    /**
     *
     */
    R outOrder(OutTaskParam  param);
}
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -3,10 +3,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.SnowflakeIdWorker;
import com.core.common.SpringUtils;
import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
@@ -21,20 +18,20 @@
import com.zy.common.constant.AgvConstant;
import com.zy.common.constant.ArmConstant;
import com.zy.common.model.DetlDto;
import com.zy.common.model.LocDetlDto;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.common.utils.NodeUtils;
import com.zy.erp.kingdee.utils.PostMesDataUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.rmi.CORBA.Util;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
/**
 * Created by vincent on 2022/4/9
@@ -79,6 +76,19 @@
    private LocMastServiceImpl locMastService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private BasDevpServiceImpl basDevpService;
    @Autowired
    private StaDescServiceImpl staDescService;
    @Value("${mes.url}")
    private String mesUrl;
    @Value("${mes.stationaddress}")
    private String stationAddress;
    @Autowired
    private WaitPakinService waitPakinService;
    @Autowired
    private WrkMastService wrkMastService;
    @Override
    @Transactional
    public void pakinOrderCreate(OpenOrderPakinParam param) {
@@ -914,6 +924,7 @@
            throw new CoolException("未能绑定");
        }
    }
    @Override
    @Transactional
    public List<PickWrkDetlListParam> getPickList(PdaPickListParam param) {
@@ -952,6 +963,7 @@
        return result;
    }
    @Override
    @Transactional
@@ -1043,11 +1055,10 @@
            } catch (Exception e) {
                throw new CoolException(e.getMessage());
            }
        } else {}
        } else {
        }
        return true;
    }
    @Override
@@ -1124,7 +1135,8 @@
                agvBindCtnrAndBinTwoParam.setReqCode(String.valueOf(snowflakeIdWorker.nextId()));
                agvBindCtnrAndBinTwoParam.setPodcode(basAgvMast.getBarcode());
                agvBindCtnrAndBinTwoParam.setPositionCode(basAgvMast.getStaNo().toString());
                agvBindCtnrAndBinTwoParam.setIndBind("0");;
                agvBindCtnrAndBinTwoParam.setIndBind("0");
                ;
                ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV容器解绑",
                        AgvConstant.AGV_URL+"/"+AgvConstant.AGV_hikRpcService,AgvConstant.getAGVADAPTOR(2), agvBindCtnrAndBinTwoParam);
                if (resultBind.getCode()!=1){
@@ -1138,6 +1150,176 @@
    }
    @Override
    @Transactional
    public R stationAll() {
        List<StationParam> stationParams = new ArrayList<>();
        List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<BasDevp>());
        for (BasDevp basDevp : basDevps) {
            StationParam stationParam = new StationParam();
            Boolean boo1 = false;
            Boolean boo2 = false;
            StaDesc staDescIn = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("stn_no", basDevp.getDevNo()).eq("type_no", 1));
            if (!Cools.isEmpty(staDescIn)) {
                stationParam.setStationId(basDevp.getDevNo() + "");
                stationParam.setStationType("1");
                stationParam.setStationName(basDevp.getDevNo() + "");
                stationParam.setOperateType(1);
                boo1 = true;
            }
            StaDesc staDescOut = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("stn_no", basDevp.getDevNo()).eq("type_no", 101));
            if (!Cools.isEmpty(staDescOut)) {
                stationParam.setStationId(basDevp.getDevNo() + "");
                stationParam.setStationType("1");
                stationParam.setStationName(basDevp.getDevNo() + "");
                stationParam.setOperateType(2);
                if (boo1) {
                    stationParam.setOperateType(3);
                }
                boo2 = true;
            }
            if (boo1 || boo2) {
                stationParams.add(stationParam);
            }
        }
        String response = "";
        try {
            //获取Cookie值
            HashMap<String, Object> headers = new HashMap<>();
//            headers.put("accesstoken", erpSecret.getAccessToken());
//            headers.put("x-acgw-identity", xAcfwIdentity);  // 自定义请求头
            response = new HttpHandler.Builder()
                    .setHeaders(headers)
                    .setUri(mesUrl)
                    .setPath(stationAddress)
                    .setJson(JSON.toJSONString(stationParams))
                    .build()
                    .doPost();
            JSONObject jsonResponse = JSON.parseObject(response);
            if (jsonResponse.getInteger("code") == 200) {
            } else {
                return R.error();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return R.ok();
    }
    @Override
    public R mesToComb(MesToCombParam param) {
        if (Cools.isEmpty(param.getPalletId())) {
            throw new CoolException(BaseRes.PARAM);
        }
        Date now = new Date();
        Mat mat = matService.selectByMatnr(param.getMatnr());
        if (Cools.isEmpty(mat)) {
            if (param.getFull()==1){
                //满托盘
                mat = matService.selectByMatnr("1");
            }else if (param.getFull()==0){
                //空托盘
                mat = matService.selectByMatnr("0");
            }
        }
        WaitPakin waitPakin = new WaitPakin();
        waitPakin.sync(mat);
        waitPakin.setBatch(String.valueOf(param.getBatchId()));
        waitPakin.setZpallet(param.getPalletId());   // 托盘码
        waitPakin.setIoStatus("N");     // 入出状态
        waitPakin.setAnfme(param.getAnfme());  // 数量
        waitPakin.setStatus("Y");    // 状态
        waitPakin.setAppeUser(9995L);
        waitPakin.setAppeTime(now);
        waitPakin.setModiUser(9995L);
        waitPakin.setModiTime(now);
        waitPakin.setOrderNo(String.valueOf(param.getOrderId()));
        waitPakin.setOrigin(String.valueOf(param.getStorageArea()));//建议入库区域
        waitPakin.setManu(String.valueOf(param.getLocId()));//mes具体库位编号
        waitPakin.setThreeCode(param.getBizNo());
        if (!waitPakinService.insert(waitPakin)) {
            throw new CoolException("保存入库通知档失败");
        }
        return null;
    }
    @Override
    public R outOrder(OutTaskParam param) {
        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F").eq("barcode", param.getPalletId()));
        if (locMast == null) {
            return R.error("没有找到托盘码="+param.getPalletId()+"对应的库位");
        }
        Integer ioType = 101;
        // 获取路径
        StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), Integer.valueOf(param.getStationId()));
        Date now = new Date();
        // 生成工作号
        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
        // 生成工作档
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(workNo);
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID
        wrkMast.setIoType(ioType); // 入出库状态
        wrkMast.setIoPri(13D); // 优先级:13
        wrkMast.setCrnNo(locMast.getCrnNo());
        wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 源站
        wrkMast.setStaNo(staDesc.getStnNo()); // 目标站
        wrkMast.setSourceLocNo(locMast.getLocNo()); // 源库位
        wrkMast.setBarcode(locMast.getBarcode());
        wrkMast.setFullPlt("Y"); // 满板:Y
        wrkMast.setPicking("N"); // 拣料
        wrkMast.setExitMk("N"); // 退出
        wrkMast.setEmptyMk("N"); // 空板
        wrkMast.setLinkMis("N");
        wrkMast.setUserNo(param.getOrderId());//订单号
        wrkMast.setPltType(param.getSeq());//出库顺序,从1开始
        wrkMast.setTakeNone("0");  //0非自动
        wrkMast.setAppeUser(9995L); // 操作人员数据
        wrkMast.setAppeTime(now);
        wrkMast.setModiUser(9995L);
        wrkMast.setModiTime(now);
        if (!wrkMastService.insert(wrkMast)) {
            throw new CoolException("保存工作档失败,出库库位号:"+locMast.getLocNo());
        }
        List<LocDetl> locNo = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
        if (locNo == null || locNo.size() == 0) {
            throw new CoolException("查询库存明细失败,出库库位号:"+locMast.getLocNo());
        }
        // 生成工作档明细
        for (LocDetl locDetl : locNo) {
            WrkDetl wrkDetl = new WrkDetl();
            wrkDetl.sync(locDetl);
            wrkDetl.setOrderNo(param.getOrderId()); // 手动出库不需要带出库存中的单据编号
            wrkDetl.setWrkNo(workNo);
            wrkDetl.setIoTime(now);
            Double anfme = locDetl.getAnfme();
            wrkDetl.setAnfme(anfme); // 数量
            wrkDetl.setAppeTime(now);
            wrkDetl.setAppeUser(9995L);
            wrkDetl.setModiTime(now);
            wrkDetl.setModiUser(9995L);
            if (!wrkDetlService.insert(wrkDetl)) {
                throw new CoolException("保存工作档明细失败");
            }
        }
        // 修改库位状态:   F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中
        locMast = locMastService.selectById(locMast.getLocNo());
        if (locMast.getLocSts().equals("F")) {
            locMast.setLocSts("R");
            locMast.setModiUser(9995L);
            locMast.setModiTime(now);
            if (!locMastService.updateById(locMast)) {
                throw new CoolException("预约库位状态失败,库位号:"+locMast.getLocNo());
            }
        } else {
            log.error(locMast.getLocNo() + "库位不是在库状态");
            throw new CoolException(locMast.getLocNo() + "库位不是在库状态");
        }
        return R.ok();
    }
}
src/main/java/com/zy/asrs/task/ArmRulesScheduler.java
File was deleted
src/main/java/com/zy/asrs/task/AutomaticallyIssueWCSTasksScheduler.java
New file
@@ -0,0 +1,42 @@
package com.zy.asrs.task;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.core.ReturnT;
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 org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
@Component
public class AutomaticallyIssueWCSTasksScheduler {
    private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WorkMastHandler workMastHandler;
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){
        List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData();
        if (wrkMasts.isEmpty()) {
            return;
        }
        for (WrkMast wrkMast : wrkMasts) {
            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/OrderToSortLineScheduler.java
@@ -1,13 +1,11 @@
package com.zy.asrs.task;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.OrderToLine;
import com.zy.asrs.service.*;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.OrderToLineHandler;
import com.zy.asrs.utils.ToSortLineUtils;
import com.zy.asrs.utils.param.ItemUtilParam;
import lombok.extern.slf4j.Slf4j;
src/main/java/com/zy/asrs/task/WorkLogScheduler.java
@@ -41,14 +41,6 @@
            return;
        }
        for (WrkMast wrkMast : wrkMasts) {
            if(wrkMast.getIoType() != 11 && wrkMast.getStaNo() < 4000 && wrkMast.getWrkNo() != 9997 && wrkMast.getWrkNo() != 9996){
                if(Cools.isEmpty(wrkMast.getSheetNo()) || !wrkMast.getSheetNo().equals("2")){
                    continue;
                }
            }
            if (!Cools.isEmpty(wrkMast.getTakeNone()) && wrkMast.getTakeNone().equals("1")){
                continue;
            }
            ReturnT<String> result = workLogHandler.start(wrkMast);
            if (!result.isSuccess()) {
                log.error("工作档[workNo={}]历史档处理失败", wrkMast.getWrkNo());
src/main/java/com/zy/asrs/task/WrkMastAgvScheduler.java
File was deleted
src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java
File was deleted
src/main/java/com/zy/asrs/task/WrkMastStaLogScheduler.java
File was deleted
src/main/java/com/zy/asrs/task/handler/ArmRulesHandler.java
File was deleted
src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java
New file
@@ -0,0 +1,20 @@
package com.zy.asrs.task.handler;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Slf4j
@Service
@Transactional
public class AutomaticallyIssueWCSTasksHandler extends AbstractHandler<String> {
    public ReturnT<String> start(WrkMast wrkMast) {
        return SUCCESS;
    }
}
src/main/java/com/zy/asrs/task/handler/OrderToLineHandler.java
File was deleted
src/main/java/com/zy/asrs/task/handler/WrkMastAgvHandler.java
File was deleted
src/main/java/com/zy/asrs/task/handler/WrkMastStaInItHandler.java
File was deleted
src/main/java/com/zy/asrs/task/handler/WrkMastStaLogHandler.java
File was deleted
src/main/resources/application.yml
@@ -79,19 +79,11 @@
comb:
  limit: 5000
#arm对接
arm:
  #  地址
  address:
    URL: http://10.10.10.171:7002
    #根据参数获取码垛数量
    QuantityOfPalletizing: adaptor/api/wcs/getPalletizingNumber
#分拣线对接
line:
  # 地址
  address:
    URL: http://10.10.10.244:8080
    PATH: orderPakInAll
#mes对接
mes:
  url: 127.0.0.1:8080
  #站点获取接口
  stationaddress: 123
#erp对接
erp: