update 初始化配方信息

master
yinq 2 months ago
parent 651c9b4d0a
commit 789c27cc87

@ -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<ProdRecipeInfoVo> 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<ProdRecipeInfoVo> list = prodRecipeInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "配方-基础信息", ProdRecipeInfoVo.class, response);
}
/**
* -
*
* @param recipeId
*/
@SaCheckPermission("mes:recipeInfo:query")
@GetMapping("/{recipeId}")
public R<ProdRecipeInfoVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] recipeIds) {
return toAjax(prodRecipeInfoService.deleteWithValidByIds(List.of(recipeIds), true));
}
/**
* -
*/
@GetMapping("/getProdRecipeInfoList")
public R<List<ProdRecipeInfoVo>> getProdRecipeInfoList(ProdRecipeInfoBo bo) {
List<ProdRecipeInfoVo> list = prodRecipeInfoService.queryList(bo);
return R.ok(list);
}
}

@ -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<ProdRecipeMixingVo> 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<ProdRecipeMixingVo> list = prodRecipeMixingService.queryList(bo);
ExcelUtil.exportExcel(list, "配方混炼信息", ProdRecipeMixingVo.class, response);
}
/**
*
*
* @param mixingId
*/
@SaCheckPermission("mes:recipeMixing:query")
@GetMapping("/{mixingId}")
public R<ProdRecipeMixingVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] mixingIds) {
return toAjax(prodRecipeMixingService.deleteWithValidByIds(List.of(mixingIds), true));
}
/**
*
*/
@GetMapping("/getProdRecipeMixingList")
public R<List<ProdRecipeMixingVo>> getProdRecipeMixingList(ProdRecipeMixingBo bo) {
List<ProdRecipeMixingVo> list = prodRecipeMixingService.queryList(bo);
return R.ok(list);
}
}

@ -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<ProdRecipeWeightVo> 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<ProdRecipeWeightVo> list = prodRecipeWeightService.queryList(bo);
ExcelUtil.exportExcel(list, "配方称量信息", ProdRecipeWeightVo.class, response);
}
/**
*
*
* @param weightId
*/
@SaCheckPermission("mes:recipeWeight:query")
@GetMapping("/{weightId}")
public R<ProdRecipeWeightVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] weightIds) {
return toAjax(prodRecipeWeightService.deleteWithValidByIds(List.of(weightIds), true));
}
/**
*
*/
@GetMapping("/getProdRecipeWeightList")
public R<List<ProdRecipeWeightVo>> getProdRecipeWeightList(ProdRecipeWeightBo bo) {
List<ProdRecipeWeightVo> list = prodRecipeWeightService.queryList(bo);
return R.ok(list);
}
}

@ -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;
}

@ -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;
}

@ -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;
}

@ -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;
}

@ -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;
}

@ -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;
}

@ -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;
}

@ -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;
}

@ -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;
}

@ -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<ProdRecipeInfo, ProdRecipeInfoVo> {
}

@ -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<ProdRecipeMixing, ProdRecipeMixingVo> {
}

@ -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<ProdRecipeWeight, ProdRecipeWeightVo> {
}

@ -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<ProdRecipeInfoVo> queryPageList(ProdRecipeInfoBo bo, PageQuery pageQuery);
/**
* -
*
* @param bo
* @return -
*/
List<ProdRecipeInfoVo> 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<Long> ids, Boolean isValid);
}

@ -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<ProdRecipeMixingVo> queryPageList(ProdRecipeMixingBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<ProdRecipeMixingVo> 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<Long> ids, Boolean isValid);
}

@ -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<ProdRecipeWeightVo> queryPageList(ProdRecipeWeightBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<ProdRecipeWeightVo> 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<Long> ids, Boolean isValid);
}

@ -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<ProdRecipeInfoVo> queryPageList(ProdRecipeInfoBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<ProdRecipeInfo> lqw = buildQueryWrapper(bo);
Page<ProdRecipeInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* -
*
* @param bo
* @return -
*/
@Override
public List<ProdRecipeInfoVo> queryList(ProdRecipeInfoBo bo) {
MPJLambdaWrapper<ProdRecipeInfo> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<ProdRecipeInfo> buildQueryWrapper(ProdRecipeInfoBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<ProdRecipeInfo> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -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<ProdRecipeMixingVo> queryPageList(ProdRecipeMixingBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<ProdRecipeMixing> lqw = buildQueryWrapper(bo);
Page<ProdRecipeMixingVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<ProdRecipeMixingVo> queryList(ProdRecipeMixingBo bo) {
MPJLambdaWrapper<ProdRecipeMixing> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<ProdRecipeMixing> buildQueryWrapper(ProdRecipeMixingBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<ProdRecipeMixing> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -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<ProdRecipeWeightVo> queryPageList(ProdRecipeWeightBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<ProdRecipeWeight> lqw = buildQueryWrapper(bo);
Page<ProdRecipeWeightVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<ProdRecipeWeightVo> queryList(ProdRecipeWeightBo bo) {
MPJLambdaWrapper<ProdRecipeWeight> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<ProdRecipeWeight> buildQueryWrapper(ProdRecipeWeightBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<ProdRecipeWeight> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.mes.mapper.ProdRecipeInfoMapper">
</mapper>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.mes.mapper.ProdRecipeMixingMapper">
</mapper>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.mes.mapper.ProdRecipeWeightMapper">
</mapper>
Loading…
Cancel
Save