Compare commits
3 Commits
29567d00af
...
a8fb7cd262
| Author | SHA1 | Date |
|---|---|---|
|
|
a8fb7cd262 | 4 weeks ago |
|
|
ead8061756 | 4 weeks ago |
|
|
6923984f8f | 4 weeks ago |
@ -0,0 +1,26 @@
|
||||
package cn.iocoder.yudao.module.erp.controller.admin.product.vo.product;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - ERP 产品列表 Request VO")
|
||||
@Data
|
||||
public class ErpProductListReqVO {
|
||||
|
||||
@Schema(description = "产品名称", example = "零件A")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "产品分类编号", example = "11161")
|
||||
private Long categoryId;
|
||||
|
||||
@Schema(description = "产品编号", example = "11161")
|
||||
private String code;
|
||||
|
||||
@Schema(description = "产品规格", example = "红色")
|
||||
private String standard;
|
||||
|
||||
@Schema(description = "产品 id 集合")
|
||||
private List<Long> ids;
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
package cn.iocoder.yudao.module.iot.controller.admin.device.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_RATE_TREND_PERIOD_INVALID;
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum DeviceRateTrendPeriodEnum {
|
||||
|
||||
LAST_WEEK("LAST_WEEK", "上周") {
|
||||
@Override
|
||||
public DateRange resolve(LocalDate today) {
|
||||
LocalDate start = today.minusWeeks(1).with(java.time.DayOfWeek.MONDAY);
|
||||
return new DateRange(start, start.plusDays(6));
|
||||
}
|
||||
},
|
||||
THIS_WEEK("THIS_WEEK", "本周") {
|
||||
@Override
|
||||
public DateRange resolve(LocalDate today) {
|
||||
LocalDate start = today.with(java.time.DayOfWeek.MONDAY);
|
||||
return new DateRange(start, today.minusDays(1));
|
||||
}
|
||||
},
|
||||
LAST_7_DAYS("LAST_7_DAYS", "近7日") {
|
||||
@Override
|
||||
public DateRange resolve(LocalDate today) {
|
||||
return new DateRange(today.minusDays(7), today.minusDays(1));
|
||||
}
|
||||
},
|
||||
LAST_MONTH("LAST_MONTH", "上月") {
|
||||
@Override
|
||||
public DateRange resolve(LocalDate today) {
|
||||
LocalDate start = today.minusMonths(1).withDayOfMonth(1);
|
||||
return new DateRange(start, start.with(TemporalAdjusters.lastDayOfMonth()));
|
||||
}
|
||||
},
|
||||
THIS_MONTH("THIS_MONTH", "本月") {
|
||||
@Override
|
||||
public DateRange resolve(LocalDate today) {
|
||||
LocalDate start = today.withDayOfMonth(1);
|
||||
return new DateRange(start, today.minusDays(1));
|
||||
}
|
||||
};
|
||||
|
||||
private final String code;
|
||||
private final String name;
|
||||
|
||||
public abstract DateRange resolve(LocalDate today);
|
||||
|
||||
public static DeviceRateTrendPeriodEnum valueOfCode(String code) {
|
||||
for (DeviceRateTrendPeriodEnum value : values()) {
|
||||
if (value.code.equalsIgnoreCase(code)) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
throw exception(DEVICE_RATE_TREND_PERIOD_INVALID);
|
||||
}
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public static class DateRange {
|
||||
private final LocalDate start;
|
||||
private final LocalDate end;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
package cn.iocoder.yudao.module.iot.controller.admin.device.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(description = "管理后台 - 设备开机率/稼动率趋势点 Response VO")
|
||||
public class DeviceRateTrendPointRespVO {
|
||||
|
||||
@Schema(description = "日期")
|
||||
private String day;
|
||||
|
||||
@Schema(description = "当天整体开机率")
|
||||
private String powerOnRate;
|
||||
|
||||
@Schema(description = "当天整体稼动率")
|
||||
private String utilizationRate;
|
||||
|
||||
@Schema(description = "当天参与统计设备数")
|
||||
private Integer deviceCount;
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
package cn.iocoder.yudao.module.iot.controller.admin.deviceoperationrecord.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(description = "管理后台 - 单设备近7日开机率/稼动率趋势 Response VO")
|
||||
public class DeviceOperationRateTrendRespVO {
|
||||
|
||||
@Schema(description = "日期")
|
||||
private String day;
|
||||
|
||||
@Schema(description = "当天开机率")
|
||||
private String powerOnRate;
|
||||
|
||||
@Schema(description = "当天稼动率")
|
||||
private String utilizationRate;
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.plan.vo;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Schema(description = "管理后台 - 按任务单查询生产计划分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class PlanTaskPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "任务单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18331")
|
||||
@NotNull(message = "任务单ID不能为空")
|
||||
private Long taskId;
|
||||
}
|
||||
@ -0,0 +1,50 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.plan.vo;
|
||||
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.planrecord.vo.PlanRecordRespVO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 按任务单查询生产计划分页 Response VO")
|
||||
@Data
|
||||
public class PlanTaskPageRespVO {
|
||||
|
||||
@Schema(description = "计划单ID", example = "17689")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "产品名称")
|
||||
private String productName;
|
||||
|
||||
@Schema(description = "设备名称")
|
||||
private String deviceName;
|
||||
|
||||
@Schema(description = "计划数量")
|
||||
private Long planNumber;
|
||||
|
||||
@Schema(description = "完工数量")
|
||||
private Long wangongNumber;
|
||||
|
||||
@Schema(description = "合格数量")
|
||||
private Long passNumber;
|
||||
|
||||
@Schema(description = "不合格数量")
|
||||
private Long noPassNumber;
|
||||
|
||||
@Schema(description = "合格率")
|
||||
private BigDecimal passRate;
|
||||
|
||||
@Schema(description = "计划开始时间")
|
||||
private LocalDateTime planStartTime;
|
||||
|
||||
@Schema(description = "计划结束时间")
|
||||
private LocalDateTime planEndTime;
|
||||
|
||||
@Schema(description = "最晚开工时间")
|
||||
private LocalDateTime latestStartTime;
|
||||
|
||||
@Schema(description = "计划记录集合,按 operateTime 升序")
|
||||
private List<PlanRecordRespVO> planRecordList;
|
||||
}
|
||||
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.planrecord;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
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 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.*;
|
||||
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.planrecord.vo.*;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.planrecord.PlanRecordDO;
|
||||
import cn.iocoder.yudao.module.mes.service.planrecord.PlanRecordService;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
|
||||
@Tag(name = "管理后台 - 生产计划操作记录")
|
||||
@RestController
|
||||
@RequestMapping("/mes/plan-record")
|
||||
@Validated
|
||||
public class PlanRecordController {
|
||||
|
||||
@Resource
|
||||
private PlanRecordService planRecordService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建生产计划操作记录")
|
||||
@PreAuthorize("@ss.hasPermission('mes:plan-record:create')")
|
||||
public CommonResult<Long> createPlanRecord(@Valid @RequestBody PlanRecordSaveReqVO createReqVO) {
|
||||
return success(planRecordService.createPlanRecord(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新生产计划操作记录")
|
||||
@PreAuthorize("@ss.hasPermission('mes:plan-record:update')")
|
||||
public CommonResult<Boolean> updatePlanRecord(@Valid @RequestBody PlanRecordSaveReqVO updateReqVO) {
|
||||
planRecordService.updatePlanRecord(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除生产计划操作记录")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('mes:plan-record:delete')")
|
||||
public CommonResult<Boolean> deletePlanRecord(@RequestParam("id") Long id) {
|
||||
planRecordService.deletePlanRecord(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得生产计划操作记录")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('mes:plan-record:query')")
|
||||
public CommonResult<PlanRecordRespVO> getPlanRecord(@RequestParam("id") Long id) {
|
||||
PlanRecordDO planRecord = planRecordService.getPlanRecord(id);
|
||||
return success(BeanUtils.toBean(planRecord, PlanRecordRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得生产计划操作记录分页")
|
||||
@PreAuthorize("@ss.hasPermission('mes:plan-record:query')")
|
||||
public CommonResult<PageResult<PlanRecordRespVO>> getPlanRecordPage(@Valid PlanRecordPageReqVO pageReqVO) {
|
||||
PageResult<PlanRecordDO> pageResult = planRecordService.getPlanRecordPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, PlanRecordRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出生产计划操作记录 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('mes:plan-record:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportPlanRecordExcel(@Valid PlanRecordPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<PlanRecordDO> list = planRecordService.getPlanRecordPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "生产计划操作记录.xls", "数据", PlanRecordRespVO.class,
|
||||
BeanUtils.toBean(list, PlanRecordRespVO.class));
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.planrecord.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 生产计划操作记录分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class PlanRecordPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "任务单ID", example = "337")
|
||||
private Long taskId;
|
||||
|
||||
@Schema(description = "计划ID", example = "20904")
|
||||
private Long planId;
|
||||
|
||||
@Schema(description = "操作状态", example = "2")
|
||||
private String operateStatus;
|
||||
|
||||
@Schema(description = "操作时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] operateTime;
|
||||
|
||||
@Schema(description = "备注", example = "你说的对")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "是否启用")
|
||||
private Boolean isEnable;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.planrecord.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 生产计划操作记录 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class PlanRecordRespVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23003")
|
||||
@ExcelProperty("ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "任务单ID", example = "337")
|
||||
@ExcelProperty("任务单ID")
|
||||
private Long taskId;
|
||||
|
||||
@Schema(description = "计划ID", example = "20904")
|
||||
@ExcelProperty("计划ID")
|
||||
private Long planId;
|
||||
|
||||
@Schema(description = "操作状态", example = "2")
|
||||
@ExcelProperty("操作状态")
|
||||
private String operateStatus;
|
||||
|
||||
@Schema(description = "操作时间")
|
||||
@ExcelProperty("操作时间")
|
||||
private LocalDateTime operateTime;
|
||||
|
||||
@Schema(description = "备注", example = "你说的对")
|
||||
@ExcelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "是否启用")
|
||||
@ExcelProperty("是否启用")
|
||||
private Boolean isEnable;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.planrecord.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 生产计划操作记录新增/修改 Request VO")
|
||||
@Data
|
||||
public class PlanRecordSaveReqVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23003")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "任务单ID", example = "337")
|
||||
private Long taskId;
|
||||
|
||||
@Schema(description = "计划ID", example = "20904")
|
||||
private Long planId;
|
||||
|
||||
@Schema(description = "操作状态", example = "2")
|
||||
private String operateStatus;
|
||||
|
||||
@Schema(description = "操作时间")
|
||||
private LocalDateTime operateTime;
|
||||
|
||||
@Schema(description = "备注", example = "你说的对")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "是否启用")
|
||||
private Boolean isEnable;
|
||||
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.zjtask.vo;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 质检任务按任务单分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ZjTaskQueryByTicketPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "任务单 id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
private Long ticket;
|
||||
|
||||
@Schema(description = "任务名称")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "质检分类")
|
||||
private String type;
|
||||
|
||||
@Schema(description = "检验方案 id")
|
||||
private Long schemaId;
|
||||
|
||||
@Schema(description = "检验方案名称")
|
||||
private String schemaName;
|
||||
|
||||
@Schema(description = "负责人 id")
|
||||
private Long managerId;
|
||||
|
||||
@Schema(description = "负责人名称")
|
||||
private String managerName;
|
||||
|
||||
@Schema(description = "执行人 id")
|
||||
private Long executorId;
|
||||
|
||||
@Schema(description = "执行人名称")
|
||||
private String executorName;
|
||||
|
||||
@Schema(description = "状态")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "结果")
|
||||
private String result;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
@Schema(description = "执行时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] executeTime;
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.zjtask.vo;
|
||||
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.zjtaskresults.vo.ZjTaskResultsRespVO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 质检任务带结果列表 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ZjTaskWithResultsRespVO extends ZjTaskRespVO {
|
||||
|
||||
@Schema(description = "检验项结果列表")
|
||||
private List<ZjTaskResultsRespVO> results;
|
||||
}
|
||||
@ -0,0 +1,56 @@
|
||||
package cn.iocoder.yudao.module.mes.dal.dataobject.planrecord;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
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_plan_record")
|
||||
@KeySequence("mes_plan_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class PlanRecordDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 任务单ID
|
||||
*/
|
||||
private Long taskId;
|
||||
/**
|
||||
* 计划ID
|
||||
*/
|
||||
private Long planId;
|
||||
/**
|
||||
* 操作状态
|
||||
*/
|
||||
private Integer operateStatus;
|
||||
/**
|
||||
* 操作时间
|
||||
*/
|
||||
private LocalDateTime operateTime;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 是否启用
|
||||
*/
|
||||
private Boolean isEnable;
|
||||
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
package cn.iocoder.yudao.module.mes.dal.mysql.planrecord;
|
||||
|
||||
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.dal.dataobject.planrecord.PlanRecordDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.planrecord.vo.*;
|
||||
|
||||
/**
|
||||
* 生产计划操作记录 Mapper
|
||||
*
|
||||
* @author 必硕智能
|
||||
*/
|
||||
@Mapper
|
||||
public interface PlanRecordMapper extends BaseMapperX<PlanRecordDO> {
|
||||
|
||||
default PageResult<PlanRecordDO> selectPage(PlanRecordPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<PlanRecordDO>()
|
||||
.eqIfPresent(PlanRecordDO::getTaskId, reqVO.getTaskId())
|
||||
.eqIfPresent(PlanRecordDO::getPlanId, reqVO.getPlanId())
|
||||
.eqIfPresent(PlanRecordDO::getOperateStatus, reqVO.getOperateStatus())
|
||||
.betweenIfPresent(PlanRecordDO::getOperateTime, reqVO.getOperateTime())
|
||||
.eqIfPresent(PlanRecordDO::getRemark, reqVO.getRemark())
|
||||
.eqIfPresent(PlanRecordDO::getIsEnable, reqVO.getIsEnable())
|
||||
.betweenIfPresent(PlanRecordDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(PlanRecordDO::getId));
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,56 @@
|
||||
package cn.iocoder.yudao.module.mes.service.planrecord;
|
||||
|
||||
import java.util.*;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.planrecord.vo.*;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.planrecord.PlanRecordDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
/**
|
||||
* 生产计划操作记录 Service 接口
|
||||
*
|
||||
* @author 必硕智能
|
||||
*/
|
||||
public interface PlanRecordService {
|
||||
|
||||
/**
|
||||
* 创建生产计划操作记录
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createPlanRecord(@Valid PlanRecordSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新生产计划操作记录
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updatePlanRecord(@Valid PlanRecordSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除生产计划操作记录
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deletePlanRecord(Long id);
|
||||
|
||||
/**
|
||||
* 获得生产计划操作记录
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 生产计划操作记录
|
||||
*/
|
||||
PlanRecordDO getPlanRecord(Long id);
|
||||
|
||||
/**
|
||||
* 获得生产计划操作记录分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 生产计划操作记录分页
|
||||
*/
|
||||
PageResult<PlanRecordDO> getPlanRecordPage(PlanRecordPageReqVO pageReqVO);
|
||||
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
package cn.iocoder.yudao.module.mes.service.planrecord;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.planrecord.vo.*;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.planrecord.PlanRecordDO;
|
||||
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 cn.iocoder.yudao.module.mes.dal.mysql.planrecord.PlanRecordMapper;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 生产计划操作记录 Service 实现类
|
||||
*
|
||||
* @author 必硕智能
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class PlanRecordServiceImpl implements PlanRecordService {
|
||||
|
||||
@Resource
|
||||
private PlanRecordMapper planRecordMapper;
|
||||
|
||||
@Override
|
||||
public Long createPlanRecord(PlanRecordSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
PlanRecordDO planRecord = BeanUtils.toBean(createReqVO, PlanRecordDO.class);
|
||||
planRecordMapper.insert(planRecord);
|
||||
// 返回
|
||||
return planRecord.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatePlanRecord(PlanRecordSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validatePlanRecordExists(updateReqVO.getId());
|
||||
// 更新
|
||||
PlanRecordDO updateObj = BeanUtils.toBean(updateReqVO, PlanRecordDO.class);
|
||||
planRecordMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deletePlanRecord(Long id) {
|
||||
// 校验存在
|
||||
validatePlanRecordExists(id);
|
||||
// 删除
|
||||
planRecordMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validatePlanRecordExists(Long id) {
|
||||
if (planRecordMapper.selectById(id) == null) {
|
||||
throw exception(PLAN_RECORD_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlanRecordDO getPlanRecord(Long id) {
|
||||
return planRecordMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<PlanRecordDO> getPlanRecordPage(PlanRecordPageReqVO pageReqVO) {
|
||||
return planRecordMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue