自动化立体仓库 - WMS系统
#
Administrator
15 小时以前 4f45f8f3ec334a73ba24fc5d16017b5c044168aa
#
9个文件已修改
138 ■■■■ 已修改文件
src/main/java/com/zy/api/controller/params/WorkTaskParams.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/ErpPakoutReportParam.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WorkMastScheduler.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkErpReportHandler.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkOutErpReportHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/api/controller/params/WorkTaskParams.java
@@ -45,5 +45,11 @@
    @ApiModelProperty("是否余料")
    private Integer isSuplus;
    @ApiModelProperty("组")
    private Integer batch;
    @ApiModelProperty("序号")
    private Integer batchSeq;
}
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -7,6 +7,7 @@
import com.core.annotations.AppAuth;
import com.core.common.*;
import com.core.exception.CoolException;
import com.google.common.collect.Lists;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.LocDetlService;
@@ -16,6 +17,7 @@
import com.zy.common.model.DetlDto;
import com.zy.common.model.LocDetlDto;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.utils.Synchro;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -423,6 +425,7 @@
     */
    @PostMapping("/comb/auth")
    public synchronized R comb(@RequestBody ArrayList<MesToCombParam> param){
        List<MesToCombReturnParam> errorComb = Lists.newArrayList();
        for (MesToCombParam mesToCombParam : param) {
//            if (mesToCombParam.getPalletId().length() != 8) {
//                return R.error(mesToCombParam.getPalletId()+"-该托盘码不为8位");
@@ -435,7 +438,10 @@
            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()+"-工作档/库存条码数据已存在");
                MesToCombReturnParam mesToCombReturnParam = new MesToCombReturnParam();
                Synchro.Copy(mesToCombParam, mesToCombReturnParam);
                errorComb.add(mesToCombReturnParam);
//                return R.error(mesToCombParam.getPalletId()+"-工作档/库存条码数据已存在");
            }
            // 判断是否有相同条码的数据
            if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
@@ -445,6 +451,10 @@
        }
        for (MesToCombParam mesToCombParam : param) {
            openService.mesToComb(mesToCombParam);
        }
        // TODO:待测试
        if(errorComb.size() > 0) {
            return R.error("托盘已在库存中/已开始入库").add(errorComb);
        }
        return R.ok();
@@ -456,9 +466,30 @@
    @PostMapping("/outOrder")
    public synchronized R outOrder (@RequestBody ArrayList<OutTaskParam> params){
        List<OutTaskReturnParam> errorOutOrders = Lists.newArrayList();
        for (OutTaskParam outTaskParam : params) {
            openService.outOrder(outTaskParam);
            // TODO:待測試,校驗庫存信息,不存在則返回
            int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", outTaskParam.getPalletId()));
            if (countLoc == 0){
                OutTaskReturnParam outTaskReturnParam = new OutTaskReturnParam();
                Synchro.Copy(outTaskParam, outTaskReturnParam);
                errorOutOrders.add(outTaskReturnParam);
                params.remove(outTaskParam);
            }
        }
        for (OutTaskParam outTaskParam : params) {
            R r = openService.outOrder(outTaskParam);
            if (!r.get("code").equals(200)){
                return r;
            }
        }
        if(errorOutOrders.size() > 0) {
            return R.error("库存中不存在该托盘").add(errorOutOrders);
        }
        return R.ok();
    }
src/main/java/com/zy/asrs/entity/param/ErpPakoutReportParam.java
@@ -10,4 +10,6 @@
    private String createTime;
    private String startTime;
    private String orderId;
}
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1535,37 +1535,37 @@
                }
            }
            for (WrkDetl wrkDetl : wrkDetls) {
                if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
//                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
//                        throw new CoolException("订单数据回滚失败");
//                    }
                    OrderInAndOutUtil.decrease(Boolean.FALSE,wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),
                            wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
                            wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(), wrkDetl.getAnfme());
                    //修改订单主表状态,没有作业数量时才可以修改
                    boolean flag = true;
//                    List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo()));
                    Order order = OrderInAndOutUtil.selectByNo(Boolean.FALSE, wrkDetl.getOrderNo());
                    List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(Boolean.FALSE, order.getId());
                    for(OrderDetl orderDetl : orderDetls){
                        if(orderDetl.getWorkQty() > 0){
                            flag = false;
                        }
                    }
                    if(flag){
//                        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()));
                        if(!Cools.isEmpty(order) && order.getSettle()==2){
                            order.setSettle(1L);
                            order.setUpdateBy(userId);
                            order.setUpdateTime(now);
                        }
//                        if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){
//                            throw new CoolException("修改订单状态失败");
//                if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
////                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
////                        throw new CoolException("订单数据回滚失败");
////                    }
//                    OrderInAndOutUtil.decrease(Boolean.FALSE,wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),
//                            wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
//                            wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(), wrkDetl.getAnfme());
//
//                    //修改订单主表状态,没有作业数量时才可以修改
//                    boolean flag = true;
////                    List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo()));
//                    Order order = OrderInAndOutUtil.selectByNo(Boolean.FALSE, wrkDetl.getOrderNo());
//                    List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(Boolean.FALSE, order.getId());
//                    for(OrderDetl orderDetl : orderDetls){
//                        if(orderDetl.getWorkQty() > 0){
//                            flag = false;
//                        }
                        OrderInAndOutUtil.updateOrder(Boolean.FALSE,order.getId(),order.getSettle(),userId);
                    }
                }
//                    }
//                    if(flag){
////                        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()));
//                        if(!Cools.isEmpty(order) && order.getSettle()==2){
//                            order.setSettle(1L);
//                            order.setUpdateBy(userId);
//                            order.setUpdateTime(now);
//                        }
////                        if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){
////                            throw new CoolException("修改订单状态失败");
////                        }
//                        OrderInAndOutUtil.updateOrder(Boolean.FALSE,order.getId(),order.getSettle(),userId);
//                    }
//                }
            }
        }
src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -73,13 +73,6 @@
            if (wrkMast.getIoType()>100&& !wrkMast.getPdcType().equals("Y")) {
                continue;
            }
            Integer crnNo = wrkMast.getCrnNo();
            //该堆垛机已经下发任务给wcs后不再下发新的搬运任务
            List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).in("wrk_sts", Arrays.asList(2L, 12L)));
            if (!wrkMasts1.isEmpty()) {
                continue;
            }
            String wcsSourceLocNo = Cools.isEmpty(wrkMast.getSourceLocNo()) ? "" : Utils.WMSLocToWCSLoc(wrkMast.getSourceLocNo());
            String wcsLocNo = Cools.isEmpty(wrkMast.getLocNo()) ? "" : Utils.WMSLocToWCSLoc(wrkMast.getLocNo());
            WorkTaskParams params = new WorkTaskParams();
@@ -90,6 +83,8 @@
                        .setLocNo(wcsSourceLocNo)
                        .setStaNo(String.valueOf(wrkMast.getStaNo()))
                        .setTaskPri(wrkMast.getIoPri().intValue())
                        .setBatch(1)
                        .setBatchSeq(wrkMast.getPltType())
                        .setBarcode(wrkMast.getBarcode());
            }else if(wrkMast.getIoType()==2&& !Cools.isEmpty(wrkMast.getSourceStaNo())){
                params.setType("in")
src/main/java/com/zy/asrs/task/handler/WorkErpReportHandler.java
@@ -77,6 +77,24 @@
        WaitPakin waitPakin = findWaitPakin(wrkMast.getBarcode());
        ErpPakinReportParam param = buildParam(wrkMast, wrkDetls, waitPakin);
        // 庫位轉換
        String locId = param.getLocId();
        String row = locId.substring(0, 2);
        String col = locId.substring(2, 5);
        String lev =  locId.substring(5, 7);
        if(Integer.parseInt(row) >= 37) {
            row = "C" + row;
        } else if(Integer.parseInt(row) >= 13) {
            row = "B" + row;
        } else {
            row = "A" + row;
        }
        String newLocId = row + "-" + col + "-" + lev;
        param.setLocId(newLocId);
        // TODO:模擬寫死重量1000KG,需後續刪除
        param.setWeight(1000.0);
        String request = JSON.toJSONString(param);
        String response = "";
        boolean success = false;
src/main/java/com/zy/asrs/task/handler/WorkOutErpReportHandler.java
@@ -65,6 +65,10 @@
        }
        ErpPakoutReportParam param = buildParam(wrkMast);
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
        if (wrkDetls != null && wrkDetls.size() > 0) {
            param.setOrderId(wrkDetls.get(0).getOrderNo());
        }
        String request = JSON.toJSONString(param);
        String response = "";
        boolean success = false;
src/main/java/com/zy/common/web/WcsController.java
@@ -79,7 +79,7 @@
            return R.ok(dto1);
        }
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("io_type", 1));
        if (!Cools.isEmpty(wrkMasts) && wrkMasts.size() > 1) {
        if (!Cools.isEmpty(wrkMasts) && wrkMasts.size() > 10) {
            return R.error("限行");
        }
        waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
src/main/resources/application.yml
@@ -97,7 +97,7 @@
    #入库上报
    Inaddress: /api/Service/InPalletCompleted
    #出库上报
    Outaddress: /kapi/v2/eap7/basedata/bd_material/batchQuery
    Outaddress: /api/Service/OutPalletCompleted
#wcs任务下发
wcs: