|  |  | 
 |  |  | -- save @{SIMPLEENTITYNAME} record | 
 |  |  | -- mysql | 
 |  |  | insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `host_id`, `status`) values ( '@{TABLEDESC}管理', '0', '/@{ITEMNAME}/@{SIMPLEENTITYNAME}', /@{ITEMNAME}/@{SIMPLEENTITYNAME}', '0' , '0', '1' , '1'); | 
 |  |  | insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `host_id`, `status`) values ( '@{TABLEDESC}管理', '0', '/@{ITEMNAME}/@{SIMPLEENTITYNAME}', '/@{ITEMNAME}/@{SIMPLEENTITYNAME}', '0' , '0', '1' , '1'); | 
 |  |  |  | 
 |  |  | insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '查询@{TABLEDESC}', '', '1', '@{ITEMNAME}:@{SIMPLEENTITYNAME}:list', '0', '1', '1'); | 
 |  |  | insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '添加@{TABLEDESC}', '', '1', '@{ITEMNAME}:@{SIMPLEENTITYNAME}:save', '1', '1', '1'); | 
 
| New file | 
 |  |  | 
 |  |  | 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.system.entity.Dict; | 
 |  |  | import com.zy.asrs.wcs.system.service.DictService; | 
 |  |  | 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 DictController extends BaseController { | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private DictService dictService; | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('system:dict:list')") | 
 |  |  |     @PostMapping("/dict/page") | 
 |  |  |     public R page(@RequestBody Map<String, Object> map) { | 
 |  |  |         BaseParam baseParam = buildParam(map, BaseParam.class); | 
 |  |  |         PageParam<Dict, BaseParam> pageParam = new PageParam<>(baseParam, Dict.class); | 
 |  |  |         return R.ok().add(dictService.page(pageParam, pageParam.buildWrapper(true))); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('system:dict:list')") | 
 |  |  |     @PostMapping("/dict/list") | 
 |  |  |     public R list(@RequestBody Map<String, Object> map) { | 
 |  |  |         return R.ok().add(dictService.list()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('system:dict:list')") | 
 |  |  |     @GetMapping("/dict/{id}") | 
 |  |  |     public R get(@PathVariable("id") Long id) { | 
 |  |  |         return R.ok().add(dictService.getById(id)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('system:dict:save')") | 
 |  |  |     @OperationLog("添加字典") | 
 |  |  |     @PostMapping("/dict/save") | 
 |  |  |     public R save(@RequestBody Dict dict) { | 
 |  |  |         if (!dictService.save(dict)) { | 
 |  |  |             return R.error("添加失败"); | 
 |  |  |         } | 
 |  |  |         return R.ok("添加成功"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('system:dict:update')") | 
 |  |  |     @OperationLog("修改字典") | 
 |  |  |     @PostMapping("/dict/update") | 
 |  |  |     public R update(@RequestBody Dict dict) { | 
 |  |  |         if (!dictService.updateById(dict)) { | 
 |  |  |             return R.error("修改失败"); | 
 |  |  |         } | 
 |  |  |         return R.ok("修改成功"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('system:dict:remove')") | 
 |  |  |     @OperationLog("删除字典") | 
 |  |  |     @PostMapping("/dict/remove/{ids}") | 
 |  |  |     public R remove(@PathVariable Long[] ids) { | 
 |  |  |         if (!dictService.removeByIds(Arrays.asList(ids))) { | 
 |  |  |             return R.error("删除失败"); | 
 |  |  |         } | 
 |  |  |         return R.ok("删除成功"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('system:dict:list')") | 
 |  |  |     @PostMapping("/dict/query") | 
 |  |  |     public R query(@RequestParam(required = false) String condition) { | 
 |  |  |         List<KeyValVo> vos = new ArrayList<>(); | 
 |  |  |         LambdaQueryWrapper<Dict> wrapper = new LambdaQueryWrapper<>(); | 
 |  |  |         if (!Cools.isEmpty(condition)) { | 
 |  |  |             wrapper.like(Dict::getName, condition); | 
 |  |  |         } | 
 |  |  |         dictService.page(new Page<>(1, 30), wrapper).getRecords().forEach( | 
 |  |  |                 item -> vos.add(new KeyValVo(item.getId(), item.getName())) | 
 |  |  |         ); | 
 |  |  |         return R.ok().add(vos); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('system:dict:list')") | 
 |  |  |     @PostMapping("/dict/export") | 
 |  |  |     public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { | 
 |  |  |         ExcelUtil.build(ExcelUtil.create(dictService.list(), Dict.class), response); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } | 
 
| New file | 
 |  |  | 
 |  |  | package com.zy.asrs.wcs.system.entity; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.annotation.TableLogic; | 
 |  |  | import java.text.SimpleDateFormat; | 
 |  |  | import java.util.Date; | 
 |  |  | import org.springframework.format.annotation.DateTimeFormat; | 
 |  |  | import java.text.SimpleDateFormat; | 
 |  |  | import java.util.Date; | 
 |  |  |  | 
 |  |  | 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("sys_dict") | 
 |  |  | public class Dict 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; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 类型 1: 布尔值  2: 数字  3: 文本  4: JSON  5: 图片   | 
 |  |  |      */ | 
 |  |  |     @ApiModelProperty(value= "类型 1: 布尔值  2: 数字  3: 文本  4: JSON  5: 图片  ") | 
 |  |  |     private Integer type; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 标识 | 
 |  |  |      */ | 
 |  |  |     @ApiModelProperty(value= "标识") | 
 |  |  |     private String flag; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 字典值 | 
 |  |  |      */ | 
 |  |  |     @ApiModelProperty(value= "字典值") | 
 |  |  |     private String value; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 排序 | 
 |  |  |      */ | 
 |  |  |     @ApiModelProperty(value= "排序") | 
 |  |  |     private Integer sort; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 所属机构 | 
 |  |  |      */ | 
 |  |  |     @ApiModelProperty(value= "所属机构") | 
 |  |  |     private Long hostId; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 状态 1: 正常  0: 禁用   | 
 |  |  |      */ | 
 |  |  |     @ApiModelProperty(value= "状态 1: 正常  0: 禁用  ") | 
 |  |  |     private Integer status; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 是否删除 1: 是  0: 否   | 
 |  |  |      */ | 
 |  |  |     @ApiModelProperty(value= "是否删除 1: 是  0: 否  ") | 
 |  |  |     @TableLogic | 
 |  |  |     private Integer deleted; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 添加时间 | 
 |  |  |      */ | 
 |  |  |     @ApiModelProperty(value= "添加时间") | 
 |  |  |     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") | 
 |  |  |     private Date createTime; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 添加人员 | 
 |  |  |      */ | 
 |  |  |     @ApiModelProperty(value= "添加人员") | 
 |  |  |     private Long createBy; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 修改时间 | 
 |  |  |      */ | 
 |  |  |     @ApiModelProperty(value= "修改时间") | 
 |  |  |     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") | 
 |  |  |     private Date updateTime; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 修改人员 | 
 |  |  |      */ | 
 |  |  |     @ApiModelProperty(value= "修改人员") | 
 |  |  |     private Long updateBy; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 备注 | 
 |  |  |      */ | 
 |  |  |     @ApiModelProperty(value= "备注") | 
 |  |  |     private String memo; | 
 |  |  |  | 
 |  |  |     public Dict() {} | 
 |  |  |  | 
 |  |  |     public Dict(String uuid,String name,Integer type,String flag,String value,Integer sort,Long hostId,Integer status,Integer deleted,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) { | 
 |  |  |         this.uuid = uuid; | 
 |  |  |         this.name = name; | 
 |  |  |         this.type = type; | 
 |  |  |         this.flag = flag; | 
 |  |  |         this.value = value; | 
 |  |  |         this.sort = sort; | 
 |  |  |         this.hostId = hostId; | 
 |  |  |         this.status = status; | 
 |  |  |         this.deleted = deleted; | 
 |  |  |         this.createTime = createTime; | 
 |  |  |         this.createBy = createBy; | 
 |  |  |         this.updateTime = updateTime; | 
 |  |  |         this.updateBy = updateBy; | 
 |  |  |         this.memo = memo; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | //    Dict dict = new Dict( | 
 |  |  | //            null,    // 编号 | 
 |  |  | //            null,    // 字典名称 | 
 |  |  | //            null,    // 类型 | 
 |  |  | //            null,    // 标识 | 
 |  |  | //            null,    // 字典值 | 
 |  |  | //            null,    // 排序 | 
 |  |  | //            null,    // 所属机构 | 
 |  |  | //            null,    // 状态 | 
 |  |  | //            null,    // 是否删除 | 
 |  |  | //            null,    // 添加时间 | 
 |  |  | //            null,    // 添加人员 | 
 |  |  | //            null,    // 修改时间 | 
 |  |  | //            null,    // 修改人员 | 
 |  |  | //            null    // 备注 | 
 |  |  | //    ); | 
 |  |  |  | 
 |  |  |     public String getType$(){ | 
 |  |  |         if (null == this.type){ return null; } | 
 |  |  |         switch (this.type){ | 
 |  |  |             case 1: | 
 |  |  |                 return "布尔值"; | 
 |  |  |             case 2: | 
 |  |  |                 return "数字"; | 
 |  |  |             case 3: | 
 |  |  |                 return "文本"; | 
 |  |  |             case 4: | 
 |  |  |                 return "JSON"; | 
 |  |  |             case 5: | 
 |  |  |                 return "图片"; | 
 |  |  |             default: | 
 |  |  |                 return String.valueOf(this.type); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     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; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     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 getDeleted$(){ | 
 |  |  |         if (null == this.deleted){ return null; } | 
 |  |  |         switch (this.deleted){ | 
 |  |  |             case 1: | 
 |  |  |                 return "是"; | 
 |  |  |             case 0: | 
 |  |  |                 return "否"; | 
 |  |  |             default: | 
 |  |  |                 return String.valueOf(this.deleted); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getCreateTime$(){ | 
 |  |  |         if (Cools.isEmpty(this.createTime)){ | 
 |  |  |             return ""; | 
 |  |  |         } | 
 |  |  |         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     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 getUpdateTime$(){ | 
 |  |  |         if (Cools.isEmpty(this.updateTime)){ | 
 |  |  |             return ""; | 
 |  |  |         } | 
 |  |  |         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     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; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } | 
 
| New file | 
 |  |  | 
 |  |  | package com.zy.asrs.wcs.system.mapper; | 
 |  |  |  | 
 |  |  | import com.zy.asrs.wcs.system.entity.Dict; | 
 |  |  | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | 
 |  |  | import org.apache.ibatis.annotations.Mapper; | 
 |  |  | import org.springframework.stereotype.Repository; | 
 |  |  |  | 
 |  |  | @Mapper | 
 |  |  | @Repository | 
 |  |  | public interface DictMapper extends BaseMapper<Dict> { | 
 |  |  |  | 
 |  |  | } | 
 
| New file | 
 |  |  | 
 |  |  | package com.zy.asrs.wcs.system.service; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.extension.service.IService; | 
 |  |  | import com.zy.asrs.wcs.system.entity.Dict; | 
 |  |  |  | 
 |  |  | public interface DictService extends IService<Dict> { | 
 |  |  |  | 
 |  |  | } | 
 
| New file | 
 |  |  | 
 |  |  | package com.zy.asrs.wcs.system.service.impl; | 
 |  |  |  | 
 |  |  | import com.zy.asrs.wcs.system.mapper.DictMapper; | 
 |  |  | import com.zy.asrs.wcs.system.entity.Dict; | 
 |  |  | import com.zy.asrs.wcs.system.service.DictService; | 
 |  |  | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  |  | 
 |  |  | @Service("dictService") | 
 |  |  | public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements DictService { | 
 |  |  |  | 
 |  |  | } | 
 
 |  |  | 
 |  |  | //        generator.username="sa"; | 
 |  |  | //        generator.password="Zoneyung@zy56$"; | 
 |  |  |  | 
 |  |  |         generator.table="wcs_device_plc"; | 
 |  |  |         generator.tableName="device_plc"; | 
 |  |  |         generator.packagePath="com.zy.asrs.wcs.rcs"; | 
 |  |  |         generator.table="sys_dict"; | 
 |  |  |         generator.tableName="字典"; | 
 |  |  |         generator.packagePath="com.zy.asrs.wcs.system"; | 
 |  |  |  | 
 |  |  |         generator.build(); | 
 |  |  |     } | 
 
| New file | 
 |  |  | 
 |  |  | <?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.system.mapper.DictMapper"> | 
 |  |  |  | 
 |  |  | </mapper> |