#
Junjie
2024-03-26 9eda386ad37338e62099a8ccd9bd6e2669861619
#
3个文件已修改
11个文件已添加
642 ■■■■■ 已修改文件
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/DeviceCtgController.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/DeviceCtg.java 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/DeviceCtgMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/command/ShuttleAssignCommand.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/command/ShuttleCommand.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/DeviceCtgType.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MotionStsType.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/DeviceCtgService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/DeviceCtgServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/entity/Motion.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/MotionStsService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/impl/MotionStsServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/deviceCtg.sql 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/resources/mapper/core/DeviceCtgMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/DeviceCtgController.java
New file
@@ -0,0 +1,101 @@
package com.zy.asrs.wcs.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.wcs.common.annotation.OperationLog;
import com.zy.asrs.wcs.common.domain.BaseParam;
import com.zy.asrs.wcs.common.domain.KeyValVo;
import com.zy.asrs.wcs.common.domain.PageParam;
import com.zy.asrs.wcs.core.entity.DeviceCtg;
import com.zy.asrs.wcs.core.service.DeviceCtgService;
import com.zy.asrs.wcs.utils.ExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/api")
public class DeviceCtgController extends BaseController {
    @Autowired
    private DeviceCtgService deviceCtgService;
    @PreAuthorize("hasAuthority('core:deviceCtg:list')")
    @PostMapping("/deviceCtg/page")
    public R page(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<DeviceCtg, BaseParam> pageParam = new PageParam<>(baseParam, DeviceCtg.class);
        return R.ok().add(deviceCtgService.page(pageParam, pageParam.buildWrapper(true)));
    }
    @PreAuthorize("hasAuthority('core:deviceCtg:list')")
    @PostMapping("/deviceCtg/list")
    public R list(@RequestBody Map<String, Object> map) {
        return R.ok().add(deviceCtgService.list());
    }
    @PreAuthorize("hasAuthority('core:deviceCtg:list')")
    @GetMapping("/deviceCtg/{id}")
    public R get(@PathVariable("id") Long id) {
        return R.ok().add(deviceCtgService.getById(id));
    }
    @PreAuthorize("hasAuthority('core:deviceCtg:save')")
    @OperationLog("添加Motion设备类型")
    @PostMapping("/deviceCtg/save")
    public R save(@RequestBody DeviceCtg deviceCtg) {
        if (!deviceCtgService.save(deviceCtg)) {
            return R.error("添加失败");
        }
        return R.ok("添加成功");
    }
    @PreAuthorize("hasAuthority('core:deviceCtg:update')")
    @OperationLog("修改Motion设备类型")
    @PostMapping("/deviceCtg/update")
    public R update(@RequestBody DeviceCtg deviceCtg) {
        if (!deviceCtgService.updateById(deviceCtg)) {
            return R.error("修改失败");
        }
        return R.ok("修改成功");
    }
    @PreAuthorize("hasAuthority('core:deviceCtg:remove')")
    @OperationLog("删除Motion设备类型")
    @PostMapping("/deviceCtg/remove/{ids}")
    public R remove(@PathVariable Long[] ids) {
        if (!deviceCtgService.removeByIds(Arrays.asList(ids))) {
            return R.error("删除失败");
        }
        return R.ok("删除成功");
    }
    @PreAuthorize("hasAuthority('core:deviceCtg:list')")
    @PostMapping("/deviceCtg/query")
    public R query(@RequestParam(required = false) String condition) {
        List<KeyValVo> vos = new ArrayList<>();
        LambdaQueryWrapper<DeviceCtg> wrapper = new LambdaQueryWrapper<>();
        if (!Cools.isEmpty(condition)) {
            wrapper.like(DeviceCtg::getName, condition);
        }
        deviceCtgService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
                item -> vos.add(new KeyValVo(item.getId(), item.getName()))
        );
        return R.ok().add(vos);
    }
    @PreAuthorize("hasAuthority('core:deviceCtg:list')")
    @PostMapping("/deviceCtg/export")
    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
        ExcelUtil.build(ExcelUtil.create(deviceCtgService.list(), DeviceCtg.class), response);
    }
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/DeviceCtg.java
New file
@@ -0,0 +1,206 @@
package com.zy.asrs.wcs.core.entity;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.zy.asrs.wcs.system.entity.Host;
import com.zy.asrs.wcs.system.entity.User;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.wcs.system.service.UserService;
import com.zy.asrs.wcs.system.service.HostService;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("rcs_device_ctg")
public class DeviceCtg implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 编号
     */
    @ApiModelProperty(value= "编号")
    private String uuid;
    /**
     * 名称
     */
    @ApiModelProperty(value= "名称")
    private String name;
    /**
     * 标识
     */
    @ApiModelProperty(value= "标识")
    private String flag;
    /**
     * 状态 1: 正常  0: 禁用
     */
    @ApiModelProperty(value= "状态 1: 正常  0: 禁用  ")
    private Integer status;
    /**
     * 添加人员
     */
    @ApiModelProperty(value= "添加人员")
    private Long createBy;
    /**
     * 添加时间
     */
    @ApiModelProperty(value= "添加时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 修改人员
     */
    @ApiModelProperty(value= "修改人员")
    private Long updateBy;
    /**
     * 修改时间
     */
    @ApiModelProperty(value= "修改时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * 备注
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    /**
     * 是否删除 1: 是  0: 否
     */
    @ApiModelProperty(value= "是否删除 1: 是  0: 否  ")
    @TableLogic
    private Integer deleted;
    /**
     * 所属机构
     */
    @ApiModelProperty(value= "所属机构")
    private Long hostId;
    public DeviceCtg() {}
    public DeviceCtg(String uuid,String name,String flag,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo,Integer deleted,Long hostId) {
        this.uuid = uuid;
        this.name = name;
        this.flag = flag;
        this.status = status;
        this.createBy = createBy;
        this.createTime = createTime;
        this.updateBy = updateBy;
        this.updateTime = updateTime;
        this.memo = memo;
        this.deleted = deleted;
        this.hostId = hostId;
    }
//    DeviceCtg deviceCtg = new DeviceCtg(
//            null,    // 编号
//            null,    // 名称[非空]
//            null,    // 标识
//            null,    // 状态
//            null,    // 添加人员
//            null,    // 添加时间
//            null,    // 修改人员
//            null,    // 修改时间
//            null,    // 备注
//            null,    // 是否删除
//            null    // 所属机构
//    );
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
            case 1:
                return "正常";
            case 0:
                return "禁用";
            default:
                return String.valueOf(this.status);
        }
    }
    public String getCreateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.createBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        return null;
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getUpdateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.updateBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        return null;
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public String getDeleted$(){
        if (null == this.deleted){ return null; }
        switch (this.deleted){
            case 1:
                return "是";
            case 0:
                return "否";
            default:
                return String.valueOf(this.deleted);
        }
    }
    public String getHostId$(){
        HostService service = SpringUtils.getBean(HostService.class);
        Host host = service.getById(this.hostId);
        if (!Cools.isEmpty(host)){
            return String.valueOf(host.getName());
        }
        return null;
    }
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/DeviceCtgMapper.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.wcs.core.mapper;
import com.zy.asrs.wcs.core.entity.DeviceCtg;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface DeviceCtgMapper extends BaseMapper<DeviceCtg> {
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/command/ShuttleAssignCommand.java
New file
@@ -0,0 +1,67 @@
package com.zy.asrs.wcs.core.model.command;
import com.zy.asrs.wcs.core.model.NavigateNode;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class ShuttleAssignCommand {
    /**
     * 四向穿梭车号
     */
    private Short shuttleNo = 0;
    /**
     * 任务号
     */
    private Short taskNo = 0;
    /**
     * 作业类型
     * 1:  入库
     * 2: 出库
     * 3: 托盘顶升
     * 4: 托盘下降
     * 5: 左移
     * 6: 右移
     * 7: 前移
     * 8: 后移
     * 9: 充电
     */
    private Short taskMode = 0;
    /**
     * 源库位
     */
    private String sourceLocNo;
    /**
     * 目标库位
     */
    private String locNo;
    /**
     * 命令list
     */
    private List<ShuttleCommand> commands = new ArrayList<>();
    /**
     * 是否自动,true:自动模式,false:手动模式
     */
    private Boolean auto = true;
    /**
     * 是否为充电任务。true:是,false:否
     */
    private Boolean charge = false;
    /**
     * 当前任务所占用的节点list
     */
    private List<NavigateNode> nodes;
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/command/ShuttleCommand.java
New file
@@ -0,0 +1,121 @@
package com.zy.asrs.wcs.core.model.command;
import com.zy.asrs.wcs.core.model.NavigateNode;
import lombok.Data;
import java.util.List;
/**
 * 四向穿梭车命令报文
 */
@Data
public class ShuttleCommand {
    /**
     * 四向穿梭车号
     */
    private Short shuttleNo = 0;
    /**
     * 任务号
     */
    private Short taskNo = 0;
    /**
     * 作业类型
     */
    private Short taskMode = 0;
    /**
     * 功能说明
     * 0、空
     * 1、正常移动
     * 2、托盘顶升
     * 3、强制移动
     * 4、查找定位点
     * 5、充电开关
     * 6、系统复位
     * 7、紧急停止
     * 8、IO控制
     * 9、行走电机强制移动(输入为脉冲指令)
     * 10、升降伺服强制移动(输入为脉冲指令)
     * 控制指令字
     */
    private Short commandWord;
    /**
     * 启始二维编号
     */
    private Short startCodeNum;
    /**
     * 中间二维编号
     */
    private Short middleCodeNum;
    /**
     * 目标二维编号
     */
    private Short distCodeNum;
    /**
     * 起点到目标点的距离长度
     */
    private Integer startToDistDistance;
    /**
     * 中间点到目标点的距离长度
     */
    private Integer middleToDistDistance;
    /**
     * 小车运行方向
     */
    private Short runDirection;
    /**
     * 托盘顶升
     */
    private Short palletLift;
    /**
     * 小车强制移动距离
     */
    private Integer forceMoveDistance;
    /**
     * 充电开关
     */
    private Short chargeSwitch;
    /**
     * 小车IO控制
     */
    private Short IOControl;
    /**
     * 小车运行速度
     */
    private Short runSpeed;
    /**
     * 小车雷达备用
     */
    private Short radarTmp;
    /**
     * 指令结束位
     */
    private Short commandEnd;
    /**
     * 命令是否完成,默认false未完成
     */
    private Boolean complete = false;
    /**
     * 行走命令所占用的节点list
     */
    private List<NavigateNode> nodes;
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/DeviceCtgType.java
New file
@@ -0,0 +1,39 @@
package com.zy.asrs.wcs.core.model.enums;
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wcs.core.entity.DeviceCtg;
import com.zy.asrs.wcs.core.service.DeviceCtgService;
public enum DeviceCtgType {
    CONVEYOR,
    CRANE,
    LIFT,
    SHUTTLE,
    AGV,
    ;
    DeviceCtgType() {
    }
    public long val() {
        DeviceCtgService service = SpringUtils.getBean(DeviceCtgService.class);
        DeviceCtg entity = service.selectByFlag(this.toString());
        if (entity == null) {
            throw new CoolException("DeviceCtgType Error!");
        }
        return entity.getId();
    }
    public static DeviceCtgType get(String el) {
        for (DeviceCtgType value : DeviceCtgType.values()) {
            if (el.equals(value.toString())) {
                return value;
            }
        }
        return null;
    }
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MotionStsType.java
New file
@@ -0,0 +1,31 @@
package com.zy.asrs.wcs.core.model.enums;
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wcs.rcs.entity.MotionSts;
import com.zy.asrs.wcs.rcs.service.MotionStsService;
public enum MotionStsType {
    INIT,
    WAITING,
    EXECUTING,
    COMPLETE,
    CANCEL,
    ERROR,
    ;
    MotionStsType() {
    }
    public long val() {
        MotionStsService service = SpringUtils.getBean(MotionStsService.class);
        MotionSts entity = service.selectByFlag(this.toString());
        if (entity == null) {
            throw new CoolException("DeviceCtgType Error!");
        }
        return entity.getId();
    }
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/DeviceCtgService.java
New file
@@ -0,0 +1,10 @@
package com.zy.asrs.wcs.core.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wcs.core.entity.DeviceCtg;
public interface DeviceCtgService extends IService<DeviceCtg> {
    DeviceCtg selectByFlag(String flag);
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/DeviceCtgServiceImpl.java
New file
@@ -0,0 +1,18 @@
package com.zy.asrs.wcs.core.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.wcs.core.mapper.DeviceCtgMapper;
import com.zy.asrs.wcs.core.entity.DeviceCtg;
import com.zy.asrs.wcs.core.service.DeviceCtgService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service("deviceCtgService")
public class DeviceCtgServiceImpl extends ServiceImpl<DeviceCtgMapper, DeviceCtg> implements DeviceCtgService {
    @Override
    public DeviceCtg selectByFlag(String flag) {
        return this.getOne(new LambdaQueryWrapper<DeviceCtg>().eq(DeviceCtg::getFlag, flag));
    }
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/entity/Motion.java
@@ -3,6 +3,8 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import com.zy.asrs.wcs.core.entity.DeviceCtg;
import com.zy.asrs.wcs.core.service.DeviceCtgService;
import com.zy.asrs.wcs.rcs.service.DeviceTypeService;
import com.zy.asrs.wcs.rcs.service.MotionCtgService;
import com.zy.asrs.wcs.rcs.service.MotionStsService;
@@ -101,7 +103,7 @@
     * 设备类型
     */
    @ApiModelProperty(value= "设备类型")
    private Long deviceType;
    private Long deviceCtg;
    /**
     * 设备
@@ -238,7 +240,7 @@
    public Motion() {}
    public Motion(String uuid,Integer wrkNo,String serialNo,String title,Integer priority,Integer sync,Long motionCtg,Long motionSts,Long deviceType,String device,String origin,Integer oriDrt,String target,Integer tarDrt,String dockNo,Date ioTime,Date startTime,Date endTime,Date errTime,Long errCode,String errDesc,String temp,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo,Integer deleted,Long hostId) {
    public Motion(String uuid,Integer wrkNo,String serialNo,String title,Integer priority,Integer sync,Long motionCtg,Long motionSts,Long deviceCtg,String device,String origin,Integer oriDrt,String target,Integer tarDrt,String dockNo,Date ioTime,Date startTime,Date endTime,Date errTime,Long errCode,String errDesc,String temp,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo,Integer deleted,Long hostId) {
        this.uuid = uuid;
        this.wrkNo = wrkNo;
        this.serialNo = serialNo;
@@ -247,7 +249,7 @@
        this.sync = sync;
        this.motionCtg = motionCtg;
        this.motionSts = motionSts;
        this.deviceType = deviceType;
        this.deviceCtg = deviceCtg;
        this.device = device;
        this.origin = origin;
        this.oriDrt = oriDrt;
@@ -335,10 +337,10 @@
    }
    public String getDeviceType$(){
        DeviceTypeService service = SpringUtils.getBean(DeviceTypeService.class);
        DeviceType deviceType = service.getById(this.deviceType);
        if (!Cools.isEmpty(deviceType)){
            return String.valueOf(deviceType.getName());
        DeviceCtgService service = SpringUtils.getBean(DeviceCtgService.class);
        DeviceCtg deviceCtg = service.getById(this.deviceCtg);
        if (!Cools.isEmpty(deviceCtg)){
            return String.valueOf(deviceCtg.getName());
        }
        return null;
    }
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/MotionStsService.java
@@ -5,4 +5,6 @@
public interface MotionStsService extends IService<MotionSts> {
    MotionSts selectByFlag(String flag);
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/impl/MotionStsServiceImpl.java
@@ -1,5 +1,6 @@
package com.zy.asrs.wcs.rcs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.wcs.rcs.mapper.MotionStsMapper;
import com.zy.asrs.wcs.rcs.entity.MotionSts;
import com.zy.asrs.wcs.rcs.service.MotionStsService;
@@ -9,4 +10,8 @@
@Service("motionStsService")
public class MotionStsServiceImpl extends ServiceImpl<MotionStsMapper, MotionSts> implements MotionStsService {
    @Override
    public MotionSts selectByFlag(String flag) {
        return this.getOne(new LambdaQueryWrapper<MotionSts>().eq(MotionSts::getFlag, flag));
    }
}
zy-asrs-wcs/src/main/java/deviceCtg.sql
New file
@@ -0,0 +1,9 @@
-- save deviceCtg record
-- mysql
insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `host_id`, `status`) values ( 'Motion设备类型管理', '0', '/core/deviceCtg', '/core/deviceCtg', '0' , '0', '1' , '1');
insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '查询Motion设备类型', '', '1', 'core:deviceCtg:list', '0', '1', '1');
insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '添加Motion设备类型', '', '1', 'core:deviceCtg:save', '1', '1', '1');
insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '修改Motion设备类型', '', '1', 'core:deviceCtg:update', '2', '1', '1');
insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '删除Motion设备类型', '', '1', 'core:deviceCtg:remove', '3', '1', '1');
zy-asrs-wcs/src/main/resources/mapper/core/DeviceCtgMapper.xml
New file
@@ -0,0 +1,5 @@
<?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.wcs.core.mapper.DeviceCtgMapper">
</mapper>