自动化立体仓库 - WCS系统
zc
4 天以前 4ea361f8b7fa5fa63c650832e6b5efa150cb6693
初步调试
1个文件已添加
3个文件已修改
456 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/TVController.java 170 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/dto/WrkDetl.java 272 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/TVController.java
@@ -1,5 +1,8 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Arith;
import com.core.common.Cools;
@@ -7,6 +10,7 @@
import com.zy.asrs.domain.dto.AxisBean;
import com.zy.asrs.domain.dto.WorkChartAxis;
import com.zy.asrs.domain.dto.LocChartPie;
import com.zy.asrs.domain.dto.WrkDetl;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.BasShuttle;
import com.zy.asrs.entity.BasShuttleErr;
@@ -16,7 +20,10 @@
import com.zy.asrs.service.BasShuttleErrService;
import com.zy.asrs.service.BasShuttleService;
import com.zy.asrs.service.WrkMastService;
import com.zy.common.model.MatDto;
import com.zy.common.model.SearchLocParam;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.ShuttleSlave;
@@ -25,11 +32,13 @@
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.ShuttleThread;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -55,6 +64,8 @@
    private SlaveProperties slaveProperties;
    @Autowired
    private BasShuttleErrService basShuttleErrService;
    @Value("${asrs.wmsUrl}")
    private String wmsUrl;
    /**
     * 获取当前时间
@@ -210,83 +221,87 @@
    /**
     * 获取其他信息
     */
//    @GetMapping("/led")
//    public R monitorLed(@RequestParam("ledId") Integer ledId) {
//        BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", ledId));
//        if (Cools.isEmpty(basDevp)) {
//            return R.ok();
//        }
//        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
//        if (Cools.isEmpty(wrkMast)) {
//            return R.ok();
//        }
//        List<LedCommand> commands = new ArrayList<>();
//
//        // 组装命令
//        LedCommand ledCommand = new LedCommand();
//        ledCommand.setWorkNo(wrkMast.getWrkNo());
//        ledCommand.setIoType(wrkMast.getIoType());
//        // 出库模式
//        switch (wrkMast.getIoType()) {
//            case 1:
//                ledCommand.setTitle("全板入库");
//                break;
//            case 10:
//                ledCommand.setTitle("空板入库");
//                break;
//            case 101:
//                ledCommand.setTitle("全板出库");
//                break;
//            case 103:
//                ledCommand.setTitle("拣料出库");
//                break;
//            case 104:
//                ledCommand.setTitle("并板出库");
//                break;
//            case 107:
//                ledCommand.setTitle("盘点出库");
//                break;
//            case 110:
//                ledCommand.setTitle("空板出库");
//                ledCommand.setEmptyMk(true);
//                break;
//            case 53:
//                ledCommand.setTitle("拣料入库");
//                break;
//            case 57:
//                ledCommand.setTitle("盘点入库");
//                break;
//            case 54:
//                ledCommand.setTitle("并板入库");
//                break;
//            default:
//                break;
//        }
//        ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
//        ledCommand.setLocNo(wrkMast.getLocNo());
//        ledCommand.setStaNo(wrkMast.getStaNo());
////                ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
//        if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
//            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
//            try {
//                if (wrkMast.getIoType() > 100) {
//                    for (WrkDetl wrkDetl : wrkDetls) {
//                        LocDetl locDetl = locDetlService.selectMatnrSpecs(wrkDetl.getMatnr(), wrkDetl.getSpecs(), wrkMast.getSourceLocNo());
//                        wrkDetl.setWeight(locDetl.getAnfme());
//                    }
//                } else {
//                    for (WrkDetl wrkDetl : wrkDetls) {
//                        wrkDetl.setWeight(wrkDetl.getAnfme());
//                    }
//                }
//            } catch (Exception e) {
////                log.error("工作档案明细输入电视机失败1:异常信息==》"+e);
//            }
//            wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), wrkDetl.getWeight(), wrkDetl.getSpecs(), wrkDetl.getModel())));
//        }
//        commands.add(ledCommand);
//        return R.ok().add(commands);
//    }
    @GetMapping("/led")
    public R monitorLed(@RequestParam("ledId") Integer ledId) {
        BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", ledId));
        if (Cools.isEmpty(basDevp)) {
            return R.ok();
        }
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wms_wrk_no", basDevp.getWrkNo()));
        if (Cools.isEmpty(wrkMast)) {
            return R.ok();
        }
        List<LedCommand> commands = new ArrayList<>();
        // 组装命令
        LedCommand ledCommand = new LedCommand();
        ledCommand.setWorkNo(wrkMast.getWmsWrkNo());
        ledCommand.setIoType(wrkMast.getIoType());
        // 出库模式
        switch (wrkMast.getIoType()) {
            case 1:
                ledCommand.setTitle("全板入库");
                break;
            case 10:
                ledCommand.setTitle("空板入库");
                break;
            case 101:
                ledCommand.setTitle("全板出库");
                break;
            case 103:
                ledCommand.setTitle("拣料出库");
                break;
            case 104:
                ledCommand.setTitle("并板出库");
                break;
            case 107:
                ledCommand.setTitle("盘点出库");
                break;
            case 110:
                ledCommand.setTitle("空板出库");
                ledCommand.setEmptyMk(true);
                break;
            case 53:
                ledCommand.setTitle("拣料入库");
                break;
            case 57:
                ledCommand.setTitle("盘点入库");
                break;
            case 54:
                ledCommand.setTitle("并板入库");
                break;
            default:
                break;
        }
        ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
        ledCommand.setLocNo(wrkMast.getLocNo());
        ledCommand.setStaNo(wrkMast.getStaNo());
        if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
            Map<String, Object> param = new HashMap<>();
            param.put("taskNo", wrkMast.getWmsWrkNo());
            param.put("sta", wrkMast.getStaNo());
            String response = null;
            try {
                response = new HttpHandler.Builder()
                        .setUri(wmsUrl)
                        .setPath("/rpc/led/getTask2")
                        .setJson(JSON.toJSONString(param))
                        .build()
                        .doPost();
            } catch (IOException e) {
                e.printStackTrace();
            }
            JSONObject jsonObject = JSON.parseObject(response);
            Integer code = jsonObject.getInteger("code");
            if (code.equals(200)) {
                String data = jsonObject.getString("data");
                List<LedCommand> wrkDetls = JSONArray.parseArray(data, LedCommand.class);
                commands.addAll(wrkDetls);
            }
        }
        return R.ok().add(commands);
    }
    /**
     * 异常通知
@@ -316,7 +331,6 @@
    @GetMapping("/device/error")
    public R monitorDeviceError() {
        ArrayList<HashMap<String, Object>> list = new ArrayList<>();
        List<BasShuttle> basCrnpLiset = shuttleService.selectList(new EntityWrapper<BasShuttle>());
        for (ShuttleSlave shuttleSlave : slaveProperties.getShuttle()) {
            // 获取四向穿梭车信息
src/main/java/com/zy/asrs/domain/dto/WrkDetl.java
New file
@@ -0,0 +1,272 @@
package com.zy.asrs.domain.dto;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.common.utils.Synchro;
import com.zy.system.entity.User;
import com.zy.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
public class WrkDetl implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 工作号
     */
    @ApiModelProperty(value= "工作号")
    private Integer wrkNo;
    /**
     * 工作时间
     */
    @ApiModelProperty(value= "工作时间")
    private Date ioTime;
    /**
     * 数量
     */
    @ApiModelProperty(value= "数量")
    private Double anfme;
    /**
     * 托盘条码
     */
    @ApiModelProperty(value= "托盘条码")
    private String zpallet;
    /**
     * 物料
     */
    @ApiModelProperty(value= "商品编号")
    private String matnr;
    /**
     * 物料描述
     */
    @ApiModelProperty(value= "商品名称")
    private String maktx;
    /**
     * 批号
     */
    @ApiModelProperty(value= "批号")
    private String batch;
    /**
     * 单据编号
     */
    @ApiModelProperty(value= "单据编号")
    private String orderNo;
    /**
     * 规格
     */
    @ApiModelProperty(value= "规格")
    private String specs;
    /**
     * 型号
     */
    @ApiModelProperty(value= "型号")
    private String model;
    /**
     * 颜色
     */
    @ApiModelProperty(value= "颜色")
    private String color;
    /**
     * 品牌
     */
    @ApiModelProperty(value= "品牌")
    private String brand;
    /**
     * 单位
     */
    @ApiModelProperty(value= "单位")
    private String unit;
    /**
     * 单价
     */
    @ApiModelProperty(value= "单价")
    private Double price;
    /**
     * sku
     */
    @ApiModelProperty(value= "sku")
    private String sku;
    /**
     * 单位量
     */
    @ApiModelProperty(value= "单位量")
    private Double units;
    /**
     * 条码
     */
    @ApiModelProperty(value= "条码")
    private String barcode;
    /**
     * 产地
     */
    @ApiModelProperty(value= "产地")
    private String origin;
    /**
     * 厂家
     */
    @ApiModelProperty(value= "厂家")
    private String manu;
    /**
     * 生产日期
     */
    @ApiModelProperty(value= "生产日期")
    @TableField("manu_date")
    private String manuDate;
    /**
     * 品项数
     */
    @ApiModelProperty(value= "品项数")
    private String itemNum;
    /**
     * 安全库存量
     */
    @ApiModelProperty(value= "安全库存量")
    private Double safeQty;
    /**
     * 重量
     */
    @ApiModelProperty(value= "重量")
    private Double weight;
    /**
     * 长度
     */
    @ApiModelProperty(value= "长度")
    private Double length;
    /**
     * 体积
     */
    @ApiModelProperty(value= "体积")
    private Double volume;
    /**
     * 三方编码
     */
    @ApiModelProperty(value= "三方编码")
    private String threeCode;
    /**
     * 供应商
     */
    @ApiModelProperty(value= "供应商")
    private String supp;
    /**
     * 供应商编码
     */
    @ApiModelProperty(value= "供应商编码")
    private String suppCode;
    /**
     * 是否批次 1: 是  0: 否
     */
    @ApiModelProperty(value= "是否批次 1: 是  0: 否  ")
    private Integer beBatch;
    /**
     * 保质期
     */
    @ApiModelProperty(value= "保质期")
    private String deadTime;
    /**
     * 预警天数
     */
    @ApiModelProperty(value= "预警天数")
    private Integer deadWarn;
    /**
     * 制购 1: 制造  2: 采购  3: 外协
     */
    @ApiModelProperty(value= "制购 1: 制造  2: 采购  3: 外协  ")
    private Integer source;
    /**
     * 要求检验 1: 是  0: 否
     */
    @ApiModelProperty(value= "要求检验 1: 是  0: 否  ")
    private Integer inspect;
    /**
     * 危险品 1: 是  0: 否
     */
    @ApiModelProperty(value= "危险品 1: 是  0: 否  ")
    private Integer danger;
    /**
     * 修改人员
     */
    @ApiModelProperty(value= "修改人员")
    private Long modiUser;
    /**
     * 修改时间
     */
    @ApiModelProperty(value= "修改时间")
    private Date modiTime;
    /**
     * 创建者
     */
    @ApiModelProperty(value= "创建者")
    private Long appeUser;
    /**
     * 添加时间
     */
    @ApiModelProperty(value= "添加时间")
    private Date appeTime;
    /**
     * 备注
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    @ApiModelProperty(value= "预留1")
    private String temp1;
    @ApiModelProperty(value= "预留1")
    private String temp2;
    @ApiModelProperty(value= "预留1")
    private String temp3;
    @ApiModelProperty(value= "预留1")
    private String temp4;
    public void sync(Object source) {
        Synchro.Copy(source, this);
    }
}
src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
@@ -31,7 +31,7 @@
    //曲线图
    @Select("select ymd,SUM(sto_qty) inqty,SUM(ret_qty) outqty from asr_sta_inout_view "
            + "where ymd>CONVERT(char(10), DATEADD(DAY,-12,GETDATE()), 120) group by ymd order by ymd")
            + "where ymd>DATE_FORMAT(NOW(),'%Y-%m-%d') group by ymd order by ymd")
    public List<WorkChartAxis> getChartAxis();
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -426,8 +426,12 @@
        ShuttleProtocol status1 = shuttleThread1.getStatus();
        ShuttleProtocol status2 = shuttleThread2.getStatus();
        List<String> loc = new ArrayList<>();
        loc.add(status1.getCurrentLocNo());
        loc.add(status2.getCurrentLocNo());
        if (status1 != null) {
            loc.add(status1.getCurrentLocNo());
        }
        if (status2 != null) {
            loc.add(status2.getCurrentLocNo());
        }
        DevpSlave devpSlave = slaveProperties.getDevp().get(0);
        // 遍历堆垛机出库站
        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devpSlave.getId());
@@ -1215,9 +1219,9 @@
            //获取提升机命令
            List<LiftCommand> liftCommands = liftThread.getPalletOutCommand(wrkMast.getWrkNo(), sourceLev, wrkMast.getStaNo());
            LiftCommand liftCommand = liftCommands.get(0);
            if ( wrkMast.getStaNo()==1031){
            if (wrkMast.getStaNo() == 1031) {
                liftCommand.setTaskNo(wrkMast.getWrkNo());
            }else {
            } else {
                int deviceWrk = commonService.getWorkNo(8);//生成提升机设备工作号
                liftCommand.setTaskNo(deviceWrk);//更换随机任务号
            }