打印机配置

main
liutao 6 days ago
parent f10deea93a
commit 3c8384751e

@ -214,4 +214,7 @@ public interface ErrorCodeConstants {
ErrorCode DEVICE_LINE_CODE_EXISTS = new ErrorCode(100_501_0006, "设备产线编码已存在,请重新提交"); ErrorCode DEVICE_LINE_CODE_EXISTS = new ErrorCode(100_501_0006, "设备产线编码已存在,请重新提交");
ErrorCode DEVICE_LINE_CODE_NOT_EXISTS = new ErrorCode(100_501_0007, "设备产线编码不能为空"); ErrorCode DEVICE_LINE_CODE_NOT_EXISTS = new ErrorCode(100_501_0007, "设备产线编码不能为空");
ErrorCode DEVICE_CRITICAL_COMPONENT_NOT_EXISTS = new ErrorCode(100_501_0008, "设备关键件明细不存在"); ErrorCode DEVICE_CRITICAL_COMPONENT_NOT_EXISTS = new ErrorCode(100_501_0008, "设备关键件明细不存在");
// ========== 打印机配置 TODO 补充编号 ==========
ErrorCode CONFIG_NOT_EXISTS = new ErrorCode(100_601_0001, "打印机配置不存在");
} }

@ -0,0 +1,98 @@
package cn.iocoder.yudao.module.mes.controller.admin.printconfig;
import cn.iocoder.yudao.module.mes.controller.admin.printconfig.vo.PrinterConfigPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.printconfig.vo.PrinterConfigRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.printconfig.vo.PrinterConfigSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.printconfig.PrinterConfigDO;
import cn.iocoder.yudao.module.mes.service.printconfig.PrinterConfigService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
@Tag(name = "管理后台 - 打印机配置")
@RestController
@RequestMapping("/printer/config")
@Validated
public class PrinterConfigController {
@Resource
private PrinterConfigService configService;
@PostMapping("/create")
@Operation(summary = "创建打印机配置")
@PreAuthorize("@ss.hasPermission('printer:config:create')")
public CommonResult<Integer> createConfig(@Valid @RequestBody PrinterConfigSaveReqVO createReqVO) {
return success(configService.createConfig(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新打印机配置")
@PreAuthorize("@ss.hasPermission('printer:config:update')")
public CommonResult<Boolean> updateConfig(@Valid @RequestBody PrinterConfigSaveReqVO updateReqVO) {
configService.updateConfig(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除打印机配置")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('printer:config:delete')")
public CommonResult<Boolean> deleteConfig(@RequestParam("id") Integer id) {
configService.deleteConfig(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得打印机配置")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('printer:config:query')")
public CommonResult<PrinterConfigRespVO> getConfig(@RequestParam("id") Integer id) {
PrinterConfigDO config = configService.getConfig(id);
return success(BeanUtils.toBean(config, PrinterConfigRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得打印机配置分页")
@PreAuthorize("@ss.hasPermission('printer:config:query')")
public CommonResult<PageResult<PrinterConfigRespVO>> getConfigPage(@Valid PrinterConfigPageReqVO pageReqVO) throws UnknownHostException {
PageResult<PrinterConfigDO> pageResult = configService.getConfigPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, PrinterConfigRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出打印机配置 Excel")
@PreAuthorize("@ss.hasPermission('printer:config:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportConfigExcel(@Valid PrinterConfigPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<PrinterConfigDO> list = configService.getConfigPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "打印机配置.xls", "数据", PrinterConfigRespVO.class,
BeanUtils.toBean(list, PrinterConfigRespVO.class));
}
}

@ -0,0 +1,36 @@
package cn.iocoder.yudao.module.mes.controller.admin.printconfig.vo;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 打印机配置分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PrinterConfigPageReqVO extends PageParam {
@Schema(description = "主机名如PACKING-PC-01不可修改", example = "李四")
private String hostName;
@Schema(description = "系统打印机名称,关联下拉选项", example = "赵六")
private String systemPrinterName;
@Schema(description = "是否默认0-否1-是")
private Boolean isDefault;
@Schema(description = "是否启用0-禁用1-启用")
private Boolean isEnabled;
@Schema(description = "备注,记录打印机用途说明,用户不可修改", example = "随便")
private String remark;
@Schema(description = "创建时间")
private LocalDateTime createdAt;
@Schema(description = "更新时间")
private LocalDateTime updatedAt;
}

@ -0,0 +1,46 @@
package cn.iocoder.yudao.module.mes.controller.admin.printconfig.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 打印机配置 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PrinterConfigRespVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14325")
@ExcelProperty("主键ID")
private Integer id;
@Schema(description = "主机名如PACKING-PC-01不可修改", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
@ExcelProperty("主机名如PACKING-PC-01不可修改")
private String hostName;
@Schema(description = "系统打印机名称,关联下拉选项", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@ExcelProperty("系统打印机名称,关联下拉选项")
private String systemPrinterName;
@Schema(description = "是否默认0-否1-是", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("是否默认0-否1-是")
private Boolean isDefault;
@Schema(description = "是否启用0-禁用1-启用", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("是否启用0-禁用1-启用")
private Boolean isEnabled;
@Schema(description = "备注,记录打印机用途说明,用户不可修改", example = "随便")
@ExcelProperty("备注,记录打印机用途说明,用户不可修改")
private String remark;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createdAt;
@Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("更新时间")
private LocalDateTime updatedAt;
}

@ -0,0 +1,43 @@
package cn.iocoder.yudao.module.mes.controller.admin.printconfig.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.constraints.*;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 打印机配置新增/修改 Request VO")
@Data
public class PrinterConfigSaveReqVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14325")
private Integer id;
@Schema(description = "主机名如PACKING-PC-01不可修改", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
@NotEmpty(message = "主机名如PACKING-PC-01不可修改不能为空")
private String hostName;
@Schema(description = "系统打印机名称,关联下拉选项", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@NotEmpty(message = "系统打印机名称,关联下拉选项不能为空")
private String systemPrinterName;
@Schema(description = "是否默认0-否1-是", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否默认0-否1-是不能为空")
private Boolean isDefault;
@Schema(description = "是否启用0-禁用1-启用", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否启用0-禁用1-启用不能为空")
private Boolean isEnabled;
@Schema(description = "备注,记录打印机用途说明,用户不可修改", example = "随便")
private String remark;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "创建时间不能为空")
private LocalDateTime createdAt;
@Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "更新时间不能为空")
private LocalDateTime updatedAt;
}

@ -0,0 +1,59 @@
package cn.iocoder.yudao.module.mes.dal.dataobject.printconfig;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author
*/
@TableName("mes_printer_config")
@KeySequence("printer_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PrinterConfigDO extends BaseDO {
/**
* ID
*/
@TableId
private Integer id;
/**
* PACKING-PC-01
*/
private String hostName;
/**
*
*/
private String systemPrinterName;
/**
* 0-1-
*/
private Boolean isDefault;
/**
* 0-1-
*/
private Boolean isEnabled;
/**
*
*/
private String remark;
/**
*
*/
private LocalDateTime createdAt;
/**
*
*/
private LocalDateTime updatedAt;
}

@ -0,0 +1,33 @@
package cn.iocoder.yudao.module.mes.dal.mysql.printconfig;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.mes.controller.admin.printconfig.vo.PrinterConfigPageReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.printconfig.PrinterConfigDO;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
*
* @author
*/
@Mapper
public interface PrinterConfigMapper extends BaseMapperX<PrinterConfigDO> {
default PageResult<PrinterConfigDO> selectPage(PrinterConfigPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<PrinterConfigDO>()
.likeIfPresent(PrinterConfigDO::getHostName, reqVO.getHostName())
.likeIfPresent(PrinterConfigDO::getSystemPrinterName, reqVO.getSystemPrinterName())
.eqIfPresent(PrinterConfigDO::getIsDefault, reqVO.getIsDefault())
.eqIfPresent(PrinterConfigDO::getIsEnabled, reqVO.getIsEnabled())
.eqIfPresent(PrinterConfigDO::getRemark, reqVO.getRemark())
.eqIfPresent(PrinterConfigDO::getCreatedAt, reqVO.getCreatedAt())
.eqIfPresent(PrinterConfigDO::getUpdatedAt, reqVO.getUpdatedAt())
.orderByDesc(PrinterConfigDO::getId));
}
}

@ -0,0 +1,57 @@
package cn.iocoder.yudao.module.mes.service.printconfig;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.module.mes.controller.admin.printconfig.vo.PrinterConfigPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.printconfig.vo.PrinterConfigSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.printconfig.PrinterConfigDO;
/**
* Service
*
* @author
*/
public interface PrinterConfigService {
/**
*
*
* @param createReqVO
* @return
*/
Integer createConfig(@Valid PrinterConfigSaveReqVO createReqVO);
/**
*
*
* @param updateReqVO
*/
void updateConfig(@Valid PrinterConfigSaveReqVO updateReqVO);
/**
*
*
* @param id
*/
void deleteConfig(Integer id);
/**
*
*
* @param id
* @return
*/
PrinterConfigDO getConfig(Integer id);
/**
*
*
* @param pageReqVO
* @return
*/
PageResult<PrinterConfigDO> getConfigPage(PrinterConfigPageReqVO pageReqVO);
}

@ -0,0 +1,74 @@
package cn.iocoder.yudao.module.mes.service.printconfig;
import cn.iocoder.yudao.module.mes.controller.admin.printconfig.vo.PrinterConfigPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.printconfig.vo.PrinterConfigSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.printconfig.PrinterConfigDO;
import cn.iocoder.yudao.module.mes.dal.mysql.printconfig.PrinterConfigMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.CONFIG_NOT_EXISTS;
/**
* Service
*
* @author
*/
@Service
@Validated
public class PrinterConfigServiceImpl implements PrinterConfigService {
@Resource
private PrinterConfigMapper printerConfigMapper;
@Override
public Integer createConfig(PrinterConfigSaveReqVO createReqVO) {
// 插入
PrinterConfigDO config = BeanUtils.toBean(createReqVO, PrinterConfigDO.class);
printerConfigMapper.insert(config);
// 返回
return config.getId();
}
@Override
public void updateConfig(PrinterConfigSaveReqVO updateReqVO) {
// 校验存在
validateConfigExists(updateReqVO.getId());
// 更新
PrinterConfigDO updateObj = BeanUtils.toBean(updateReqVO, PrinterConfigDO.class);
printerConfigMapper.updateById(updateObj);
}
@Override
public void deleteConfig(Integer id) {
// 校验存在
validateConfigExists(id);
// 删除
printerConfigMapper.deleteById(id);
}
private void validateConfigExists(Integer id) {
if (printerConfigMapper.selectById(id) == null) {
throw exception(CONFIG_NOT_EXISTS);
}
}
@Override
public PrinterConfigDO getConfig(Integer id) {
return printerConfigMapper.selectById(id);
}
@Override
public PageResult<PrinterConfigDO> getConfigPage(PrinterConfigPageReqVO pageReqVO) {
return printerConfigMapper.selectPage(pageReqVO);
}
}

@ -0,0 +1,12 @@
<?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="cn.iocoder.yudao.module.mes.dal.mysql.printconfig.PrinterConfigMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>
Loading…
Cancel
Save