diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/EquipmentEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/EquipmentEntity.java index 532ff79c..b7ea22db 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/EquipmentEntity.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/EquipmentEntity.java @@ -114,5 +114,10 @@ public class EquipmentEntity extends BaseEntity { */ @Schema(description = "设备分类") private String categorys; + /** + * 设备分类 + */ + @Schema(description = "附件链接") + private String attachLink; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/MeteringRemindSetEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/MeteringRemindSetEntity.java new file mode 100644 index 00000000..fa10fc58 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/MeteringRemindSetEntity.java @@ -0,0 +1,87 @@ +package org.springblade.desk.device.pojo.entity; + +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.math.BigDecimal; +import java.util.Date; + +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serial; +import java.util.HashMap; +import java.util.Map; + +/** + * 计量提醒设置 实体类 + * + * @author qyl + * @since 2026-01-04 + */ +@Data +@TableName("MES_METERING_REMIND_SET") +@Schema(description = "MeteringRemindSet对象") +@EqualsAndHashCode(callSuper = true) +public class MeteringRemindSetEntity extends BaseEntity { + /** + * 黄色 + */ + public static Long COLOR_YELLOW = 1L; + /** + * 浅红色 + */ + public static Long COLOR_LIGHT_RED = 2L; + + public static Map colorMap = new HashMap(); + + static { + colorMap.put(COLOR_YELLOW, "黄色"); + colorMap.put(COLOR_LIGHT_RED, "浅红色"); + } + + /** + * 仪表量具 + */ + public static Long CATEGORY_METER = 1L; + /** + * 设备 + */ + public static Long CATEGORY_EQU = 2L; + + public static Map categoryMap = new HashMap(); + + static { + categoryMap.put(CATEGORY_METER, "仪表量具"); + categoryMap.put(CATEGORY_EQU, "设备"); + } + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 类别1仪表量具、2设备 + */ + @Schema(description = "类别1仪表量具、2设备") + private Long category; + /** + * 天数 + */ + @Schema(description = "天数") + private BigDecimal days; + /** + * 颜色1、黄色;2、浅红色 + */ + @Schema(description = "颜色1、黄色;2、浅红色") + private Long color; + + public String getCategoryText() { + return categoryMap.get(this.category); + } + + public String getColorText() { + return colorMap.get(this.color); + } +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/PackCycleEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/PackCycleEntity.java new file mode 100644 index 00000000..b27b980f --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/PackCycleEntity.java @@ -0,0 +1,81 @@ +package org.springblade.desk.device.pojo.entity; + +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.math.BigDecimal; +import java.util.Date; + +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serial; +import java.util.HashMap; +import java.util.Map; + +/** + * 打包周期 实体类 + * + * @author qyl + * @since 2026-01-04 + */ +@Data +@TableName("MES_PACK_CYCLE") +@Schema(description = "PackCycle对象") +@EqualsAndHashCode(callSuper = true) +public class PackCycleEntity extends BaseEntity { + public static Map cpcUnitMap = new HashMap<>(6); + /** + * 年 + */ + public static Long CPCUNIT_YEAR = 0L; + /** + * 月 + */ + public static Long CPCUNIT_MONTH = 1L; + /** + * 日 + */ + public static Long CPCUNIT_DAY = 2L; + /** + * 时 + */ + public static Long CPCUNIT_HOUR = 3L; + /** + * 分 + */ + public static Long CPCUNIT_MINUTE = 4L; + /** + * 秒 + */ + public static Long CPCUNIT_SECOND = 5L; + + static { + cpcUnitMap.put(CPCUNIT_YEAR, "年"); + cpcUnitMap.put(CPCUNIT_MONTH, "月"); + cpcUnitMap.put(CPCUNIT_DAY, "日"); + cpcUnitMap.put(CPCUNIT_HOUR, "时"); + cpcUnitMap.put(CPCUNIT_MINUTE, "分"); + cpcUnitMap.put(CPCUNIT_SECOND, "秒"); + } + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 周期数 + */ + @Schema(description = "周期数") + private BigDecimal cpcQuantity; + /** + * 周期单位 + */ + @Schema(description = "周期单位") + private Long cpcUnit; + + public String getCpcUnitTitle() { + return cpcUnitMap.get(this.cpcUnit); + } +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/excel/EquipmentExcel.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/excel/EquipmentExcel.java index ddaff0d3..dbb20d0a 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/excel/EquipmentExcel.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/excel/EquipmentExcel.java @@ -142,5 +142,11 @@ public class EquipmentExcel implements Serializable { @ColumnWidth(20) @ExcelProperty("是否已删除") private Long isDeleted; + /** + * 是否已删除 + */ + @ColumnWidth(20) + @ExcelProperty("附件链接") + private String attachLink; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/excel/MeteringRemindSetExcel.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/excel/MeteringRemindSetExcel.java new file mode 100644 index 00000000..f97049fb --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/excel/MeteringRemindSetExcel.java @@ -0,0 +1,70 @@ +package org.springblade.desk.device.pojo.excel; + + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; + +import java.io.Serializable; +import java.io.Serial; + + +/** + * 计量提醒设置 Excel实体类 + * + * @author qyl + * @since 2026-01-04 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class MeteringRemindSetExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ColumnWidth(20) + @ExcelProperty("主键") + private BigDecimal id; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private String tenantId; + /** + * 是否已删除 + */ + @ColumnWidth(20) + @ExcelProperty("是否已删除") + private Long isDeleted; + /** + * 类别1仪表量具、2设备 + */ + @ColumnWidth(20) + @ExcelProperty("类别1仪表量具、2设备") + private Long category; + /** + * 天数 + */ + @ColumnWidth(20) + @ExcelProperty("天数") + private BigDecimal days; + /** + * 颜色1、黄色;2、浅红色 + */ + @ColumnWidth(20) + @ExcelProperty("颜色1、黄色;2、浅红色") + private Long color; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/excel/PackCycleExcel.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/excel/PackCycleExcel.java new file mode 100644 index 00000000..108d90af --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/excel/PackCycleExcel.java @@ -0,0 +1,63 @@ +package org.springblade.desk.device.pojo.excel; + + +import lombok.Data; + +import java.math.BigDecimal; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; + +import java.io.Serializable; +import java.io.Serial; + + +/** + * 打包周期 Excel实体类 + * + * @author qyl + * @since 2026-01-04 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class PackCycleExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private BigDecimal id; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private String tenantId; + /** + * 是否已删除 + */ + @ColumnWidth(20) + @ExcelProperty("是否已删除") + private Long isDeleted; + /** + * 周期数 + */ + @ColumnWidth(20) + @ExcelProperty("周期数") + private BigDecimal cpcQuantity; + /** + * 周期单位 + */ + @ColumnWidth(20) + @ExcelProperty("周期单位") + private Long cpcUnit; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/EquipmentStatusStatisticsVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/EquipmentStatusStatisticsVO.java new file mode 100644 index 00000000..465f5998 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/EquipmentStatusStatisticsVO.java @@ -0,0 +1,32 @@ +package org.springblade.desk.device.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.desk.device.pojo.entity.EquipmentEntity; + +/** + * 设备状态统计 视图实体类 + * + * @author qyl + * @since 2025-12-30 + */ +@Data +@Schema(description = "设备状态统计结果") +public class EquipmentStatusStatisticsVO { + // 设备总数 + @Schema(description = "设备总数") + private Integer totalCount; + + // 运行中的设备数量 + @Schema(description = "运行中的设备数量") + private Integer runningCount; + + // 停机设备数量 + @Schema(description = "停机设备数量") + private Integer stoppedCount; + + // 故障设备数量 + @Schema(description = "故障设备数量") + private Integer faultCount; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/MeteringRemindSetVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/MeteringRemindSetVO.java new file mode 100644 index 00000000..e558239c --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/MeteringRemindSetVO.java @@ -0,0 +1,27 @@ +package org.springblade.desk.device.pojo.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springblade.desk.device.pojo.entity.MeteringRemindSetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 计量提醒设置 视图实体类 + * + * @author qyl + * @since 2026-01-04 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MeteringRemindSetVO extends MeteringRemindSetEntity { + @Serial + private static final long serialVersionUID = 1L; + /** + * 主键ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/PackCycleVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/PackCycleVO.java new file mode 100644 index 00000000..3465665e --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/PackCycleVO.java @@ -0,0 +1,32 @@ +package org.springblade.desk.device.pojo.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springblade.desk.device.pojo.entity.PackCycleEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 打包周期 视图实体类 + * + * @author qyl + * @since 2026-01-04 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PackCycleVO extends PackCycleEntity { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + /** + * 时间单位名称 + */ + String unitName; +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/EquipmentController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/EquipmentController.java index 23bb58bb..dba4cb35 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/EquipmentController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/EquipmentController.java @@ -42,6 +42,7 @@ import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.desk.device.pojo.excel.EquipmentExcel; +import org.springblade.desk.device.pojo.vo.EquipmentStatusStatisticsVO; import org.springblade.desk.order.wrapper.AssayContentWrapper; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -139,6 +140,16 @@ public class EquipmentController extends BladeController { return R.status(equipmentService.deleteLogic(Func.toLongList(ids))); } + /** + * 设备状态数量统计 + */ + @GetMapping("/stateStatistics") + @ApiOperationSupport(order = 8) + @Operation(summary = "设备状态数量统计", description = "") + public R stateStatistics() { + EquipmentStatusStatisticsVO equipmentStatusStatisticsVO = equipmentService.stateStatistics(); + return R.data(equipmentStatusStatisticsVO); + } /** * 导出数据 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/FeiBaSetController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/FeiBaSetController.java index 86ec268c..ec4ff859 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/FeiBaSetController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/FeiBaSetController.java @@ -1,28 +1,3 @@ -/** - * BladeX Commercial License Agreement - * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. - *

- * Use of this software is governed by the Commercial License Agreement - * obtained after purchasing a license from BladeX. - *

- * 1. This software is for development use only under a valid license - * from BladeX. - *

- * 2. Redistribution of this software's source code to any third party - * without a commercial license is strictly prohibited. - *

- * 3. Licensees may copyright their own code but cannot use segments - * from this software for such purposes. Copyright of this software - * remains with BladeX. - *

- * Using this software signifies agreement to this License, and the software - * must not be used for illegal purposes. - *

- * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is - * not liable for any claims arising from secondary or illegal development. - *

- * Author: Chill Zhuang (bladejava@qq.com) - */ package org.springblade.desk.device.controller; import io.swagger.v3.oas.annotations.Parameters; @@ -141,6 +116,19 @@ public class FeiBaSetController extends BladeController { return R.status(feiBaSetService.deleteLogic(Func.toLongList(ids))); } + /** + * 飞靶设置 绑定设备 + */ + @PostMapping("/bind") + @ApiOperationSupport(order = 8) + @Operation(summary = "绑定设备", description = "传入飞靶ids和设备id") + public R bind( + @Parameter(description = "主键集合", required = true) @RequestParam String ids, + @Parameter(description = "设备id", required = true) @RequestParam Integer deviceId) { + Boolean result = feiBaSetService.bind(Func.toLongList(ids), deviceId); + return R.status(result); + } + /** * 导出数据 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/MeteringRemindSetController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/MeteringRemindSetController.java new file mode 100644 index 00000000..5407bf43 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/MeteringRemindSetController.java @@ -0,0 +1,129 @@ +package org.springblade.desk.device.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.IsAdmin; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.desk.device.pojo.excel.MeteringRemindSetExcel; +import org.springblade.desk.device.wrapper.PackCycleWrapper; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.desk.device.pojo.entity.MeteringRemindSetEntity; +import org.springblade.desk.device.pojo.vo.MeteringRemindSetVO; +import org.springblade.desk.device.wrapper.MeteringRemindSetWrapper; +import org.springblade.desk.device.service.IMeteringRemindSetService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; + +import java.util.Map; +import java.util.List; + +import jakarta.servlet.http.HttpServletResponse; + +/** + * 计量提醒设置 控制器 + * + * @author qyl + * @since 2026-01-04 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/meteringRemindSet") +@Tag(name = "计量提醒设置", description = "计量提醒设置接口") +public class MeteringRemindSetController extends BladeController { + + private final IMeteringRemindSetService meteringRemindSetService; + + /** + * 计量提醒设置 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入meteringRemindSet") + public R detail(MeteringRemindSetEntity meteringRemindSet) { + MeteringRemindSetEntity detail = meteringRemindSetService.getOne(Condition.getQueryWrapper(meteringRemindSet)); + return R.data(MeteringRemindSetWrapper.build().entityVO(detail)); + } + + /** + * 计量提醒设置 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入meteringRemindSet") + public R> page(MeteringRemindSetVO meteringRemindSet, Query query) { + IPage pages = meteringRemindSetService.selectMeteringRemindSetPage(Condition.getPage(query), meteringRemindSet); + return R.data(MeteringRemindSetWrapper.build().pageVO(pages)); + } + + /** + * 计量提醒设置 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入meteringRemindSet") + public R save(@Valid @RequestBody MeteringRemindSetEntity meteringRemindSet) { + return R.status(meteringRemindSetService.save(meteringRemindSet)); + } + + /** + * 计量提醒设置 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入meteringRemindSet") + public R update(@Valid @RequestBody MeteringRemindSetEntity meteringRemindSet) { + return R.status(meteringRemindSetService.updateById(meteringRemindSet)); + } + + /** + * 计量提醒设置 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入meteringRemindSet") + public R submit(@Valid @RequestBody MeteringRemindSetEntity meteringRemindSet) { + return R.status(meteringRemindSetService.saveOrUpdate(meteringRemindSet)); + } + + /** + * 计量提醒设置 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(meteringRemindSetService.deleteLogic(Func.toLongList(ids))); + } + + + /** + * 导出数据 + */ + @IsAdmin + @GetMapping("/export-meteringRemindSet") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入meteringRemindSet") + public void exportMeteringRemindSet(@Parameter(hidden = true) @RequestParam Map meteringRemindSet, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(meteringRemindSet, MeteringRemindSetEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(MeteringRemindSet::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(MeteringRemindSetEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = meteringRemindSetService.exportMeteringRemindSet(queryWrapper); + ExcelUtil.export(response, "计量提醒设置数据" + DateUtil.time(), "计量提醒设置数据表", list, MeteringRemindSetExcel.class); + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/PackCycleController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/PackCycleController.java new file mode 100644 index 00000000..246f77b3 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/PackCycleController.java @@ -0,0 +1,129 @@ +package org.springblade.desk.device.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.IsAdmin; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.desk.device.pojo.excel.PackCycleExcel; +import org.springblade.desk.device.wrapper.RackSetWrapper; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.desk.device.pojo.entity.PackCycleEntity; +import org.springblade.desk.device.pojo.vo.PackCycleVO; +import org.springblade.desk.device.wrapper.PackCycleWrapper; +import org.springblade.desk.device.service.IPackCycleService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; + +import java.util.Map; +import java.util.List; + +import jakarta.servlet.http.HttpServletResponse; + +/** + * 打包周期 控制器 + * + * @author qyl + * @since 2026-01-04 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/packCycle") +@Tag(name = "打包周期", description = "打包周期接口") +public class PackCycleController extends BladeController { + + private final IPackCycleService packCycleService; + + /** + * 打包周期 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入packCycle") + public R detail(PackCycleEntity packCycle) { + PackCycleEntity detail = packCycleService.getOne(Condition.getQueryWrapper(packCycle)); + return R.data(PackCycleWrapper.build().entityVO(detail)); + } + + /** + * 打包周期 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入packCycle") + public R> page(PackCycleVO packCycle, Query query) { + IPage pages = packCycleService.selectPackCyclePage(Condition.getPage(query), packCycle); + return R.data(PackCycleWrapper.build().pageVO(pages)); + } + + /** + * 打包周期 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入packCycle") + public R save(@Valid @RequestBody PackCycleEntity packCycle) { + return R.status(packCycleService.save(packCycle)); + } + + /** + * 打包周期 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入packCycle") + public R update(@Valid @RequestBody PackCycleEntity packCycle) { + return R.status(packCycleService.updateById(packCycle)); + } + + /** + * 打包周期 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入packCycle") + public R submit(@Valid @RequestBody PackCycleEntity packCycle) { + return R.status(packCycleService.saveOrUpdate(packCycle)); + } + + /** + * 打包周期 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(packCycleService.deleteLogic(Func.toLongList(ids))); + } + + + /** + * 导出数据 + */ + @IsAdmin + @GetMapping("/export-packCycle") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入packCycle") + public void exportPackCycle(@Parameter(hidden = true) @RequestParam Map packCycle, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(packCycle, PackCycleEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(PackCycle::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(PackCycleEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = packCycleService.exportPackCycle(queryWrapper); + ExcelUtil.export(response, "打包周期数据" + DateUtil.time(), "打包周期数据表", list, PackCycleExcel.class); + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/RackSetController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/RackSetController.java index ad183a91..7e00d93e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/RackSetController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/RackSetController.java @@ -141,6 +141,18 @@ public class RackSetController extends BladeController { return R.status(rackSetService.deleteLogic(Func.toLongList(ids))); } + /** + * 挂具设置 绑定设备 + */ + @PostMapping("/bind") + @ApiOperationSupport(order = 8) + @Operation(summary = "绑定设备", description = "传入挂具ids和设备id") + public R bind( + @Parameter(description = "主键集合", required = true) @RequestParam String ids, + @Parameter(description = "设备id", required = true) @RequestParam Integer deviceId) { + Boolean result = rackSetService.bind(Func.toLongList(ids), deviceId); + return R.status(result); + } /** * 导出数据 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/EquipmentMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/EquipmentMapper.java index 9af909d8..7faf43e8 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/EquipmentMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/EquipmentMapper.java @@ -1,32 +1,8 @@ -/** - * BladeX Commercial License Agreement - * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. - *

- * Use of this software is governed by the Commercial License Agreement - * obtained after purchasing a license from BladeX. - *

- * 1. This software is for development use only under a valid license - * from BladeX. - *

- * 2. Redistribution of this software's source code to any third party - * without a commercial license is strictly prohibited. - *

- * 3. Licensees may copyright their own code but cannot use segments - * from this software for such purposes. Copyright of this software - * remains with BladeX. - *

- * Using this software signifies agreement to this License, and the software - * must not be used for illegal purposes. - *

- * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is - * not liable for any claims arising from secondary or illegal development. - *

- * Author: Chill Zhuang (bladejava@qq.com) - */ package org.springblade.desk.device.mapper; import org.springblade.desk.device.pojo.entity.EquipmentEntity; import org.springblade.desk.device.pojo.excel.EquipmentExcel; +import org.springblade.desk.device.pojo.vo.EquipmentStatusStatisticsVO; import org.springblade.desk.device.pojo.vo.EquipmentVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; @@ -60,4 +36,10 @@ public interface EquipmentMapper extends BaseMapper { */ List exportEquipment(@Param("ew") Wrapper queryWrapper); + /** + * 设备状态统计 + * + * @return + */ + EquipmentStatusStatisticsVO stateStatistics(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/EquipmentMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/EquipmentMapper.xml index 538c8478..d8df87f0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/EquipmentMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/EquipmentMapper.xml @@ -25,8 +25,16 @@ + + + + + + + + - + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/MeteringRemindSetMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/MeteringRemindSetMapper.java new file mode 100644 index 00000000..b161fb77 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/MeteringRemindSetMapper.java @@ -0,0 +1,39 @@ +package org.springblade.desk.device.mapper; + +import org.springblade.desk.device.pojo.entity.MeteringRemindSetEntity; +import org.springblade.desk.device.pojo.excel.MeteringRemindSetExcel; +import org.springblade.desk.device.pojo.vo.MeteringRemindSetVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 计量提醒设置 Mapper 接口 + * + * @author qyl + * @since 2026-01-04 + */ +public interface MeteringRemindSetMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page 分页参数 + * @param meteringRemindSet 查询参数 + * @return List + */ + List selectMeteringRemindSetPage(IPage page, MeteringRemindSetVO meteringRemindSet); + + + /** + * 获取导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportMeteringRemindSet(@Param("ew") Wrapper queryWrapper); + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/MeteringRemindSetMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/MeteringRemindSetMapper.xml new file mode 100644 index 00000000..67d2d4cd --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/MeteringRemindSetMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/PackCycleMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/PackCycleMapper.java new file mode 100644 index 00000000..6a7c7b45 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/PackCycleMapper.java @@ -0,0 +1,39 @@ +package org.springblade.desk.device.mapper; + +import org.springblade.desk.device.pojo.entity.PackCycleEntity; +import org.springblade.desk.device.pojo.excel.PackCycleExcel; +import org.springblade.desk.device.pojo.vo.PackCycleVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 打包周期 Mapper 接口 + * + * @author qyl + * @since 2026-01-04 + */ +public interface PackCycleMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page 分页参数 + * @param packCycle 查询参数 + * @return List + */ + List selectPackCyclePage(IPage page, PackCycleVO packCycle); + + + /** + * 获取导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportPackCycle(@Param("ew") Wrapper queryWrapper); + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/PackCycleMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/PackCycleMapper.xml new file mode 100644 index 00000000..f25ff9df --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/PackCycleMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IEquipmentService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IEquipmentService.java index 89a3b742..468f5fd1 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IEquipmentService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IEquipmentService.java @@ -28,6 +28,7 @@ package org.springblade.desk.device.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import org.springblade.desk.device.pojo.entity.EquipmentEntity; import org.springblade.desk.device.pojo.excel.EquipmentExcel; +import org.springblade.desk.device.pojo.vo.EquipmentStatusStatisticsVO; import org.springblade.desk.device.pojo.vo.EquipmentVO; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; @@ -58,4 +59,10 @@ public interface IEquipmentService extends BaseService { */ List exportEquipment(Wrapper queryWrapper); + /** + * 设备状态统计 + * + * @return + */ + EquipmentStatusStatisticsVO stateStatistics(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IFeiBaSetService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IFeiBaSetService.java index 08e789ef..f9f76789 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IFeiBaSetService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IFeiBaSetService.java @@ -1,32 +1,8 @@ -/** - * BladeX Commercial License Agreement - * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. - *

- * Use of this software is governed by the Commercial License Agreement - * obtained after purchasing a license from BladeX. - *

- * 1. This software is for development use only under a valid license - * from BladeX. - *

- * 2. Redistribution of this software's source code to any third party - * without a commercial license is strictly prohibited. - *

- * 3. Licensees may copyright their own code but cannot use segments - * from this software for such purposes. Copyright of this software - * remains with BladeX. - *

- * Using this software signifies agreement to this License, and the software - * must not be used for illegal purposes. - *

- * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is - * not liable for any claims arising from secondary or illegal development. - *

- * Author: Chill Zhuang (bladejava@qq.com) - */ package org.springblade.desk.device.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import jakarta.validation.constraints.NotEmpty; import org.springblade.core.mp.base.BaseService; import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; import org.springblade.desk.device.pojo.excel.FeiBaSetExcel; @@ -58,4 +34,12 @@ public interface IFeiBaSetService extends BaseService { */ List exportFeiBaSet(Wrapper queryWrapper); + /** + * 飞靶批量绑定设备 + * + * @param ids + * @param deviceId + * @return + */ + Boolean bind(@NotEmpty List ids, Integer deviceId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IMeteringRemindSetService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IMeteringRemindSetService.java new file mode 100644 index 00000000..3c45a154 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IMeteringRemindSetService.java @@ -0,0 +1,37 @@ +package org.springblade.desk.device.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.desk.device.pojo.entity.MeteringRemindSetEntity; +import org.springblade.desk.device.pojo.excel.MeteringRemindSetExcel; +import org.springblade.desk.device.pojo.vo.MeteringRemindSetVO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; + +import java.util.List; + +/** + * 计量提醒设置 服务类 + * + * @author qyl + * @since 2026-01-04 + */ +public interface IMeteringRemindSetService extends BaseService { + /** + * 自定义分页 + * + * @param page 分页参数 + * @param mesMeteringRemindSet 查询参数 + * @return IPage + */ + IPage selectMeteringRemindSetPage(IPage page, MeteringRemindSetVO mesMeteringRemindSet); + + + /** + * 导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportMeteringRemindSet(Wrapper queryWrapper); + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IPackCycleService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IPackCycleService.java new file mode 100644 index 00000000..877fc547 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IPackCycleService.java @@ -0,0 +1,37 @@ +package org.springblade.desk.device.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.desk.device.pojo.entity.PackCycleEntity; +import org.springblade.desk.device.pojo.excel.PackCycleExcel; +import org.springblade.desk.device.pojo.vo.PackCycleVO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; + +import java.util.List; + +/** + * 打包周期 服务类 + * + * @author qyl + * @since 2026-01-04 + */ +public interface IPackCycleService extends BaseService { + /** + * 自定义分页 + * + * @param page 分页参数 + * @param packCycle 查询参数 + * @return IPage + */ + IPage selectPackCyclePage(IPage page, PackCycleVO packCycle); + + + /** + * 导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportPackCycle(Wrapper queryWrapper); + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IRackSetService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IRackSetService.java index 00559087..2c2f7aef 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IRackSetService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IRackSetService.java @@ -27,6 +27,7 @@ package org.springblade.desk.device.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import jakarta.validation.constraints.NotEmpty; import org.springblade.core.mp.base.BaseService; import org.springblade.desk.device.pojo.entity.RackSetEntity; import org.springblade.desk.device.pojo.excel.RackSetExcel; @@ -58,4 +59,12 @@ public interface IRackSetService extends BaseService { */ List exportRackSet(Wrapper queryWrapper); + /** + * 挂具批量绑定设备 + * + * @param ids + * @param deviceId + * @return + */ + Boolean bind(@NotEmpty List ids, Integer deviceId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/EquipmentServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/EquipmentServiceImpl.java index 2f1a6704..2c4ccf78 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/EquipmentServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/EquipmentServiceImpl.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springblade.desk.device.pojo.entity.EquipmentEntity; import org.springblade.desk.device.pojo.excel.EquipmentExcel; +import org.springblade.desk.device.pojo.vo.EquipmentStatusStatisticsVO; import org.springblade.desk.device.pojo.vo.EquipmentVO; import org.springblade.desk.device.mapper.EquipmentMapper; import org.springblade.desk.device.service.IEquipmentService; @@ -74,4 +75,9 @@ public class EquipmentServiceImpl extends BaseServiceImpl - * Use of this software is governed by the Commercial License Agreement - * obtained after purchasing a license from BladeX. - *

- * 1. This software is for development use only under a valid license - * from BladeX. - *

- * 2. Redistribution of this software's source code to any third party - * without a commercial license is strictly prohibited. - *

- * 3. Licensees may copyright their own code but cannot use segments - * from this software for such purposes. Copyright of this software - * remains with BladeX. - *

- * Using this software signifies agreement to this License, and the software - * must not be used for illegal purposes. - *

- * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is - * not liable for any claims arising from secondary or illegal development. - *

- * Author: Chill Zhuang (bladejava@qq.com) - */ package org.springblade.desk.device.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -32,11 +7,13 @@ import org.springblade.desk.device.pojo.entity.EquipmentEntity; import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; import org.springblade.desk.device.pojo.excel.FeiBaSetExcel; import org.springblade.desk.device.service.IFeiBaSetService; +import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseServiceImpl; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -75,4 +52,17 @@ public class FeiBaSetServiceImpl extends BaseServiceImpl ids, Integer deviceId) { + List feiBaSetEntityList = new ArrayList<>(); + ids.forEach(id -> { + FeiBaSetEntity feiBaSet = new FeiBaSetEntity(); + feiBaSet.setId(id); + feiBaSet.setBindQty(deviceId.shortValue()); + feiBaSetEntityList.add(feiBaSet); + }); + + return this.updateBatchById(feiBaSetEntityList); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/MeteringRemindSetServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/MeteringRemindSetServiceImpl.java new file mode 100644 index 00000000..029c0f08 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/MeteringRemindSetServiceImpl.java @@ -0,0 +1,39 @@ +package org.springblade.desk.device.service.impl; + +import org.springblade.desk.device.pojo.entity.MeteringRemindSetEntity; +import org.springblade.desk.device.pojo.excel.MeteringRemindSetExcel; +import org.springblade.desk.device.pojo.vo.MeteringRemindSetVO; +import org.springblade.desk.device.mapper.MeteringRemindSetMapper; +import org.springblade.desk.device.service.IMeteringRemindSetService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; + +import java.util.List; + +/** + * 计量提醒设置 服务实现类 + * + * @author qyl + * @since 2026-01-04 + */ +@Service +public class MeteringRemindSetServiceImpl extends BaseServiceImpl implements IMeteringRemindSetService { + + @Override + public IPage selectMeteringRemindSetPage(IPage page, MeteringRemindSetVO meteringRemindSet) { + return page.setRecords(baseMapper.selectMeteringRemindSetPage(page, meteringRemindSet)); + } + + + @Override + public List exportMeteringRemindSet(Wrapper queryWrapper) { + List meteringRemindSetList = baseMapper.exportMeteringRemindSet(queryWrapper); + //meteringRemindSetList.forEach(meteringRemindSet -> { + // meteringRemindSet.setTypeName(DictCache.getValue(DictEnum.YES_NO, MeteringRemindSet.getType())); + //}); + return meteringRemindSetList; + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/PackCycleServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/PackCycleServiceImpl.java new file mode 100644 index 00000000..b5432e58 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/PackCycleServiceImpl.java @@ -0,0 +1,39 @@ +package org.springblade.desk.device.service.impl; + +import org.springblade.desk.device.pojo.entity.PackCycleEntity; +import org.springblade.desk.device.pojo.excel.PackCycleExcel; +import org.springblade.desk.device.pojo.vo.PackCycleVO; +import org.springblade.desk.device.mapper.PackCycleMapper; +import org.springblade.desk.device.service.IPackCycleService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; + +import java.util.List; + +/** + * 打包周期 服务实现类 + * + * @author qyl + * @since 2026-01-04 + */ +@Service +public class PackCycleServiceImpl extends BaseServiceImpl implements IPackCycleService { + + @Override + public IPage selectPackCyclePage(IPage page, PackCycleVO packCycle) { + return page.setRecords(baseMapper.selectPackCyclePage(page, packCycle)); + } + + + @Override + public List exportPackCycle(Wrapper queryWrapper) { + List packCycleList = baseMapper.exportPackCycle(queryWrapper); + //packCycleList.forEach(packCycle -> { + // packCycle.setTypeName(DictCache.getValue(DictEnum.YES_NO, PackCycle.getType())); + //}); + return packCycleList; + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/RackSetServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/RackSetServiceImpl.java index ae578b28..0bd06535 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/RackSetServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/RackSetServiceImpl.java @@ -37,6 +37,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseServiceImpl; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -75,4 +76,16 @@ public class RackSetServiceImpl extends BaseServiceImpl ids, Integer deviceId) { + List rackSetEntityList = new ArrayList<>(); + ids.forEach(id -> { + RackSetEntity rackSet = new RackSetEntity(); + rackSet.setId(id); + rackSet.setBindQty(deviceId.shortValue()); + rackSetEntityList.add(rackSet); + }); + + return this.updateBatchById(rackSetEntityList); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/wrapper/MeteringRemindSetWrapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/wrapper/MeteringRemindSetWrapper.java new file mode 100644 index 00000000..c79b0e72 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/wrapper/MeteringRemindSetWrapper.java @@ -0,0 +1,35 @@ +package org.springblade.desk.device.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.desk.device.pojo.entity.MeteringRemindSetEntity; +import org.springblade.desk.device.pojo.vo.MeteringRemindSetVO; + +import java.util.Objects; + +/** + * 计量提醒设置 包装类,返回视图层所需的字段 + * + * @author qyl + * @since 2026-01-04 + */ +public class MeteringRemindSetWrapper extends BaseEntityWrapper { + + public static MeteringRemindSetWrapper build() { + return new MeteringRemindSetWrapper(); + } + + @Override + public MeteringRemindSetVO entityVO(MeteringRemindSetEntity meteringRemindSet) { + MeteringRemindSetVO meteringRemindSetVO = Objects.requireNonNull(BeanUtil.copyProperties(meteringRemindSet, MeteringRemindSetVO.class)); + + //User createUser = UserCache.getUser(meteringRemindSet.getCreateUser()); + //User updateUser = UserCache.getUser(meteringRemindSet.getUpdateUser()); + //meteringRemindSetVO.setCreateUserName(createUser.getName()); + //meteringRemindSetVO.setUpdateUserName(updateUser.getName()); + + return meteringRemindSetVO; + } + + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/wrapper/PackCycleWrapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/wrapper/PackCycleWrapper.java new file mode 100644 index 00000000..3b7ff56e --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/wrapper/PackCycleWrapper.java @@ -0,0 +1,36 @@ +package org.springblade.desk.device.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.desk.device.pojo.entity.PackCycleEntity; +import org.springblade.desk.device.pojo.vo.PackCycleVO; + +import java.util.Objects; + +/** + * 打包周期 包装类,返回视图层所需的字段 + * + * @author qyl + * @since 2026-01-04 + */ +public class PackCycleWrapper extends BaseEntityWrapper { + + public static PackCycleWrapper build() { + return new PackCycleWrapper(); + } + + @Override + public PackCycleVO entityVO(PackCycleEntity packCycle) { + PackCycleVO packCycleVO = Objects.requireNonNull(BeanUtil.copyProperties(packCycle, PackCycleVO.class)); + + //User createUser = UserCache.getUser(packCycle.getCreateUser()); + //User updateUser = UserCache.getUser(packCycle.getUpdateUser()); + //packCycleVO.setCreateUserName(createUser.getName()); + //packCycleVO.setUpdateUserName(updateUser.getName()); +// String cpcUnitTitle = packCycle.getCpcUnitTitle(); +// packCycleVO.setUnitName(cpcUnitTitle); + return packCycleVO; + } + + +} diff --git a/doc/sql/mes/increase-251231.sql b/doc/sql/mes/increase-251231.sql new file mode 100644 index 00000000..db104ef4 --- /dev/null +++ b/doc/sql/mes/increase-251231.sql @@ -0,0 +1,193 @@ +ALTER TABLE MES_EQUIPMENT + ADD (ATTACH_LINK NVARCHAR2(255) ); +COMMENT +ON COLUMN MES_EQUIPMENT.ATTACH_LINK IS '附件链接'; + + +/*CREATE TABLE MES_MEASURING_USAGE +( + ID NUMBER(20,0) NOT NULL ENABLE, + TENANT_ID NVARCHAR2(12), + CREATE_USER NUMBER(20,0), + CREATE_TIME DATE, + CREATE_DEPT NUMBER(20,0), + UPDATE_USER NUMBER(20,0), + UPDATE_TIME DATE, + STATUS NUMBER(11,0) NOT NULL ENABLE, + IS_DELETED NUMBER(11,0), + MATERIAL_CODE NVARCHAR2(255), + MATERIAL_NAME NVARCHAR2(255), + STORAGE_ROOM_NUMBER1 NVARCHAR2(255), + STORAGE_LOCATION_NUMBER NVARCHAR2(255), + DEPT NVARCHAR2(255), + ATTACH_LINK NVARCHAR2(255), + PLEASE_NOTE_THE_TIME DATE, + FLAG_STATE NUMBER(11,0), + TOOL_SPECIFICATIONS NVARCHAR2(255), + TYPE NVARCHAR2(255), + TOOL_BARCODE NVARCHAR2(255), + DEVICE_CODE NVARCHAR2(255), + LIFE_SPAN DATE, + CUMULATIVE_NUMBER NUMBER(20,0), + MAINTENANCE_DAYS NUMBER(20,0), + WARNING_DAYS NUMBER(20,0), + BORROWING_TIME DATE, + CONSTRAINT MES_MEASURING_USAGE_PK PRIMARY KEY (ID) +) TABLESPACE JONHON_MES_DATA; + +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.ID IS '主键'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.CREATE_USER IS '创建人'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.CREATE_TIME IS '创建时间'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.CREATE_DEPT IS '创建部门'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.UPDATE_USER IS '更新人'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.UPDATE_TIME IS '更新时间'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.STATUS IS '状态'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.IS_DELETED IS '删除标记'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.MATERIAL_CODE IS '物料编码'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.MATERIAL_NAME IS '物料名称'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.STORAGE_ROOM_NUMBER1 IS '库房号'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.STORAGE_LOCATION_NUMBER IS '库位号'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.DEPT IS '部门'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.ATTACH_LINK IS '工具图片'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.PLEASE_NOTE_THE_TIME IS '提请时间'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.FLAG_STATE IS '标记状态'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.TOOL_SPECIFICATIONS IS '工具规格'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.TYPE IS '类型'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.TOOL_BARCODE IS '工具条码'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.DEVICE_CODE IS '设备编号'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.LIFE_SPAN IS '寿命'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.CUMULATIVE_NUMBER IS '历史累计次数'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.MAINTENANCE_DAYS IS '检修天数'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.WARNING_DAYS IS '预警天数'; +COMMENT ON COLUMN JONHON_MES.MES_MEASURING_USAGE.BORROWING_TIME IS '借用时间'; +COMMENT ON TABLE JONHON_MES.MES_MEASURING_USAGE IS '量具使用记录';*/ + +ALTER TABLE MES_MEASURING_UPKEEP + ADD (MATERIAL_NAME NVARCHAR2(255) ); +COMMENT +ON COLUMN MES_MEASURING_UPKEEP.MATERIAL_NAME IS '物料名称'; + +ALTER TABLE MES_MEASURING_UPKEEP + ADD (MATERIAL_SPECIFICATIONS NVARCHAR2(255) ); +COMMENT +ON COLUMN MES_MEASURING_UPKEEP.MATERIAL_SPECIFICATIONS IS '物料规格'; + +ALTER TABLE MES_MEASURING_UPKEEP + ADD (PRODUCTION_BATCH_NUMBER NVARCHAR2(255) ); +COMMENT +ON COLUMN MES_MEASURING_UPKEEP.PRODUCTION_BATCH_NUMBER IS '生产批次号'; + +ALTER TABLE MES_MEASURING_UPKEEP + ADD (WAREHOUSE NVARCHAR2(255) ); +COMMENT +ON COLUMN MES_MEASURING_UPKEEP.WAREHOUSE IS '仓库'; + +ALTER TABLE MES_MEASURING_UPKEEP + ADD (STORAGE_LOCATION_NUMBER NVARCHAR2(255) ); +COMMENT +ON COLUMN MES_MEASURING_UPKEEP.STORAGE_LOCATION_NUMBER IS '库位号'; + +ALTER TABLE MES_MEASURING_UPKEEP + ADD (QUANTITY_IN_STOCK NUMBER(20, 0) ); +COMMENT +ON COLUMN MES_MEASURING_UPKEEP.QUANTITY_IN_STOCK IS '库存数量'; + +ALTER TABLE MES_MEASURING_UPKEEP + ADD (GRADE NUMBER(20, 0) ); +COMMENT +ON COLUMN MES_MEASURING_UPKEEP.GRADE IS '等级'; + +ALTER TABLE MES_MEASURING_UPKEEP + ADD (MONEY NUMBER(19, 4) ); +COMMENT +ON COLUMN MES_MEASURING_UPKEEP.MONEY IS '金额'; + +ALTER TABLE MES_MEASURING_UPKEEP + ADD (USAGE_COUNT NUMBER(20, 0) NOT NULL); +COMMENT +ON COLUMN MES_MEASURING_UPKEEP.USAGE_COUNT IS '累计使用次数'; + + + +CREATE TABLE MES_PACK_CYCLE +( + ID NUMBER(20,0) NOT NULL ENABLE, + TENANT_ID NVARCHAR2(12), + CREATE_USER NUMBER(20,0), + CREATE_TIME DATE, + CREATE_DEPT NUMBER(20,0), + UPDATE_USER NUMBER(20,0), + UPDATE_TIME DATE, + STATUS NUMBER(11,0), + IS_DELETED NUMBER(11,0) DEFAULT 0, + CPC_QUANTITY NUMBER(20,0) DEFAULT 0 NOT NULL ENABLE, + CPC_UNIT NUMBER(11,0) DEFAULT 0 NOT NULL ENABLE, + PRIMARY KEY (ID) +) TABLESPACE JONHON_MES_DATA; + +COMMENT +ON COLUMN MES_PACK_CYCLE.CREATE_USER IS '创建人'; +COMMENT +ON COLUMN MES_PACK_CYCLE.CREATE_TIME IS '创建时间'; +COMMENT +ON COLUMN MES_PACK_CYCLE.CREATE_DEPT IS '创建部门'; +COMMENT +ON COLUMN MES_PACK_CYCLE.UPDATE_USER IS '更新人'; +COMMENT +ON COLUMN MES_PACK_CYCLE.UPDATE_TIME IS '更新时间'; +COMMENT +ON COLUMN MES_PACK_CYCLE.STATUS IS '状态'; +COMMENT +ON COLUMN MES_PACK_CYCLE.IS_DELETED IS '是否已删除'; +COMMENT +ON COLUMN MES_PACK_CYCLE.CPC_QUANTITY IS '周期数'; +COMMENT +ON COLUMN MES_PACK_CYCLE.CPC_UNIT IS '周期单位'; +COMMENT +ON TABLE MES_PACK_CYCLE IS '打包周期'; + + + +CREATE TABLE MES_METERING_REMIND_SET +( + ID NUMBER(20,0) NOT NULL ENABLE, + TENANT_ID NVARCHAR2(12), + CREATE_USER NUMBER(20,0), + CREATE_TIME DATE, + CREATE_DEPT NUMBER(20,0), + UPDATE_USER NUMBER(20,0), + UPDATE_TIME DATE, + STATUS NUMBER(11,0), + IS_DELETED NUMBER(11,0) DEFAULT 0, + CATEGORY NUMBER(11,0) DEFAULT 0 NOT NULL ENABLE, + DAYS NUMBER(20,0) DEFAULT 0 NOT NULL ENABLE, + COLOR NUMBER(11,0) DEFAULT 0 NOT NULL ENABLE, + PRIMARY KEY (ID) +) TABLESPACE JONHON_MES_DATA; + +COMMENT +ON COLUMN MES_METERING_REMIND_SET.ID IS '主键'; +COMMENT +ON COLUMN MES_METERING_REMIND_SET.CREATE_USER IS '创建人'; +COMMENT +ON COLUMN MES_METERING_REMIND_SET.CREATE_TIME IS '创建时间'; +COMMENT +ON COLUMN MES_METERING_REMIND_SET.CREATE_DEPT IS '创建部门'; +COMMENT +ON COLUMN MES_METERING_REMIND_SET.UPDATE_USER IS '更新人'; +COMMENT +ON COLUMN MES_METERING_REMIND_SET.UPDATE_TIME IS '更新时间'; +COMMENT +ON COLUMN MES_METERING_REMIND_SET.STATUS IS '状态'; +COMMENT +ON COLUMN MES_METERING_REMIND_SET.IS_DELETED IS '是否已删除'; +COMMENT +ON COLUMN MES_METERING_REMIND_SET.CATEGORY IS '类别1仪表量具、2设备'; +COMMENT +ON COLUMN MES_METERING_REMIND_SET.DAYS IS '天数'; +COMMENT +ON COLUMN MES_METERING_REMIND_SET.COLOR IS '颜色1、黄色;2、浅红色'; +COMMENT +ON TABLE MES_METERING_REMIND_SET IS '计量提醒设置'; + +