自动化立体仓库 - WMS系统
pang.jiabao
4 天以前 4aebedd582c7b1beb23df39829c341b40343e2ce
pda相关功能开发完善
9个文件已修改
96 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MobileController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderPakinController.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/MobileService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/JlerHandler.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-dev.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -542,10 +542,14 @@
    @PostMapping("/callEmptyBinInBound")
    @ManagerAuth(memo = "pda呼叫料框回库")
    public synchronized R callEmptyBinInBound(@RequestBody JSONObject param) {
        if(!param.containsKey("site")){ // 搬运起点
        if (!param.containsKey("site") || !param.containsKey("barcode") || !param.containsKey("emptyFlag")) {
            return R.parse(BaseRes.PARAM);
        }
        return mobileService.callEmptyBinInBound(param.getString("site"),getUserId());
        String site = param.getString("site"); // 起始站点
        String barcode = param.getString("barcode"); // 托盘条码
        String emptyFlag = param.getString("emptyFlag"); // 1.有货(默认),2.空托
        return mobileService.callEmptyBinInBound(site, barcode, emptyFlag, getUserId());
    }
}
src/main/java/com/zy/asrs/controller/OrderController.java
@@ -19,6 +19,8 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
@RestController
@@ -43,6 +45,25 @@
    @Autowired
    private WrkMastLogService wrkMastLogService;
    @Resource
    private OrderDetlPakinService orderDetlPakinService;
    @RequestMapping(value = "/order/list/orderNo")
    public R orderListorderNo(@RequestParam String orderNo) {
        //数量修改成为完成数量
        List<OrderDetlPakin> orderDetl1 = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_no", orderNo));
        List<OrderDetlPakin> orderDetls= new ArrayList<>();
        for (OrderDetlPakin o: orderDetl1) {
            BigDecimal c1 = new BigDecimal(o.getEnableQty()).setScale(2,BigDecimal.ROUND_HALF_UP);
            o.setAnfme(c1.doubleValue());
            if (o.getAnfme().equals(0.0)){
                continue;
            }
            orderDetls.add(o);
        }
        return R.ok(orderDetls);
    }
    @RequestMapping(value = "/order/nav/list/auth")
    @ManagerAuth
    public R navList(@RequestParam(required = false) String orderNo){
src/main/java/com/zy/asrs/controller/OrderPakinController.java
@@ -1,5 +1,6 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -53,7 +54,7 @@
        wrapper.le("settle", 2).eq("status", 1);
        wrapper.orderBy("create_time", false);
        List<OrderPakin> orders = orderService.selectList(wrapper);
        // 保留出库单
        // 保留入库单
        if (!Cools.isEmpty(orders)) {
            Iterator<OrderPakin> iterator = orders.iterator();
            while (iterator.hasNext()) {
@@ -61,14 +62,20 @@
                if (order.getDocType() != null) {
                    DocType docType = docTypeService.selectById(order.getDocType());
                    if (docType != null) {
                        if (docType.getPakout() == 0) {
                        if (docType.getPakout() == 1) {
                            iterator.remove();
                        }
                    }
                }
            }
        }
        return R.ok().add(orders);
        JSONArray jsonArray = new JSONArray();
        for(OrderPakin orderPakin: orders) {
            JSONObject object = new JSONObject();
            object.put("order_no",orderPakin.getOrderNo());
            jsonArray.add(object);
        }
        return R.ok().add(jsonArray);
    }
    @RequestMapping(value = "/order/head/page/auth")
src/main/java/com/zy/asrs/service/MobileService.java
@@ -111,6 +111,10 @@
    /**
     * pda呼叫料框回库
     * @param site 起始站点
     * @param barcode 条码
     * @param emptyFlag 1.有货(默认),2.空托
     * @param userId 用户id
     */
    R callEmptyBinInBound(String site, Long userId);
    R callEmptyBinInBound(String site, String barcode, String emptyFlag, Long userId);
}
src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
@@ -983,7 +983,7 @@
                        transTask.setAgvFactory(1);
                        JSONObject sendAgvTask = submitTask(transTask);
                        if (!"1".equals(sendAgvTask.getString("Success"))) {
                            log.error("出库下发agv运输任务失败", JSONObject.toJSONString(transTask));
                            log.error("出库下发agv运输任务失败:{}", JSONObject.toJSONString(transTask));
                        }
                    }
                } else {
@@ -1073,7 +1073,6 @@
    /**
     * 9.1下发运输任务
     * TODO:其他库的任务全部转到滑块库统一调度
     *
     * @param transTask
     * @return
@@ -1123,12 +1122,6 @@
        // 转发给海康或华晓RCS
        RcsReturn rcsReturn = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
        if (rcsReturn.getCode().equals("SUCCESS")) {
            if (Cools.isEmpty(transTask.getTaskno())) {
                JSONObject data = rcsReturn.getData();
                String robotTaskCode = data.getString("robotTaskCode");
                transTask.setTaskno(robotTaskCode);
                result.put("taskno", transTask.getTaskno());
            }
            int workNo = commonService.getWorkNo(WorkNoType.OTHER.type);
            Date now = new Date();
            Task task = new Task();
@@ -1160,7 +1153,7 @@
            taskDetl.setSpecs(mat.getSpecs());
            taskDetl.setOrderNo(transTask.getOrderNo());
            taskDetl.setZpallet(transTask.getTuoPanId());
            taskDetl.setMemo(barCodeListToStr(transTask.getItemBarcode()));
            taskDetl.setMemo(Cools.isEmpty(transTask.getItemBarcode()) ? "":barCodeListToStr(transTask.getItemBarcode()));
            taskDetl.setModiUser(defaultUserId);
            taskDetl.setModiTime(now);
            taskDetl.setAppeUser(defaultUserId);
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -50,6 +50,9 @@
    @Value("${wms.zpalletId}")
    public String WMS_ZPALLET_ID;
    @Value("${wms.loadedPallet}")
    public String WMS_LOADED_PALLET;
    @Autowired
    private MatService matService;
    @Autowired
@@ -597,7 +600,7 @@
        Date now = new Date();
        // 无单组托
        if (Cools.isEmpty(param.getOrderNo())) {
        if (Cools.isEmpty(param.getCombMats().get(0).getOrderNo())) {
            // 生成入库通知档
            List<DetlDto> detlDtos = new ArrayList<>();
            param.getCombMats().forEach(elem -> {
@@ -1349,9 +1352,9 @@
    }
    @Override
    public R callEmptyBinInBound(String site, Long userId) {
    public R callEmptyBinInBound(String site, String barcode, String emptyFlag, Long userId) {
        TransTask transTask = new TransTask();
//        transTask.setTaskno(mesInApply.getTaskno());
        transTask.setTaskno(String.valueOf(new Date().getTime()));
//        transTask.setTaskname(mesInApply.getTaskname());
//        transTask.setOrderNo(mesInApply.getOrderNo());
        transTask.setTransType("02"); // 下毛坯
@@ -1359,10 +1362,18 @@
        transTask.setCurStationId(site);
        transTask.setNextStationId(WMS_TRANS_START_STATION_2);
        transTask.setItemno(WMS_ZPALLET_ID);  // 固定为空托的编码
        if ("1".equals(emptyFlag)) { // 判断是否组托
            int count = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", barcode));
            if(count <= 0) {
                return R.parse("未组托:" + barcode);
            }
            transTask.setItemno(WMS_LOADED_PALLET);  // 固定为满托的编码
        }
        transTask.setQty(1);    // 空托只回1个
//        transTask.setProductLineId(mesInApply.getProductLineId());
        transTask.setOperateType(1);
        transTask.setAgvFactory(1);
        transTask.setTuoPanId(barcode);
        JSONObject sendAgvTask = mesService.submitTask(transTask);
        if ("1".equals(sendAgvTask.getString("Success"))) {
            log.info("pda呼叫料框回库成功,{}", JSONObject.toJSONString(transTask));
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -229,8 +229,9 @@
        try {
            // 模拟返回
//            rcsReturn.setCode("SUCCESS");
//            log.info("呼叫agv搬运成功!url:{};request:{};response:{}", url, JSON.toJSONString(rcsTaskSubmit), response);
//            success = true;
//            log.info("呼叫agv搬运成功!url:{};request:{};response:{}", url, JSON.toJSONString(rcsTaskSubmit), response);
            response = sendPost(url, JSONObject.toJSONString(rcsTaskSubmit));
            if (!StringUtils.isEmpty(response) && response.contains("code")) {
src/main/java/com/zy/asrs/task/handler/JlerHandler.java
@@ -15,6 +15,7 @@
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
/**
 * @author pang.jiabao
@@ -50,7 +51,7 @@
        if(wrkMast.getIoType() == 110) {
            if(mesOutApply == null) { // 不是mes下发的空托出库
                TransTask transTask = new TransTask();
//                transTask.setTaskno(mesOutApply.getTaskno());
                transTask.setTaskno(String.valueOf(new Date().getTime()));
//                transTask.setTaskname(mesOutApply.getTaskname());
//                transTask.setOrderNo(mesOutApply.getOrderNo());
                transTask.setTransType("01");
@@ -64,10 +65,6 @@
                transTask.setAgvFactory(1);
                JSONObject sendAgvTask = mesService.submitTask(transTask);
                if ("1".equals(sendAgvTask.getString("Success"))) {
                    String taskno = sendAgvTask.getString("taskno");
                    if(Cools.isEmpty(wrkMast.getTaskNo())) {
                        wrkMast.setTaskNo(taskno);
                    }
                    wrkMast.setCallAgv(1);
                    wrkMastService.updateById(wrkMast);
                }else {
@@ -90,10 +87,6 @@
                transTask.setAgvFactory(1);
                JSONObject sendAgvTask = mesService.submitTask(transTask);
                if ("1".equals(sendAgvTask.getString("Success"))) {
//                    String taskno = sendAgvTask.getString("taskno");
//                    if(Cools.isEmpty(wrkMast.getTaskNo())) {
//                        wrkMast.setTaskNo(taskno);
//                    }
                    wrkMast.setCallAgv(1);
                    wrkMastService.updateById(wrkMast);
                }else {
@@ -122,10 +115,6 @@
                JSONObject sendAgvTask = mesService.submitTask(transTask);
                if ("1".equals(sendAgvTask.getString("Success"))) {
//                    String taskno = sendAgvTask.getString("taskno");
//                    if(Cools.isEmpty(wrkMast.getTaskNo())) {
//                        wrkMast.setTaskNo(taskno);
//                    }
                    wrkMast.setCallAgv(1);
                    wrkMastService.updateById(wrkMast);
                }else {
src/main/resources/application-dev.yml
@@ -128,6 +128,8 @@
  wmsTransStartStation3: 204
  #托盘物料号
  zpalletId: tuopan
  #有货托盘 pda托盘回库用
  loadedPallet: loadedPallet
#mes对接
mes: