src/main/java/com/zy/asrs/entity/WrkMastSta.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/utils/RouteUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/MainProcess.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/WrkMastStaMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/entity/WrkMastSta.java
New file @@ -0,0 +1,169 @@ package com.zy.asrs.entity; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; import com.core.common.Cools; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; @Data @TableName("asr_wrk_mast_sta") public class WrkMastSta implements Serializable { private static final long serialVersionUID = 1L; /** * ID */ @ApiModelProperty(value= "ID") @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 工作号 */ @ApiModelProperty(value= "工作号") @TableField("wrk_no") private Long wrkNo; /** * 工作档开始位置 */ @ApiModelProperty(value= "工作档开始位置") @TableField("wrk_start") private Integer wrkStart; /** * 工作档结束位置 */ @ApiModelProperty(value= "工作档结束位置") @TableField("wrk_end") private Integer wrkEnd; /** * 小车接货位置 */ @ApiModelProperty(value= "小车接货位置") @TableField("sta_start") private Integer staStart; /** * 小车放货位置 */ @ApiModelProperty(value= "小车放货位置") @TableField("sta_end") private Integer staEnd; /** * 添加时间 */ @ApiModelProperty(value= "添加时间") @TableField("create_time") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date createTime; /** * 修改时间 */ @ApiModelProperty(value= "修改时间") @TableField("update_time") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date updateTime; /** * 类型 0:非空 1:空板 */ @ApiModelProperty(value= "类型 0:非空 1:空板") private Integer type; /** * 工作状态 0:初始 1:等待小车取 2:等待小车放 3:完成 */ @ApiModelProperty(value= "工作状态 0:初始 1:等待小车取 2:等待小车放 3:完成") @TableField("wrk_sts") private Integer wrkSts; /** * 行号 */ @ApiModelProperty(value= "行号") @TableField("line_number") private Integer lineNumber; /** * 工作类型 */ @ApiModelProperty(value= "工作类型") @TableField("wrk_type") private Integer wrkType; /** * 标记时间 */ @ApiModelProperty(value= "标记时间") @TableField("bign_time") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date bignTime; public WrkMastSta() {} public WrkMastSta(Long wrkNo, Integer wrkStart, Integer wrkEnd, Integer staStart, Integer staEnd, Date createTime, Date updateTime, Integer type, Integer wrkSts, Integer lineNumber, Integer wrkType, Date bignTime) { this.wrkNo = wrkNo; this.wrkStart = wrkStart; this.wrkEnd = wrkEnd; this.staStart = staStart; this.staEnd = staEnd; this.createTime = createTime; this.updateTime = updateTime; this.type = type; this.wrkSts = wrkSts; this.lineNumber = lineNumber; this.wrkType = wrkType; this.bignTime = bignTime; } // WrkMastSta wrkMastSta = new WrkMastSta( // null, // 工作号[非空] // null, // 工作档开始位置[非空] // null, // 工作档结束位置[非空] // null, // 小车接货位置[非空] // null, // 小车放货位置[非空] // null, // 添加时间 // null, // 修改时间 // null, // 类型 0:非空 1:空板[非空] // null, // 工作状态 0:初始 1:等待小车取 2:等待小车放 3:完成[非空] // null, // 行号[非空] // null, // 工作类型[非空] // null // 标记时间 // ); public String getCreateTime$(){ if (Cools.isEmpty(this.createTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); } public String getUpdateTime$(){ if (Cools.isEmpty(this.updateTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); } public String getBignTime$(){ if (Cools.isEmpty(this.bignTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.bignTime); } } src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
New file @@ -0,0 +1,36 @@ package com.zy.asrs.mapper; import com.baomidou.mybatisplus.mapper.BaseMapper; import com.zy.asrs.entity.WrkMastSta; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.Date; import java.util.List; @Mapper @Repository public interface WrkMastStaMapper extends BaseMapper<WrkMastSta> { /* * 获取所有任务数量 * */ Integer selectAllWrkCount(); /* * 获取所有可执行任务 * */ List<WrkMastSta> selectAllWrkMastStaList(); /* * 查询指定工作号任务 * */ WrkMastSta selectByWrkNo(@Param("workNo") Integer workNo); /* * 查询不干涉的可执行任务 * */ WrkMastSta selectNoInterfere(@Param("staStarts") List<Integer> staStarts,@Param("staEnds") List<Integer> staEnds); } src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -8,10 +8,7 @@ import com.core.common.DateUtils; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.mapper.BasCrnErrorMapper; import com.zy.asrs.mapper.BasRgvErrMapper; import com.zy.asrs.mapper.WaitPakinMapper; import com.zy.asrs.mapper.WrkMastMapper; import com.zy.asrs.mapper.*; import com.zy.asrs.service.*; import com.zy.asrs.utils.Utils; import com.zy.asrs.utils.VersionUtils; @@ -96,6 +93,8 @@ private BasRgvPathService basRgvPathService; @Autowired private RedisUtil redisUtil; @Autowired private WrkMastStaMapper wrkMastStaMapper; @Value("${wms.url}") private String wmsUrl; @@ -3806,4 +3805,32 @@ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } } /** * 完成小车任务 */ public synchronized void rgvCompleteWrkMastSta() { } /** * 执行小车搬运任务 */ public synchronized void rgvRunWrkMastSta() { Integer signCount = 0; for (RgvSlave rgvSlave:slaveProperties.getRgv()){ if (true){//rgv可用 signCount++; } } List<WrkMastSta> wrkMastStas = wrkMastStaMapper.selectAllWrkMastStaList(); for (WrkMastSta wrkMastSta : wrkMastStas) { // 只有当堆垛机空闲 并且 无任务时才继续执行 if (true) { } } } } src/main/java/com/zy/asrs/utils/RouteUtils.java
@@ -37,7 +37,7 @@ public static List<Integer> getRoute(Integer groupStart,Integer groupEnd){ boolean sign = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(groupStart) < TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(groupEnd); List<Integer> result = new ArrayList<>(); List<Integer> groupRoute = null; List<Integer> groupRoute = new ArrayList<>(); if (sign){ groupRoute = TRACK_POSITION_POSITIVE_SEQUENCE; }else { src/main/java/com/zy/core/MainProcess.java
@@ -77,7 +77,10 @@ // // 出库 ===>> RGV出库站到系统出库站 // mainService.rgvOutDStnToOutStn(); //完成小车任务 mainService.rgvCompleteWrkMastSta(); //执行小车搬运任务 mainService.rgvRunWrkMastSta(); /////////////////////////////////////RGV调度///////////////////////////////////// src/main/resources/mapper/WrkMastStaMapper.xml
New file @@ -0,0 +1,58 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.zy.asrs.mapper.WrkMastStaMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.zy.asrs.entity.WrkMastSta"> <id column="id" property="id" /> <result column="wrk_no" property="wrkNo" /> <result column="wrk_start" property="wrkStart" /> <result column="wrk_end" property="wrkEnd" /> <result column="sta_start" property="staStart" /> <result column="sta_end" property="staEnd" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="type" property="type" /> <result column="wrk_sts" property="wrkSts" /> <result column="line_number" property="lineNumber" /> <result column="wrk_type" property="wrkType" /> <result column="bign_time" property="bignTime" /> </resultMap> <select id="selectAllWrkMastStaList" resultMap="BaseResultMap"> select * from asr_wrk_mast_sta and wrk_sts=0 order by line_number,id </select> <select id="selectByWrkNo" resultMap="BaseResultMap"> select top 1 * from asr_wrk_mast_sta where 1=1 and wrk_no = #{wrkNo} </select> <select id="selectNoInterfere" resultMap="BaseResultMap"> select top 1 * from asr_wrk_mast_sta where 1=1 and (sta_start in <foreach item="item" collection="staStarts" index="index" separator="," open="(" close=")"> #{item} </foreach> or sta_start = 0 ) and (sta_end in <foreach item="item" collection="staEnds" index="index" separator="," open="(" close=")"> #{item} </foreach> or sta_end = 0 ) and wrk_sts=0 order by line_number,id </select> <select id="selectAllWrkCount" resultMap="Integer"> select count(1) from asr_wrk_mast_sta </select> </mapper>