From 789c27cc87fcf499afbfccf24cce495e3b95db86 Mon Sep 17 00:00:00 2001 From: yinq Date: Tue, 10 Feb 2026 17:38:04 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=88=9D=E5=A7=8B=E5=8C=96=E9=85=8D?= =?UTF-8?q?=E6=96=B9=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProdRecipeInfoController.java | 117 +++++ .../ProdRecipeMixingController.java | 117 +++++ .../ProdRecipeWeightController.java | 117 +++++ .../dromara/mes/domain/ProdRecipeInfo.java | 340 +++++++++++++++ .../dromara/mes/domain/ProdRecipeMixing.java | 143 +++++++ .../dromara/mes/domain/ProdRecipeWeight.java | 108 +++++ .../mes/domain/bo/ProdRecipeInfoBo.java | 339 +++++++++++++++ .../mes/domain/bo/ProdRecipeMixingBo.java | 136 ++++++ .../mes/domain/bo/ProdRecipeWeightBo.java | 115 +++++ .../mes/domain/vo/ProdRecipeInfoVo.java | 405 ++++++++++++++++++ .../mes/domain/vo/ProdRecipeMixingVo.java | 165 +++++++ .../mes/domain/vo/ProdRecipeWeightVo.java | 123 ++++++ .../mes/mapper/ProdRecipeInfoMapper.java | 15 + .../mes/mapper/ProdRecipeMixingMapper.java | 15 + .../mes/mapper/ProdRecipeWeightMapper.java | 15 + .../mes/service/IProdRecipeInfoService.java | 69 +++ .../mes/service/IProdRecipeMixingService.java | 69 +++ .../mes/service/IProdRecipeWeightService.java | 69 +++ .../impl/ProdRecipeInfoServiceImpl.java | 192 +++++++++ .../impl/ProdRecipeMixingServiceImpl.java | 153 +++++++ .../impl/ProdRecipeWeightServiceImpl.java | 146 +++++++ .../mapper/mes/ProdRecipeInfoMapper.xml | 7 + .../mapper/mes/ProdRecipeMixingMapper.xml | 7 + .../mapper/mes/ProdRecipeWeightMapper.xml | 7 + 24 files changed, 2989 insertions(+) create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdRecipeInfoController.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdRecipeMixingController.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdRecipeWeightController.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdRecipeInfo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdRecipeMixing.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdRecipeWeight.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdRecipeInfoBo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdRecipeMixingBo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdRecipeWeightBo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdRecipeInfoVo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdRecipeMixingVo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdRecipeWeightVo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdRecipeInfoMapper.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdRecipeMixingMapper.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdRecipeWeightMapper.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdRecipeInfoService.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdRecipeMixingService.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdRecipeWeightService.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdRecipeInfoServiceImpl.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdRecipeMixingServiceImpl.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdRecipeWeightServiceImpl.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdRecipeInfoMapper.xml create mode 100644 ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdRecipeMixingMapper.xml create mode 100644 ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdRecipeWeightMapper.xml diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdRecipeInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdRecipeInfoController.java new file mode 100644 index 00000000..8cd396c0 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdRecipeInfoController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.ProdRecipeInfoVo; +import org.dromara.mes.domain.bo.ProdRecipeInfoBo; +import org.dromara.mes.service.IProdRecipeInfoService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 配方-基础信息 + * 前端访问路由地址为:/mes/recipeInfo + * + * @author Yinq + * @date 2026-02-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/recipeInfo") +public class ProdRecipeInfoController extends BaseController { + + private final IProdRecipeInfoService prodRecipeInfoService; + + /** + * 查询配方-基础信息列表 + */ + @SaCheckPermission("mes:recipeInfo:list") + @GetMapping("/list") + public TableDataInfo list(ProdRecipeInfoBo bo, PageQuery pageQuery) { + return prodRecipeInfoService.queryPageList(bo, pageQuery); + } + + /** + * 导出配方-基础信息列表 + */ + @SaCheckPermission("mes:recipeInfo:export") + @Log(title = "配方-基础信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProdRecipeInfoBo bo, HttpServletResponse response) { + List list = prodRecipeInfoService.queryList(bo); + ExcelUtil.exportExcel(list, "配方-基础信息", ProdRecipeInfoVo.class, response); + } + + /** + * 获取配方-基础信息详细信息 + * + * @param recipeId 主键 + */ + @SaCheckPermission("mes:recipeInfo:query") + @GetMapping("/{recipeId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long recipeId) { + return R.ok(prodRecipeInfoService.queryById(recipeId)); + } + + /** + * 新增配方-基础信息 + */ + @SaCheckPermission("mes:recipeInfo:add") + @Log(title = "配方-基础信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProdRecipeInfoBo bo) { + return toAjax(prodRecipeInfoService.insertByBo(bo)); + } + + /** + * 修改配方-基础信息 + */ + @SaCheckPermission("mes:recipeInfo:edit") + @Log(title = "配方-基础信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProdRecipeInfoBo bo) { + return toAjax(prodRecipeInfoService.updateByBo(bo)); + } + + /** + * 删除配方-基础信息 + * + * @param recipeIds 主键串 + */ + @SaCheckPermission("mes:recipeInfo:remove") + @Log(title = "配方-基础信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{recipeIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] recipeIds) { + return toAjax(prodRecipeInfoService.deleteWithValidByIds(List.of(recipeIds), true)); + } + + + /** + * 下拉框查询配方-基础信息列表 + */ + + @GetMapping("/getProdRecipeInfoList") + public R> getProdRecipeInfoList(ProdRecipeInfoBo bo) { + List list = prodRecipeInfoService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdRecipeMixingController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdRecipeMixingController.java new file mode 100644 index 00000000..63c116d3 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdRecipeMixingController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.ProdRecipeMixingVo; +import org.dromara.mes.domain.bo.ProdRecipeMixingBo; +import org.dromara.mes.service.IProdRecipeMixingService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 配方混炼信息 + * 前端访问路由地址为:/mes/recipeMixing + * + * @author Yinq + * @date 2026-02-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/recipeMixing") +public class ProdRecipeMixingController extends BaseController { + + private final IProdRecipeMixingService prodRecipeMixingService; + + /** + * 查询配方混炼信息列表 + */ + @SaCheckPermission("mes:recipeMixing:list") + @GetMapping("/list") + public TableDataInfo list(ProdRecipeMixingBo bo, PageQuery pageQuery) { + return prodRecipeMixingService.queryPageList(bo, pageQuery); + } + + /** + * 导出配方混炼信息列表 + */ + @SaCheckPermission("mes:recipeMixing:export") + @Log(title = "配方混炼信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProdRecipeMixingBo bo, HttpServletResponse response) { + List list = prodRecipeMixingService.queryList(bo); + ExcelUtil.exportExcel(list, "配方混炼信息", ProdRecipeMixingVo.class, response); + } + + /** + * 获取配方混炼信息详细信息 + * + * @param mixingId 主键 + */ + @SaCheckPermission("mes:recipeMixing:query") + @GetMapping("/{mixingId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long mixingId) { + return R.ok(prodRecipeMixingService.queryById(mixingId)); + } + + /** + * 新增配方混炼信息 + */ + @SaCheckPermission("mes:recipeMixing:add") + @Log(title = "配方混炼信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProdRecipeMixingBo bo) { + return toAjax(prodRecipeMixingService.insertByBo(bo)); + } + + /** + * 修改配方混炼信息 + */ + @SaCheckPermission("mes:recipeMixing:edit") + @Log(title = "配方混炼信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProdRecipeMixingBo bo) { + return toAjax(prodRecipeMixingService.updateByBo(bo)); + } + + /** + * 删除配方混炼信息 + * + * @param mixingIds 主键串 + */ + @SaCheckPermission("mes:recipeMixing:remove") + @Log(title = "配方混炼信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{mixingIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] mixingIds) { + return toAjax(prodRecipeMixingService.deleteWithValidByIds(List.of(mixingIds), true)); + } + + + /** + * 下拉框查询配方混炼信息列表 + */ + + @GetMapping("/getProdRecipeMixingList") + public R> getProdRecipeMixingList(ProdRecipeMixingBo bo) { + List list = prodRecipeMixingService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdRecipeWeightController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdRecipeWeightController.java new file mode 100644 index 00000000..125da417 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdRecipeWeightController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.ProdRecipeWeightVo; +import org.dromara.mes.domain.bo.ProdRecipeWeightBo; +import org.dromara.mes.service.IProdRecipeWeightService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 配方称量信息 + * 前端访问路由地址为:/mes/recipeWeight + * + * @author Yinq + * @date 2026-02-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/recipeWeight") +public class ProdRecipeWeightController extends BaseController { + + private final IProdRecipeWeightService prodRecipeWeightService; + + /** + * 查询配方称量信息列表 + */ + @SaCheckPermission("mes:recipeWeight:list") + @GetMapping("/list") + public TableDataInfo list(ProdRecipeWeightBo bo, PageQuery pageQuery) { + return prodRecipeWeightService.queryPageList(bo, pageQuery); + } + + /** + * 导出配方称量信息列表 + */ + @SaCheckPermission("mes:recipeWeight:export") + @Log(title = "配方称量信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProdRecipeWeightBo bo, HttpServletResponse response) { + List list = prodRecipeWeightService.queryList(bo); + ExcelUtil.exportExcel(list, "配方称量信息", ProdRecipeWeightVo.class, response); + } + + /** + * 获取配方称量信息详细信息 + * + * @param weightId 主键 + */ + @SaCheckPermission("mes:recipeWeight:query") + @GetMapping("/{weightId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long weightId) { + return R.ok(prodRecipeWeightService.queryById(weightId)); + } + + /** + * 新增配方称量信息 + */ + @SaCheckPermission("mes:recipeWeight:add") + @Log(title = "配方称量信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProdRecipeWeightBo bo) { + return toAjax(prodRecipeWeightService.insertByBo(bo)); + } + + /** + * 修改配方称量信息 + */ + @SaCheckPermission("mes:recipeWeight:edit") + @Log(title = "配方称量信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProdRecipeWeightBo bo) { + return toAjax(prodRecipeWeightService.updateByBo(bo)); + } + + /** + * 删除配方称量信息 + * + * @param weightIds 主键串 + */ + @SaCheckPermission("mes:recipeWeight:remove") + @Log(title = "配方称量信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{weightIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] weightIds) { + return toAjax(prodRecipeWeightService.deleteWithValidByIds(List.of(weightIds), true)); + } + + + /** + * 下拉框查询配方称量信息列表 + */ + + @GetMapping("/getProdRecipeWeightList") + public R> getProdRecipeWeightList(ProdRecipeWeightBo bo) { + List list = prodRecipeWeightService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdRecipeInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdRecipeInfo.java new file mode 100644 index 00000000..c14412c3 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdRecipeInfo.java @@ -0,0 +1,340 @@ +package org.dromara.mes.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 配方-基础信息对象 prod_recipe_info + * + * @author Yinq + * @date 2026-02-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("prod_recipe_info") +public class ProdRecipeInfo extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "recipe_id", type = IdType.AUTO) + private Long recipeId; + + /** + * 机台ID + */ + private Long machineId; + + /** + * 物料ID + */ + private String materialId; + + /** + * 版本号 + */ + private Long edtCode; + + /** + * 配方类型(1正用) + */ + private Long recipeType; + + /** + * 用户版本 + */ + private String userEdtCode; + + /** + * 配方状态(1正用 0停用) + */ + private String recipeState; + + /** + * 完成时间 + */ + private Long doneTime; + + /** + * 架子车数 + */ + private Long shelfNum; + + /** + * 配方重量 + */ + private BigDecimal totalWeight; + + /** + * 填充系数 + */ + private BigDecimal fillCoefficient; + + /** + * 炭黑回收类型 + */ + private String cbRecycleType; + + /** + * 炭黑回收时间 + */ + private Long cbRecycleTime; + + /** + * 超温排胶最短时间 + */ + private Long overtempMintime; + + /** + * 超时排胶时间 + */ + private Long overtimeTime; + + /** + * 超温排胶温度 + */ + private Long overtempTemp; + + /** + * 最大进胶温度 + */ + private Long maxInpolytemp; + + /** + * 最小进胶温度 + */ + private Long minInpolytemp; + + /** + * 进胶时间 + */ + private Long inPolytime; + + /** + * 进炭黑时间 + */ + private Long inCarbontime; + + /** + * 进油时间 + */ + private Long inOiltime; + + /** + * 进粉时间 + */ + private Long inPowdertime; + + /** + * 辊速差 + */ + private Long rollSpeeddiff; + + /** + * 上顶栓压力差 + */ + private Long ramPressdiff; + + /** + * 是否使用区域温度 + */ + private String isUseareatemp; + + /** + * 侧温 + */ + private Long sideTemp; + + /** + * 侧温温差 + */ + private Long sideTempdiff; + + /** + * 辊温 + */ + private Long rollTemp; + + /** + * 辊温温差 + */ + private Long rollTempdiff; + + /** + * 卸料门温度 + */ + private Long ddoorTemp; + + /** + * 卸料门温差 + */ + private Long ddoorTempdiff; + + /** + * 操作者 + */ + private String operCode; + + /** + * 备注 + */ + private String memNote; + + /** + * 配方编码 + */ + private String recipeCode; + + /** + * 开始使用时间 + */ + private String startDatetime; + + /** + * 停用时间 + */ + private String endDatetime; + + /** + * 机台优先级 + */ + private String equipPrior; + + /** + * 配方类型编码 + */ + private String recipeTypecode; + + /** + * 胶种编码 + */ + private String rubTypecode; + + /** + * 胶种类型 + */ + private String rubType; + + /** + * 物料种类编码 + */ + private String mkindCode; + + /** + * 物料分类编码 + */ + private String ikindCode; + + /** + * 共混范围 + */ + private String conglRang; + + /** + * SDS温度 + */ + private Long sdsTemp; + + /** + * 最短时间 + */ + private Long miniTime; + + /** + * 审核标志(0未审核 1已审核) + */ + private String auditFlag; + + /** + * 审核者 + */ + private Long auditName; + + /** + * 审核日期 + */ + private Date auditDate; + + /** + * 配方字典 + */ + private String recipeDic; + + /** + * 停放时间 + */ + private Long stayTime; + + /** + * 研究编码 + */ + private String rearchCode; + + /** + * 黑胶回用 + */ + private BigDecimal blackReuse; + + /** + * 回用时间 + */ + private Long reuseTime; + + /** + * 过期时间 + */ + private Long expireTime; + + /** + * 超温 + */ + private Long overTemp; + + /** + * 最高温度 + */ + private Long maxTemp; + + /** + * 最低温度 + */ + private Long minTemp; + + /** + * 是否不控 + */ + private String ifNot; + + /** + * 主机温度 + */ + private Long zzTemp; + + /** + * 卸料门温度(小料门) + */ + private Long xlmTemp; + + /** + * 排胶控制 + */ + private Long pjcontrl; + + /** + * 删除标志(0代表存在 2代表删除) + */ + @TableLogic + private String delFlag; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdRecipeMixing.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdRecipeMixing.java new file mode 100644 index 00000000..b7b8e2e8 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdRecipeMixing.java @@ -0,0 +1,143 @@ +package org.dromara.mes.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; + +/** + * 配方混炼信息对象 prod_recipe_mixing + * + * @author Yinq + * @date 2026-02-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("prod_recipe_mixing") +public class ProdRecipeMixing extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "mixing_id", type = IdType.AUTO) + private Long mixingId; + + /** + * 配方ID + */ + private Long recipeId; + + /** + * 混炼序号 + */ + private Long mixId; + + /** + * 机台ID + */ + private Long machineId; + + /** + * 版本号 + */ + private Long edtCode; + + /** + * 条件编码 + */ + private String condCode; + + /** + * 混炼时间 + */ + private Long mixingTime; + + /** + * 混炼温度 + */ + private BigDecimal mixingTemp; + + /** + * 混炼能量 + */ + private BigDecimal mixingEnergy; + + /** + * 混炼功率 + */ + private BigDecimal mixingPower; + + /** + * 混炼压力 + */ + private BigDecimal mixingPress; + + /** + * 混炼转速 + */ + private Long mixingSpeed; + + /** + * 动作编码 + */ + private String actCode; + + /** + * 父级编码 + */ + private String fatherCode; + + /** + * 子级编码 + */ + private String childCode; + + /** + * 工步编码 + */ + private String termCode; + + /** + * 设定时间 + */ + private Long setTime; + + /** + * 设定温度 + */ + private Long setTemp; + + /** + * 设定能量 + */ + private BigDecimal setEnergy; + + /** + * 设定功率 + */ + private BigDecimal setPower; + + /** + * 设定压力 + */ + private BigDecimal setPres; + + /** + * 设定转速 + */ + private Long setRota; + + /** + * 删除标志(0代表存在 2代表删除) + */ + @TableLogic + private String delFlag; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdRecipeWeight.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdRecipeWeight.java new file mode 100644 index 00000000..2dd46f2b --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdRecipeWeight.java @@ -0,0 +1,108 @@ +package org.dromara.mes.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; + +/** + * 配方称量信息对象 prod_recipe_weight + * + * @author Yinq + * @date 2026-02-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("prod_recipe_weight") +public class ProdRecipeWeight extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "weight_id", type = IdType.AUTO) + private Long weightId; + + /** + * 配方ID + */ + private Long recipeId; + + /** + * 称量序号 + */ + private Long weightSeq; + + /** + * 机台ID + */ + private Long machineId; + + /** + * 版本号 + */ + private Long edtCode; + + /** + * 称量类型 + */ + private String weightType; + + /** + * 秤编码 + */ + private Long scaleCode; + + /** + * 动作编码 + */ + private String actCode; + + /** + * 设定重量 + */ + private BigDecimal setWeight; + + /** + * 误差允许 + */ + private BigDecimal errorAllow; + + /** + * 父级编码 + */ + private String fatherCode; + + /** + * 单位 + */ + private Long unitId; + + /** + * 子级编码 + */ + private String childCode; + + /** + * 是否使用批次 + */ + private String ifUseBat; + + /** + * 最大比例 + */ + private String maxRate; + + /** + * 删除标志(0代表存在 2代表删除) + */ + @TableLogic + private String delFlag; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdRecipeInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdRecipeInfoBo.java new file mode 100644 index 00000000..3be9cef5 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdRecipeInfoBo.java @@ -0,0 +1,339 @@ +package org.dromara.mes.domain.bo; + +import org.dromara.mes.domain.ProdRecipeInfo; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 配方-基础信息业务对象 prod_recipe_info + * + * @author Yinq + * @date 2026-02-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ProdRecipeInfo.class, reverseConvertGenerate = false) +public class ProdRecipeInfoBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long recipeId; + + /** + * 机台ID + */ + @NotNull(message = "机台ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long machineId; + + /** + * 物料ID + */ + private String materialId; + + /** + * 版本号 + */ + private Long edtCode; + + /** + * 配方类型(1正用) + */ + private Long recipeType; + + /** + * 用户版本 + */ + private String userEdtCode; + + /** + * 配方状态(1正用 0停用) + */ + private String recipeState; + + /** + * 完成时间 + */ + private Long doneTime; + + /** + * 架子车数 + */ + private Long shelfNum; + + /** + * 配方重量 + */ + private BigDecimal totalWeight; + + /** + * 填充系数 + */ + private BigDecimal fillCoefficient; + + /** + * 炭黑回收类型 + */ + private String cbRecycleType; + + /** + * 炭黑回收时间 + */ + private Long cbRecycleTime; + + /** + * 超温排胶最短时间 + */ + private Long overtempMintime; + + /** + * 超时排胶时间 + */ + private Long overtimeTime; + + /** + * 超温排胶温度 + */ + private Long overtempTemp; + + /** + * 最大进胶温度 + */ + private Long maxInpolytemp; + + /** + * 最小进胶温度 + */ + private Long minInpolytemp; + + /** + * 进胶时间 + */ + private Long inPolytime; + + /** + * 进炭黑时间 + */ + private Long inCarbontime; + + /** + * 进油时间 + */ + private Long inOiltime; + + /** + * 进粉时间 + */ + private Long inPowdertime; + + /** + * 辊速差 + */ + private Long rollSpeeddiff; + + /** + * 上顶栓压力差 + */ + private Long ramPressdiff; + + /** + * 是否使用区域温度 + */ + private String isUseareatemp; + + /** + * 侧温 + */ + private Long sideTemp; + + /** + * 侧温温差 + */ + private Long sideTempdiff; + + /** + * 辊温 + */ + private Long rollTemp; + + /** + * 辊温温差 + */ + @NotNull(message = "辊温温差不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long rollTempdiff; + + /** + * 卸料门温度 + */ + private Long ddoorTemp; + + /** + * 卸料门温差 + */ + private Long ddoorTempdiff; + + /** + * 操作者 + */ + @NotBlank(message = "操作者不能为空", groups = { AddGroup.class, EditGroup.class }) + private String operCode; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String memNote; + + /** + * 配方编码 + */ + @NotBlank(message = "配方编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String recipeCode; + + /** + * 开始使用时间 + */ + private String startDatetime; + + /** + * 停用时间 + */ + private String endDatetime; + + /** + * 机台优先级 + */ + private String equipPrior; + + /** + * 配方类型编码 + */ + private String recipeTypecode; + + /** + * 胶种编码 + */ + private String rubTypecode; + + /** + * 胶种类型 + */ + private String rubType; + + /** + * 物料种类编码 + */ + private String mkindCode; + + /** + * 物料分类编码 + */ + private String ikindCode; + + /** + * 共混范围 + */ + private String conglRang; + + /** + * SDS温度 + */ + private Long sdsTemp; + + /** + * 最短时间 + */ + private Long miniTime; + + /** + * 审核标志(0未审核 1已审核) + */ + private String auditFlag; + + /** + * 审核者 + */ + private Long auditName; + + /** + * 审核日期 + */ + @NotNull(message = "审核日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date auditDate; + + /** + * 配方字典 + */ + @NotBlank(message = "配方字典不能为空", groups = { AddGroup.class, EditGroup.class }) + private String recipeDic; + + /** + * 停放时间 + */ + private Long stayTime; + + /** + * 研究编码 + */ + private String rearchCode; + + /** + * 黑胶回用 + */ + private BigDecimal blackReuse; + + /** + * 回用时间 + */ + private Long reuseTime; + + /** + * 过期时间 + */ + private Long expireTime; + + /** + * 超温 + */ + private Long overTemp; + + /** + * 最高温度 + */ + private Long maxTemp; + + /** + * 最低温度 + */ + private Long minTemp; + + /** + * 是否不控 + */ + private String ifNot; + + /** + * 主机温度 + */ + private Long zzTemp; + + /** + * 卸料门温度(小料门) + */ + private Long xlmTemp; + + /** + * 排胶控制 + */ + private Long pjcontrl; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdRecipeMixingBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdRecipeMixingBo.java new file mode 100644 index 00000000..d8ccee61 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdRecipeMixingBo.java @@ -0,0 +1,136 @@ +package org.dromara.mes.domain.bo; + +import org.dromara.mes.domain.ProdRecipeMixing; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +/** + * 配方混炼信息业务对象 prod_recipe_mixing + * + * @author Yinq + * @date 2026-02-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ProdRecipeMixing.class, reverseConvertGenerate = false) +public class ProdRecipeMixingBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long mixingId; + + /** + * 配方ID + */ + @NotNull(message = "配方ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long recipeId; + + /** + * 混炼序号 + */ + private Long mixId; + + /** + * 机台ID + */ + private Long machineId; + + /** + * 版本号 + */ + private Long edtCode; + + /** + * 条件编码 + */ + private String condCode; + + /** + * 混炼时间 + */ + private Long mixingTime; + + /** + * 混炼温度 + */ + private BigDecimal mixingTemp; + + /** + * 混炼能量 + */ + private BigDecimal mixingEnergy; + + /** + * 混炼功率 + */ + private BigDecimal mixingPower; + + /** + * 混炼压力 + */ + private BigDecimal mixingPress; + + /** + * 混炼转速 + */ + private Long mixingSpeed; + + /** + * 动作编码 + */ + private String actCode; + + /** + * 父级编码 + */ + private String fatherCode; + + /** + * 子级编码 + */ + private String childCode; + + /** + * 工步编码 + */ + private String termCode; + + /** + * 设定时间 + */ + private Long setTime; + + /** + * 设定温度 + */ + private Long setTemp; + + /** + * 设定能量 + */ + private BigDecimal setEnergy; + + /** + * 设定功率 + */ + private BigDecimal setPower; + + /** + * 设定压力 + */ + private BigDecimal setPres; + + /** + * 设定转速 + */ + private Long setRota; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdRecipeWeightBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdRecipeWeightBo.java new file mode 100644 index 00000000..ff1394ce --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdRecipeWeightBo.java @@ -0,0 +1,115 @@ +package org.dromara.mes.domain.bo; + +import org.dromara.mes.domain.ProdRecipeWeight; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +/** + * 配方称量信息业务对象 prod_recipe_weight + * + * @author Yinq + * @date 2026-02-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ProdRecipeWeight.class, reverseConvertGenerate = false) +public class ProdRecipeWeightBo extends BaseEntity { + + /** + * 主键标识 + */ + @NotNull(message = "主键标识不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long weightId; + + /** + * 配方ID + */ + @NotNull(message = "配方ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long recipeId; + + /** + * 称量序号 + */ + @NotNull(message = "称量序号不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long weightSeq; + + /** + * 机台ID + */ + @NotNull(message = "机台ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long machineId; + + /** + * 版本号 + */ + @NotNull(message = "版本号不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long edtCode; + + /** + * 称量类型 + */ + @NotBlank(message = "称量类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String weightType; + + /** + * 秤编码 + */ + @NotNull(message = "秤编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long scaleCode; + + /** + * 动作编码 + */ + @NotBlank(message = "动作编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String actCode; + + /** + * 设定重量 + */ + @NotNull(message = "设定重量不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal setWeight; + + /** + * 误差允许 + */ + @NotNull(message = "误差允许不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal errorAllow; + + /** + * 父级编码 + */ + @NotBlank(message = "父级编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String fatherCode; + + /** + * 单位 + */ + @NotNull(message = "单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long unitId; + + /** + * 子级编码 + */ + @NotBlank(message = "子级编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String childCode; + + /** + * 是否使用批次 + */ + @NotBlank(message = "是否使用批次不能为空", groups = { AddGroup.class, EditGroup.class }) + private String ifUseBat; + + /** + * 最大比例 + */ + @NotBlank(message = "最大比例不能为空", groups = { AddGroup.class, EditGroup.class }) + private String maxRate; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdRecipeInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdRecipeInfoVo.java new file mode 100644 index 00000000..f0503bce --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdRecipeInfoVo.java @@ -0,0 +1,405 @@ +package org.dromara.mes.domain.vo; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.mes.domain.ProdRecipeInfo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 配方-基础信息视图对象 prod_recipe_info + * + * @author Yinq + * @date 2026-02-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ProdRecipeInfo.class) +public class ProdRecipeInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long recipeId; + + /** + * 机台ID + */ + @ExcelProperty(value = "机台ID") + private Long machineId; + + /** + * 物料ID + */ + @ExcelProperty(value = "物料ID") + private String materialId; + + /** + * 版本号 + */ + @ExcelProperty(value = "版本号") + private Long edtCode; + + /** + * 配方类型(1正用) + */ + @ExcelProperty(value = "配方类型(1正用)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "recipe_type") + private Long recipeType; + + /** + * 用户版本 + */ + @ExcelProperty(value = "用户版本") + private String userEdtCode; + + /** + * 配方状态(1正用 0停用) + */ + @ExcelProperty(value = "配方状态(1正用 0停用)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "recipe_state") + private String recipeState; + + /** + * 完成时间 + */ + @ExcelProperty(value = "完成时间") + private Long doneTime; + + /** + * 架子车数 + */ + @ExcelProperty(value = "架子车数") + private Long shelfNum; + + /** + * 配方重量 + */ + @ExcelProperty(value = "配方重量") + private BigDecimal totalWeight; + + /** + * 填充系数 + */ + @ExcelProperty(value = "填充系数") + private BigDecimal fillCoefficient; + + /** + * 炭黑回收类型 + */ + @ExcelProperty(value = "炭黑回收类型") + private String cbRecycleType; + + /** + * 炭黑回收时间 + */ + @ExcelProperty(value = "炭黑回收时间") + private Long cbRecycleTime; + + /** + * 超温排胶最短时间 + */ + @ExcelProperty(value = "超温排胶最短时间") + private Long overtempMintime; + + /** + * 超时排胶时间 + */ + @ExcelProperty(value = "超时排胶时间") + private Long overtimeTime; + + /** + * 超温排胶温度 + */ + @ExcelProperty(value = "超温排胶温度") + private Long overtempTemp; + + /** + * 最大进胶温度 + */ + @ExcelProperty(value = "最大进胶温度") + private Long maxInpolytemp; + + /** + * 最小进胶温度 + */ + @ExcelProperty(value = "最小进胶温度") + private Long minInpolytemp; + + /** + * 进胶时间 + */ + @ExcelProperty(value = "进胶时间") + private Long inPolytime; + + /** + * 进炭黑时间 + */ + @ExcelProperty(value = "进炭黑时间") + private Long inCarbontime; + + /** + * 进油时间 + */ + @ExcelProperty(value = "进油时间") + private Long inOiltime; + + /** + * 进粉时间 + */ + @ExcelProperty(value = "进粉时间") + private Long inPowdertime; + + /** + * 辊速差 + */ + @ExcelProperty(value = "辊速差") + private Long rollSpeeddiff; + + /** + * 上顶栓压力差 + */ + @ExcelProperty(value = "上顶栓压力差") + private Long ramPressdiff; + + /** + * 是否使用区域温度 + */ + @ExcelProperty(value = "是否使用区域温度", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "top_flag") + private String isUseareatemp; + + /** + * 侧温 + */ + @ExcelProperty(value = "侧温") + private Long sideTemp; + + /** + * 侧温温差 + */ + @ExcelProperty(value = "侧温温差") + private Long sideTempdiff; + + /** + * 辊温 + */ + @ExcelProperty(value = "辊温") + private Long rollTemp; + + /** + * 辊温温差 + */ + @ExcelProperty(value = "辊温温差") + private Long rollTempdiff; + + /** + * 卸料门温度 + */ + @ExcelProperty(value = "卸料门温度") + private Long ddoorTemp; + + /** + * 卸料门温差 + */ + @ExcelProperty(value = "卸料门温差") + private Long ddoorTempdiff; + + /** + * 操作者 + */ + @ExcelProperty(value = "操作者") + private String operCode; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String memNote; + + /** + * 配方编码 + */ + @ExcelProperty(value = "配方编码") + private String recipeCode; + + /** + * 开始使用时间 + */ + @ExcelProperty(value = "开始使用时间") + private String startDatetime; + + /** + * 停用时间 + */ + @ExcelProperty(value = "停用时间") + private String endDatetime; + + /** + * 机台优先级 + */ + @ExcelProperty(value = "机台优先级") + private String equipPrior; + + /** + * 配方类型编码 + */ + @ExcelProperty(value = "配方类型编码") + private String recipeTypecode; + + /** + * 胶种编码 + */ + @ExcelProperty(value = "胶种编码") + private String rubTypecode; + + /** + * 胶种类型 + */ + @ExcelProperty(value = "胶种类型") + private String rubType; + + /** + * 物料种类编码 + */ + @ExcelProperty(value = "物料种类编码") + private String mkindCode; + + /** + * 物料分类编码 + */ + @ExcelProperty(value = "物料分类编码") + private String ikindCode; + + /** + * 共混范围 + */ + @ExcelProperty(value = "共混范围") + private String conglRang; + + /** + * SDS温度 + */ + @ExcelProperty(value = "SDS温度") + private Long sdsTemp; + + /** + * 最短时间 + */ + @ExcelProperty(value = "最短时间") + private Long miniTime; + + /** + * 审核标志(0未审核 1已审核) + */ + @ExcelProperty(value = "审核标志", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=未审核,1=已审核") + private String auditFlag; + + /** + * 审核者 + */ + @ExcelProperty(value = "审核者") + private Long auditName; + + /** + * 审核日期 + */ + @ExcelProperty(value = "审核日期") + private Date auditDate; + + /** + * 配方字典 + */ + @ExcelProperty(value = "配方字典") + private String recipeDic; + + /** + * 停放时间 + */ + @ExcelProperty(value = "停放时间") + private Long stayTime; + + /** + * 研究编码 + */ + @ExcelProperty(value = "研究编码") + private String rearchCode; + + /** + * 黑胶回用 + */ + @ExcelProperty(value = "黑胶回用") + private BigDecimal blackReuse; + + /** + * 回用时间 + */ + @ExcelProperty(value = "回用时间") + private Long reuseTime; + + /** + * 过期时间 + */ + @ExcelProperty(value = "过期时间") + private Long expireTime; + + /** + * 超温 + */ + @ExcelProperty(value = "超温") + private Long overTemp; + + /** + * 最高温度 + */ + @ExcelProperty(value = "最高温度") + private Long maxTemp; + + /** + * 最低温度 + */ + @ExcelProperty(value = "最低温度") + private Long minTemp; + + /** + * 是否不控 + */ + @ExcelProperty(value = "是否不控") + private String ifNot; + + /** + * 主机温度 + */ + @ExcelProperty(value = "主机温度") + private Long zzTemp; + + /** + * 卸料门温度(小料门) + */ + @ExcelProperty(value = "卸料门温度(小料门)") + private Long xlmTemp; + + /** + * 排胶控制 + */ + @ExcelProperty(value = "排胶控制") + private Long pjcontrl; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdRecipeMixingVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdRecipeMixingVo.java new file mode 100644 index 00000000..e7a43bb3 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdRecipeMixingVo.java @@ -0,0 +1,165 @@ +package org.dromara.mes.domain.vo; + +import java.math.BigDecimal; +import org.dromara.mes.domain.ProdRecipeMixing; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 配方混炼信息视图对象 prod_recipe_mixing + * + * @author Yinq + * @date 2026-02-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ProdRecipeMixing.class) +public class ProdRecipeMixingVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long mixingId; + + /** + * 配方ID + */ + @ExcelProperty(value = "配方ID") + private Long recipeId; + + /** + * 混炼序号 + */ + @ExcelProperty(value = "混炼序号") + private Long mixId; + + /** + * 机台ID + */ + @ExcelProperty(value = "机台ID") + private Long machineId; + + /** + * 版本号 + */ + @ExcelProperty(value = "版本号") + private Long edtCode; + + /** + * 条件编码 + */ + @ExcelProperty(value = "条件编码") + private String condCode; + + /** + * 混炼时间 + */ + @ExcelProperty(value = "混炼时间") + private Long mixingTime; + + /** + * 混炼温度 + */ + @ExcelProperty(value = "混炼温度") + private BigDecimal mixingTemp; + + /** + * 混炼能量 + */ + @ExcelProperty(value = "混炼能量") + private BigDecimal mixingEnergy; + + /** + * 混炼功率 + */ + @ExcelProperty(value = "混炼功率") + private BigDecimal mixingPower; + + /** + * 混炼压力 + */ + @ExcelProperty(value = "混炼压力") + private BigDecimal mixingPress; + + /** + * 混炼转速 + */ + @ExcelProperty(value = "混炼转速") + private Long mixingSpeed; + + /** + * 动作编码 + */ + @ExcelProperty(value = "动作编码") + private String actCode; + + /** + * 父级编码 + */ + @ExcelProperty(value = "父级编码") + private String fatherCode; + + /** + * 子级编码 + */ + @ExcelProperty(value = "子级编码") + private String childCode; + + /** + * 工步编码 + */ + @ExcelProperty(value = "工步编码") + private String termCode; + + /** + * 设定时间 + */ + @ExcelProperty(value = "设定时间") + private Long setTime; + + /** + * 设定温度 + */ + @ExcelProperty(value = "设定温度") + private Long setTemp; + + /** + * 设定能量 + */ + @ExcelProperty(value = "设定能量") + private BigDecimal setEnergy; + + /** + * 设定功率 + */ + @ExcelProperty(value = "设定功率") + private BigDecimal setPower; + + /** + * 设定压力 + */ + @ExcelProperty(value = "设定压力") + private BigDecimal setPres; + + /** + * 设定转速 + */ + @ExcelProperty(value = "设定转速") + private Long setRota; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdRecipeWeightVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdRecipeWeightVo.java new file mode 100644 index 00000000..065691b9 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdRecipeWeightVo.java @@ -0,0 +1,123 @@ +package org.dromara.mes.domain.vo; + +import java.math.BigDecimal; +import org.dromara.mes.domain.ProdRecipeWeight; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 配方称量信息视图对象 prod_recipe_weight + * + * @author Yinq + * @date 2026-02-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ProdRecipeWeight.class) +public class ProdRecipeWeightVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long weightId; + + /** + * 配方ID + */ + @ExcelProperty(value = "配方ID") + private Long recipeId; + + /** + * 称量序号 + */ + @ExcelProperty(value = "称量序号") + private Long weightSeq; + + /** + * 机台ID + */ + @ExcelProperty(value = "机台ID") + private Long machineId; + + /** + * 版本号 + */ + @ExcelProperty(value = "版本号") + private Long edtCode; + + /** + * 称量类型 + */ + @ExcelProperty(value = "称量类型") + private String weightType; + + /** + * 秤编码 + */ + @ExcelProperty(value = "秤编码") + private Long scaleCode; + + /** + * 动作编码 + */ + @ExcelProperty(value = "动作编码") + private String actCode; + + /** + * 设定重量 + */ + @ExcelProperty(value = "设定重量") + private BigDecimal setWeight; + + /** + * 误差允许 + */ + @ExcelProperty(value = "误差允许") + private BigDecimal errorAllow; + + /** + * 父级编码 + */ + @ExcelProperty(value = "父级编码") + private String fatherCode; + + /** + * 单位 + */ + @ExcelProperty(value = "单位") + private Long unitId; + + /** + * 子级编码 + */ + @ExcelProperty(value = "子级编码") + private String childCode; + + /** + * 是否使用批次 + */ + @ExcelProperty(value = "是否使用批次") + private String ifUseBat; + + /** + * 最大比例 + */ + @ExcelProperty(value = "最大比例") + private String maxRate; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdRecipeInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdRecipeInfoMapper.java new file mode 100644 index 00000000..fca7aea9 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdRecipeInfoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.ProdRecipeInfo; +import org.dromara.mes.domain.vo.ProdRecipeInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 配方-基础信息Mapper接口 + * + * @author Yinq + * @date 2026-02-10 + */ +public interface ProdRecipeInfoMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdRecipeMixingMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdRecipeMixingMapper.java new file mode 100644 index 00000000..22cf330f --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdRecipeMixingMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.ProdRecipeMixing; +import org.dromara.mes.domain.vo.ProdRecipeMixingVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 配方混炼信息Mapper接口 + * + * @author Yinq + * @date 2026-02-10 + */ +public interface ProdRecipeMixingMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdRecipeWeightMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdRecipeWeightMapper.java new file mode 100644 index 00000000..3eba7fca --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdRecipeWeightMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.ProdRecipeWeight; +import org.dromara.mes.domain.vo.ProdRecipeWeightVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 配方称量信息Mapper接口 + * + * @author Yinq + * @date 2026-02-10 + */ +public interface ProdRecipeWeightMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdRecipeInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdRecipeInfoService.java new file mode 100644 index 00000000..1e50e790 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdRecipeInfoService.java @@ -0,0 +1,69 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.ProdRecipeInfo; +import org.dromara.mes.domain.vo.ProdRecipeInfoVo; +import org.dromara.mes.domain.bo.ProdRecipeInfoBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 配方-基础信息Service接口 + * + * @author Yinq + * @date 2026-02-10 + */ +public interface IProdRecipeInfoService { + + /** + * 查询配方-基础信息 + * + * @param recipeId 主键 + * @return 配方-基础信息 + */ + ProdRecipeInfoVo queryById(Long recipeId); + + /** + * 分页查询配方-基础信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 配方-基础信息分页列表 + */ + TableDataInfo queryPageList(ProdRecipeInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的配方-基础信息列表 + * + * @param bo 查询条件 + * @return 配方-基础信息列表 + */ + List queryList(ProdRecipeInfoBo bo); + + /** + * 新增配方-基础信息 + * + * @param bo 配方-基础信息 + * @return 是否新增成功 + */ + Boolean insertByBo(ProdRecipeInfoBo bo); + + /** + * 修改配方-基础信息 + * + * @param bo 配方-基础信息 + * @return 是否修改成功 + */ + Boolean updateByBo(ProdRecipeInfoBo bo); + + /** + * 校验并批量删除配方-基础信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdRecipeMixingService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdRecipeMixingService.java new file mode 100644 index 00000000..842a5ce7 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdRecipeMixingService.java @@ -0,0 +1,69 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.ProdRecipeMixing; +import org.dromara.mes.domain.vo.ProdRecipeMixingVo; +import org.dromara.mes.domain.bo.ProdRecipeMixingBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 配方混炼信息Service接口 + * + * @author Yinq + * @date 2026-02-10 + */ +public interface IProdRecipeMixingService { + + /** + * 查询配方混炼信息 + * + * @param mixingId 主键 + * @return 配方混炼信息 + */ + ProdRecipeMixingVo queryById(Long mixingId); + + /** + * 分页查询配方混炼信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 配方混炼信息分页列表 + */ + TableDataInfo queryPageList(ProdRecipeMixingBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的配方混炼信息列表 + * + * @param bo 查询条件 + * @return 配方混炼信息列表 + */ + List queryList(ProdRecipeMixingBo bo); + + /** + * 新增配方混炼信息 + * + * @param bo 配方混炼信息 + * @return 是否新增成功 + */ + Boolean insertByBo(ProdRecipeMixingBo bo); + + /** + * 修改配方混炼信息 + * + * @param bo 配方混炼信息 + * @return 是否修改成功 + */ + Boolean updateByBo(ProdRecipeMixingBo bo); + + /** + * 校验并批量删除配方混炼信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdRecipeWeightService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdRecipeWeightService.java new file mode 100644 index 00000000..e519e879 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdRecipeWeightService.java @@ -0,0 +1,69 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.ProdRecipeWeight; +import org.dromara.mes.domain.vo.ProdRecipeWeightVo; +import org.dromara.mes.domain.bo.ProdRecipeWeightBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 配方称量信息Service接口 + * + * @author Yinq + * @date 2026-02-10 + */ +public interface IProdRecipeWeightService { + + /** + * 查询配方称量信息 + * + * @param weightId 主键 + * @return 配方称量信息 + */ + ProdRecipeWeightVo queryById(Long weightId); + + /** + * 分页查询配方称量信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 配方称量信息分页列表 + */ + TableDataInfo queryPageList(ProdRecipeWeightBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的配方称量信息列表 + * + * @param bo 查询条件 + * @return 配方称量信息列表 + */ + List queryList(ProdRecipeWeightBo bo); + + /** + * 新增配方称量信息 + * + * @param bo 配方称量信息 + * @return 是否新增成功 + */ + Boolean insertByBo(ProdRecipeWeightBo bo); + + /** + * 修改配方称量信息 + * + * @param bo 配方称量信息 + * @return 是否修改成功 + */ + Boolean updateByBo(ProdRecipeWeightBo bo); + + /** + * 校验并批量删除配方称量信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdRecipeInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdRecipeInfoServiceImpl.java new file mode 100644 index 00000000..457b7217 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdRecipeInfoServiceImpl.java @@ -0,0 +1,192 @@ +package org.dromara.mes.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.ProdRecipeInfoBo; +import org.dromara.mes.domain.vo.ProdRecipeInfoVo; +import org.dromara.mes.domain.ProdRecipeInfo; +import org.dromara.mes.mapper.ProdRecipeInfoMapper; +import org.dromara.mes.service.IProdRecipeInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 配方-基础信息Service业务层处理 + * + * @author Yinq + * @date 2026-02-10 + */ +@RequiredArgsConstructor +@Service +public class ProdRecipeInfoServiceImpl implements IProdRecipeInfoService { + + private final ProdRecipeInfoMapper baseMapper; + + /** + * 查询配方-基础信息 + * + * @param recipeId 主键 + * @return 配方-基础信息 + */ + @Override + public ProdRecipeInfoVo queryById(Long recipeId){ + return baseMapper.selectVoById(recipeId); + } + + /** + * 分页查询配方-基础信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 配方-基础信息分页列表 + */ + @Override + public TableDataInfo queryPageList(ProdRecipeInfoBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的配方-基础信息列表 + * + * @param bo 查询条件 + * @return 配方-基础信息列表 + */ + @Override + public List queryList(ProdRecipeInfoBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ProdRecipeInfoBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdRecipeInfo.class) + .selectAll(ProdRecipeInfo.class) + .eq(bo.getRecipeId() != null, ProdRecipeInfo::getRecipeId, bo.getRecipeId()) + .eq(bo.getMachineId() != null, ProdRecipeInfo::getMachineId, bo.getMachineId()) + .eq(StringUtils.isNotBlank(bo.getMaterialId()), ProdRecipeInfo::getMaterialId, bo.getMaterialId()) + .eq(bo.getEdtCode() != null, ProdRecipeInfo::getEdtCode, bo.getEdtCode()) + .eq(bo.getRecipeType() != null, ProdRecipeInfo::getRecipeType, bo.getRecipeType()) + .eq(StringUtils.isNotBlank(bo.getUserEdtCode()), ProdRecipeInfo::getUserEdtCode, bo.getUserEdtCode()) + .eq(StringUtils.isNotBlank(bo.getRecipeState()), ProdRecipeInfo::getRecipeState, bo.getRecipeState()) + .eq(bo.getDoneTime() != null, ProdRecipeInfo::getDoneTime, bo.getDoneTime()) + .eq(bo.getShelfNum() != null, ProdRecipeInfo::getShelfNum, bo.getShelfNum()) + .eq(bo.getTotalWeight() != null, ProdRecipeInfo::getTotalWeight, bo.getTotalWeight()) + .eq(bo.getFillCoefficient() != null, ProdRecipeInfo::getFillCoefficient, bo.getFillCoefficient()) + .eq(StringUtils.isNotBlank(bo.getCbRecycleType()), ProdRecipeInfo::getCbRecycleType, bo.getCbRecycleType()) + .eq(bo.getCbRecycleTime() != null, ProdRecipeInfo::getCbRecycleTime, bo.getCbRecycleTime()) + .eq(bo.getOvertempMintime() != null, ProdRecipeInfo::getOvertempMintime, bo.getOvertempMintime()) + .eq(bo.getOvertimeTime() != null, ProdRecipeInfo::getOvertimeTime, bo.getOvertimeTime()) + .eq(bo.getOvertempTemp() != null, ProdRecipeInfo::getOvertempTemp, bo.getOvertempTemp()) + .eq(bo.getMaxInpolytemp() != null, ProdRecipeInfo::getMaxInpolytemp, bo.getMaxInpolytemp()) + .eq(bo.getMinInpolytemp() != null, ProdRecipeInfo::getMinInpolytemp, bo.getMinInpolytemp()) + .eq(bo.getInPolytime() != null, ProdRecipeInfo::getInPolytime, bo.getInPolytime()) + .eq(bo.getInCarbontime() != null, ProdRecipeInfo::getInCarbontime, bo.getInCarbontime()) + .eq(bo.getInOiltime() != null, ProdRecipeInfo::getInOiltime, bo.getInOiltime()) + .eq(bo.getInPowdertime() != null, ProdRecipeInfo::getInPowdertime, bo.getInPowdertime()) + .eq(bo.getRollSpeeddiff() != null, ProdRecipeInfo::getRollSpeeddiff, bo.getRollSpeeddiff()) + .eq(bo.getRamPressdiff() != null, ProdRecipeInfo::getRamPressdiff, bo.getRamPressdiff()) + .eq(StringUtils.isNotBlank(bo.getIsUseareatemp()), ProdRecipeInfo::getIsUseareatemp, bo.getIsUseareatemp()) + .eq(bo.getSideTemp() != null, ProdRecipeInfo::getSideTemp, bo.getSideTemp()) + .eq(bo.getSideTempdiff() != null, ProdRecipeInfo::getSideTempdiff, bo.getSideTempdiff()) + .eq(bo.getRollTemp() != null, ProdRecipeInfo::getRollTemp, bo.getRollTemp()) + .eq(bo.getRollTempdiff() != null, ProdRecipeInfo::getRollTempdiff, bo.getRollTempdiff()) + .eq(bo.getDdoorTemp() != null, ProdRecipeInfo::getDdoorTemp, bo.getDdoorTemp()) + .eq(bo.getDdoorTempdiff() != null, ProdRecipeInfo::getDdoorTempdiff, bo.getDdoorTempdiff()) + .eq(StringUtils.isNotBlank(bo.getOperCode()), ProdRecipeInfo::getOperCode, bo.getOperCode()) + .eq(StringUtils.isNotBlank(bo.getMemNote()), ProdRecipeInfo::getMemNote, bo.getMemNote()) + .eq(StringUtils.isNotBlank(bo.getRecipeCode()), ProdRecipeInfo::getRecipeCode, bo.getRecipeCode()) + .eq(StringUtils.isNotBlank(bo.getStartDatetime()), ProdRecipeInfo::getStartDatetime, bo.getStartDatetime()) + .eq(StringUtils.isNotBlank(bo.getEndDatetime()), ProdRecipeInfo::getEndDatetime, bo.getEndDatetime()) + .eq(StringUtils.isNotBlank(bo.getEquipPrior()), ProdRecipeInfo::getEquipPrior, bo.getEquipPrior()) + .eq(StringUtils.isNotBlank(bo.getRecipeTypecode()), ProdRecipeInfo::getRecipeTypecode, bo.getRecipeTypecode()) + .eq(StringUtils.isNotBlank(bo.getRubTypecode()), ProdRecipeInfo::getRubTypecode, bo.getRubTypecode()) + .eq(StringUtils.isNotBlank(bo.getRubType()), ProdRecipeInfo::getRubType, bo.getRubType()) + .eq(StringUtils.isNotBlank(bo.getMkindCode()), ProdRecipeInfo::getMkindCode, bo.getMkindCode()) + .eq(StringUtils.isNotBlank(bo.getIkindCode()), ProdRecipeInfo::getIkindCode, bo.getIkindCode()) + .eq(StringUtils.isNotBlank(bo.getConglRang()), ProdRecipeInfo::getConglRang, bo.getConglRang()) + .eq(bo.getSdsTemp() != null, ProdRecipeInfo::getSdsTemp, bo.getSdsTemp()) + .eq(bo.getMiniTime() != null, ProdRecipeInfo::getMiniTime, bo.getMiniTime()) + .eq(StringUtils.isNotBlank(bo.getAuditFlag()), ProdRecipeInfo::getAuditFlag, bo.getAuditFlag()) + .like(bo.getAuditName() != null, ProdRecipeInfo::getAuditName, bo.getAuditName()) + .eq(bo.getAuditDate() != null, ProdRecipeInfo::getAuditDate, bo.getAuditDate()) + .eq(StringUtils.isNotBlank(bo.getRecipeDic()), ProdRecipeInfo::getRecipeDic, bo.getRecipeDic()) + .eq(bo.getStayTime() != null, ProdRecipeInfo::getStayTime, bo.getStayTime()) + .eq(StringUtils.isNotBlank(bo.getRearchCode()), ProdRecipeInfo::getRearchCode, bo.getRearchCode()) + .eq(bo.getBlackReuse() != null, ProdRecipeInfo::getBlackReuse, bo.getBlackReuse()) + .eq(bo.getReuseTime() != null, ProdRecipeInfo::getReuseTime, bo.getReuseTime()) + .eq(bo.getExpireTime() != null, ProdRecipeInfo::getExpireTime, bo.getExpireTime()) + .eq(bo.getOverTemp() != null, ProdRecipeInfo::getOverTemp, bo.getOverTemp()) + .eq(bo.getMaxTemp() != null, ProdRecipeInfo::getMaxTemp, bo.getMaxTemp()) + .eq(bo.getMinTemp() != null, ProdRecipeInfo::getMinTemp, bo.getMinTemp()) + .eq(StringUtils.isNotBlank(bo.getIfNot()), ProdRecipeInfo::getIfNot, bo.getIfNot()) + .eq(bo.getZzTemp() != null, ProdRecipeInfo::getZzTemp, bo.getZzTemp()) + .eq(bo.getXlmTemp() != null, ProdRecipeInfo::getXlmTemp, bo.getXlmTemp()) + .eq(bo.getPjcontrl() != null, ProdRecipeInfo::getPjcontrl, bo.getPjcontrl()) + .orderByDesc(ProdRecipeInfo::getCreateTime); + return lqw; + } + + /** + * 新增配方-基础信息 + * + * @param bo 配方-基础信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ProdRecipeInfoBo bo) { + ProdRecipeInfo add = MapstructUtils.convert(bo, ProdRecipeInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setRecipeId(add.getRecipeId()); + } + return flag; + } + + /** + * 修改配方-基础信息 + * + * @param bo 配方-基础信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProdRecipeInfoBo bo) { + ProdRecipeInfo update = MapstructUtils.convert(bo, ProdRecipeInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ProdRecipeInfo entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除配方-基础信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdRecipeMixingServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdRecipeMixingServiceImpl.java new file mode 100644 index 00000000..40984492 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdRecipeMixingServiceImpl.java @@ -0,0 +1,153 @@ +package org.dromara.mes.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.ProdRecipeMixingBo; +import org.dromara.mes.domain.vo.ProdRecipeMixingVo; +import org.dromara.mes.domain.ProdRecipeMixing; +import org.dromara.mes.mapper.ProdRecipeMixingMapper; +import org.dromara.mes.service.IProdRecipeMixingService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 配方混炼信息Service业务层处理 + * + * @author Yinq + * @date 2026-02-10 + */ +@RequiredArgsConstructor +@Service +public class ProdRecipeMixingServiceImpl implements IProdRecipeMixingService { + + private final ProdRecipeMixingMapper baseMapper; + + /** + * 查询配方混炼信息 + * + * @param mixingId 主键 + * @return 配方混炼信息 + */ + @Override + public ProdRecipeMixingVo queryById(Long mixingId){ + return baseMapper.selectVoById(mixingId); + } + + /** + * 分页查询配方混炼信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 配方混炼信息分页列表 + */ + @Override + public TableDataInfo queryPageList(ProdRecipeMixingBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的配方混炼信息列表 + * + * @param bo 查询条件 + * @return 配方混炼信息列表 + */ + @Override + public List queryList(ProdRecipeMixingBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ProdRecipeMixingBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdRecipeMixing.class) + .selectAll(ProdRecipeMixing.class) + .eq(bo.getMixingId() != null, ProdRecipeMixing::getMixingId, bo.getMixingId()) + .eq(bo.getRecipeId() != null, ProdRecipeMixing::getRecipeId, bo.getRecipeId()) + .eq(bo.getMixId() != null, ProdRecipeMixing::getMixId, bo.getMixId()) + .eq(bo.getMachineId() != null, ProdRecipeMixing::getMachineId, bo.getMachineId()) + .eq(bo.getEdtCode() != null, ProdRecipeMixing::getEdtCode, bo.getEdtCode()) + .eq(StringUtils.isNotBlank(bo.getCondCode()), ProdRecipeMixing::getCondCode, bo.getCondCode()) + .eq(bo.getMixingTime() != null, ProdRecipeMixing::getMixingTime, bo.getMixingTime()) + .eq(bo.getMixingTemp() != null, ProdRecipeMixing::getMixingTemp, bo.getMixingTemp()) + .eq(bo.getMixingEnergy() != null, ProdRecipeMixing::getMixingEnergy, bo.getMixingEnergy()) + .eq(bo.getMixingPower() != null, ProdRecipeMixing::getMixingPower, bo.getMixingPower()) + .eq(bo.getMixingPress() != null, ProdRecipeMixing::getMixingPress, bo.getMixingPress()) + .eq(bo.getMixingSpeed() != null, ProdRecipeMixing::getMixingSpeed, bo.getMixingSpeed()) + .eq(StringUtils.isNotBlank(bo.getActCode()), ProdRecipeMixing::getActCode, bo.getActCode()) + .eq(StringUtils.isNotBlank(bo.getFatherCode()), ProdRecipeMixing::getFatherCode, bo.getFatherCode()) + .eq(StringUtils.isNotBlank(bo.getChildCode()), ProdRecipeMixing::getChildCode, bo.getChildCode()) + .eq(StringUtils.isNotBlank(bo.getTermCode()), ProdRecipeMixing::getTermCode, bo.getTermCode()) + .eq(bo.getSetTime() != null, ProdRecipeMixing::getSetTime, bo.getSetTime()) + .eq(bo.getSetTemp() != null, ProdRecipeMixing::getSetTemp, bo.getSetTemp()) + .eq(bo.getSetEnergy() != null, ProdRecipeMixing::getSetEnergy, bo.getSetEnergy()) + .eq(bo.getSetPower() != null, ProdRecipeMixing::getSetPower, bo.getSetPower()) + .eq(bo.getSetPres() != null, ProdRecipeMixing::getSetPres, bo.getSetPres()) + .eq(bo.getSetRota() != null, ProdRecipeMixing::getSetRota, bo.getSetRota()) + .orderByDesc(ProdRecipeMixing::getCreateTime); + return lqw; + } + + /** + * 新增配方混炼信息 + * + * @param bo 配方混炼信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ProdRecipeMixingBo bo) { + ProdRecipeMixing add = MapstructUtils.convert(bo, ProdRecipeMixing.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setMixingId(add.getMixingId()); + } + return flag; + } + + /** + * 修改配方混炼信息 + * + * @param bo 配方混炼信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProdRecipeMixingBo bo) { + ProdRecipeMixing update = MapstructUtils.convert(bo, ProdRecipeMixing.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ProdRecipeMixing entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除配方混炼信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdRecipeWeightServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdRecipeWeightServiceImpl.java new file mode 100644 index 00000000..8c3b6cc7 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdRecipeWeightServiceImpl.java @@ -0,0 +1,146 @@ +package org.dromara.mes.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.ProdRecipeWeightBo; +import org.dromara.mes.domain.vo.ProdRecipeWeightVo; +import org.dromara.mes.domain.ProdRecipeWeight; +import org.dromara.mes.mapper.ProdRecipeWeightMapper; +import org.dromara.mes.service.IProdRecipeWeightService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 配方称量信息Service业务层处理 + * + * @author Yinq + * @date 2026-02-10 + */ +@RequiredArgsConstructor +@Service +public class ProdRecipeWeightServiceImpl implements IProdRecipeWeightService { + + private final ProdRecipeWeightMapper baseMapper; + + /** + * 查询配方称量信息 + * + * @param weightId 主键 + * @return 配方称量信息 + */ + @Override + public ProdRecipeWeightVo queryById(Long weightId){ + return baseMapper.selectVoById(weightId); + } + + /** + * 分页查询配方称量信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 配方称量信息分页列表 + */ + @Override + public TableDataInfo queryPageList(ProdRecipeWeightBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的配方称量信息列表 + * + * @param bo 查询条件 + * @return 配方称量信息列表 + */ + @Override + public List queryList(ProdRecipeWeightBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ProdRecipeWeightBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdRecipeWeight.class) + .selectAll(ProdRecipeWeight.class) + .eq(bo.getWeightId() != null, ProdRecipeWeight::getWeightId, bo.getWeightId()) + .eq(bo.getRecipeId() != null, ProdRecipeWeight::getRecipeId, bo.getRecipeId()) + .eq(bo.getWeightSeq() != null, ProdRecipeWeight::getWeightSeq, bo.getWeightSeq()) + .eq(bo.getMachineId() != null, ProdRecipeWeight::getMachineId, bo.getMachineId()) + .eq(bo.getEdtCode() != null, ProdRecipeWeight::getEdtCode, bo.getEdtCode()) + .eq(StringUtils.isNotBlank(bo.getWeightType()), ProdRecipeWeight::getWeightType, bo.getWeightType()) + .eq(bo.getScaleCode() != null, ProdRecipeWeight::getScaleCode, bo.getScaleCode()) + .eq(StringUtils.isNotBlank(bo.getActCode()), ProdRecipeWeight::getActCode, bo.getActCode()) + .eq(bo.getSetWeight() != null, ProdRecipeWeight::getSetWeight, bo.getSetWeight()) + .eq(bo.getErrorAllow() != null, ProdRecipeWeight::getErrorAllow, bo.getErrorAllow()) + .eq(StringUtils.isNotBlank(bo.getFatherCode()), ProdRecipeWeight::getFatherCode, bo.getFatherCode()) + .eq(bo.getUnitId() != null, ProdRecipeWeight::getUnitId, bo.getUnitId()) + .eq(StringUtils.isNotBlank(bo.getChildCode()), ProdRecipeWeight::getChildCode, bo.getChildCode()) + .eq(StringUtils.isNotBlank(bo.getIfUseBat()), ProdRecipeWeight::getIfUseBat, bo.getIfUseBat()) + .eq(StringUtils.isNotBlank(bo.getMaxRate()), ProdRecipeWeight::getMaxRate, bo.getMaxRate()) + .orderByDesc(ProdRecipeWeight::getCreateTime); + return lqw; + } + + /** + * 新增配方称量信息 + * + * @param bo 配方称量信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ProdRecipeWeightBo bo) { + ProdRecipeWeight add = MapstructUtils.convert(bo, ProdRecipeWeight.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setWeightId(add.getWeightId()); + } + return flag; + } + + /** + * 修改配方称量信息 + * + * @param bo 配方称量信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProdRecipeWeightBo bo) { + ProdRecipeWeight update = MapstructUtils.convert(bo, ProdRecipeWeight.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ProdRecipeWeight entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除配方称量信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdRecipeInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdRecipeInfoMapper.xml new file mode 100644 index 00000000..b7d7a03e --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdRecipeInfoMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdRecipeMixingMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdRecipeMixingMapper.xml new file mode 100644 index 00000000..c114e120 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdRecipeMixingMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdRecipeWeightMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdRecipeWeightMapper.xml new file mode 100644 index 00000000..b5e586d1 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdRecipeWeightMapper.xml @@ -0,0 +1,7 @@ + + + + +