kkk-ops 1 month ago
commit 3d4a8fb65c

@ -59,4 +59,10 @@ public class RecipeRespVO {
@Schema(description = "设备Id") @Schema(description = "设备Id")
private Long machineId; private Long machineId;
@Schema(description = "配方类型ID", example = "1001")
private Long recipeTypeId;
@Schema(description = "关联产品ID", example = "1001")
private Long productId;
} }

@ -40,4 +40,10 @@ public class RecipeSaveReqVO {
@Schema(description = "设备Id") @Schema(description = "设备Id")
private Long machineId; private Long machineId;
@Schema(description = "配方类型ID", example = "1001")
private Long recipeTypeId;
@Schema(description = "关联产品ID", example = "1001")
private Long productId;
} }

@ -61,10 +61,20 @@ public class RecipeDO extends BaseDO {
private String dataUnit; private String dataUnit;
/** /**
* * ID
*/ */
private Long machineId; private Long machineId;
/**
* ID
*/
private Long productId;
/**
* ID
*/
private Long recipeTypeId;
} }

@ -105,10 +105,14 @@ import cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants;
import cn.iocoder.yudao.module.iot.controller.admin.recipe.vo.RecipePageReqVO; import cn.iocoder.yudao.module.iot.controller.admin.recipe.vo.RecipePageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.recipe.vo.RecipeRespVO; import cn.iocoder.yudao.module.iot.controller.admin.recipe.vo.RecipeRespVO;
import cn.iocoder.yudao.module.iot.controller.admin.recipe.vo.RecipeSaveReqVO; import cn.iocoder.yudao.module.iot.controller.admin.recipe.vo.RecipeSaveReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO;
import cn.iocoder.yudao.module.erp.service.product.ErpProductService;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO; import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO;
import cn.iocoder.yudao.module.iot.dal.dataobject.recipe.RecipeDO; import cn.iocoder.yudao.module.iot.dal.dataobject.recipe.RecipeDO;
import cn.iocoder.yudao.module.iot.dal.dataobject.recipetype.RecipeTypeDO;
import cn.iocoder.yudao.module.iot.dal.mysql.device.DeviceMapper; import cn.iocoder.yudao.module.iot.dal.mysql.device.DeviceMapper;
import cn.iocoder.yudao.module.iot.dal.mysql.recipe.RecipeMapper; import cn.iocoder.yudao.module.iot.dal.mysql.recipe.RecipeMapper;
import cn.iocoder.yudao.module.iot.service.recipetype.RecipeTypeService;
import cn.iocoder.yudao.framework.common.exception.ServiceException; import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
@ -138,6 +142,10 @@ public class RecipeServiceImpl implements RecipeService {
private RecipeMapper recipeMapper; private RecipeMapper recipeMapper;
@Resource @Resource
private DeviceMapper deviceMapper; // 注入现有DeviceMapper private DeviceMapper deviceMapper; // 注入现有DeviceMapper
@Resource
private ErpProductService erpProductService;
@Resource
private RecipeTypeService recipeTypeService;
// ========== 原有方法保持不变 ========== // ========== 原有方法保持不变 ==========
@Override @Override
@ -152,7 +160,38 @@ public class RecipeServiceImpl implements RecipeService {
if (exists) { if (exists) {
throw new ServiceException(ErrorCodeConstants.RECIPE_CODE_DUPLICATE); throw new ServiceException(ErrorCodeConstants.RECIPE_CODE_DUPLICATE);
} }
// 根据 ID 获取对应的名称
String productName = null;
if (createReqVO.getProductId() != null) {
ErpProductDO product = erpProductService.getProduct(createReqVO.getProductId());
if (product != null) {
productName = product.getName();
}
}
String machineName = null;
if (createReqVO.getMachineId() != null) {
DeviceDO device = deviceMapper.selectById(createReqVO.getMachineId());
if (device != null) {
machineName = device.getDeviceName();
}
}
String recipeType = null;
if (createReqVO.getRecipeTypeId() != null) {
RecipeTypeDO recipeTypeDO = recipeTypeService.getRecipeType(createReqVO.getRecipeTypeId());
if (recipeTypeDO != null) {
recipeType = recipeTypeDO.getName();
}
}
// 创建配方对象并设置属性
RecipeDO recipe = BeanUtils.toBean(createReqVO, RecipeDO.class); RecipeDO recipe = BeanUtils.toBean(createReqVO, RecipeDO.class);
recipe.setProductName(productName);
recipe.setMachineName(machineName);
recipe.setRecipeType(recipeType);
recipeMapper.insert(recipe); recipeMapper.insert(recipe);
return recipe.getId(); return recipe.getId();
} }
@ -160,7 +199,38 @@ public class RecipeServiceImpl implements RecipeService {
@Override @Override
public void updateRecipe(RecipeSaveReqVO updateReqVO) { public void updateRecipe(RecipeSaveReqVO updateReqVO) {
validateRecipeExists(updateReqVO.getId()); validateRecipeExists(updateReqVO.getId());
// 根据 ID 获取对应的名称
String productName = null;
if (updateReqVO.getProductId() != null) {
ErpProductDO product = erpProductService.getProduct(updateReqVO.getProductId());
if (product != null) {
productName = product.getName();
}
}
String machineName = null;
if (updateReqVO.getMachineId() != null) {
DeviceDO device = deviceMapper.selectById(updateReqVO.getMachineId());
if (device != null) {
machineName = device.getDeviceName();
}
}
String recipeType = null;
if (updateReqVO.getRecipeTypeId() != null) {
RecipeTypeDO recipeTypeDO = recipeTypeService.getRecipeType(updateReqVO.getRecipeTypeId());
if (recipeTypeDO != null) {
recipeType = recipeTypeDO.getName();
}
}
// 创建更新对象并设置属性
RecipeDO updateObj = BeanUtils.toBean(updateReqVO, RecipeDO.class); RecipeDO updateObj = BeanUtils.toBean(updateReqVO, RecipeDO.class);
updateObj.setProductName(productName);
updateObj.setMachineName(machineName);
updateObj.setRecipeType(recipeType);
recipeMapper.updateById(updateObj); recipeMapper.updateById(updateObj);
} }

@ -113,11 +113,13 @@ public interface ErrorCodeConstants {
ErrorCode ZJ_TYPE_NOT_EXISTS = new ErrorCode(5_0090, "检验类型不存在"); ErrorCode ZJ_TYPE_NOT_EXISTS = new ErrorCode(5_0090, "检验类型不存在");
ErrorCode ZJ_TYPE_CODE_EXISTS = new ErrorCode(5_0090, "检验类型编码已存在");
ErrorCode ZJ_ITEM_NOT_EXISTS = new ErrorCode(5_0091, "检验项目不存在"); ErrorCode ZJ_ITEM_NOT_EXISTS = new ErrorCode(5_0091, "检验项目不存在");
ErrorCode ZJ_SCHEMA_NOT_EXISTS = new ErrorCode(5_0092, "检验方案不存在"); ErrorCode ZJ_SCHEMA_NOT_EXISTS = new ErrorCode(5_0092, "检验方案不存在");
ErrorCode ZJ_PRODUCT_NOT_EXISTS = new ErrorCode(5_0093, "检验参数不存在"); ErrorCode ZJ_PRODUCT_NOT_EXISTS = new ErrorCode(5_0093, "检验参数不存在");
ErrorCode ZJ_PRODUCT_RECORD_NOT_EXISTS = new ErrorCode(5_0093, "检验参数不存在"); ErrorCode ZJ_PRODUCT_RECORD_NOT_EXISTS = new ErrorCode(5_0093, "检验参数不存在");
ErrorCode ZJ_TASK_NOT_EXISTS = new ErrorCode(5_0094, "检验任务不存在"); ErrorCode ZJ_TASK_NOT_EXISTS = new ErrorCode(5_0094, "检验任务不存在");
ErrorCode ZJ_TASK_CODE_EXISTS = new ErrorCode(5_0094, "检验任务单号已存在");
ErrorCode ZJ_TASK_RESULTS_NOT_EXISTS = new ErrorCode(5_0095, "检验任务-检验结果不存在"); ErrorCode ZJ_TASK_RESULTS_NOT_EXISTS = new ErrorCode(5_0095, "检验任务-检验结果不存在");
ErrorCode GOVIEW_NOT_EXISTS = new ErrorCode(5_0100, "可视化大屏不存在"); ErrorCode GOVIEW_NOT_EXISTS = new ErrorCode(5_0100, "可视化大屏不存在");

@ -12,10 +12,12 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.ticketmanagement.TicketManagem
import cn.iocoder.yudao.module.mes.dal.dataobject.zjitem.ZjItemDO; import cn.iocoder.yudao.module.mes.dal.dataobject.zjitem.ZjItemDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.zjschema.ZjSchemaDO; import cn.iocoder.yudao.module.mes.dal.dataobject.zjschema.ZjSchemaDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.zjtaskresults.ZjTaskResultsDO; import cn.iocoder.yudao.module.mes.dal.dataobject.zjtaskresults.ZjTaskResultsDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.zjtype.ZjTypeDO;
import cn.iocoder.yudao.module.mes.dal.mysql.zjitem.ZjItemMapper; import cn.iocoder.yudao.module.mes.dal.mysql.zjitem.ZjItemMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.zjschema.ZjSchemaMapper; import cn.iocoder.yudao.module.mes.dal.mysql.zjschema.ZjSchemaMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.zjtaskresults.ZjTaskResultsMapper; import cn.iocoder.yudao.module.mes.dal.mysql.zjtaskresults.ZjTaskResultsMapper;
import cn.iocoder.yudao.module.mes.service.plan.PlanService; import cn.iocoder.yudao.module.mes.service.plan.PlanService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -66,7 +68,10 @@ public class ZjTaskServiceImpl implements ZjTaskService {
private PlanService planService; private PlanService planService;
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Long createZjTask(ZjTaskSaveReqVO createReqVO) { public Long createZjTask(ZjTaskSaveReqVO createReqVO) {
// 校验编码是否存在
validateCodeOnly(createReqVO.getCode());
// 插入 // 插入
ZjTaskDO zjTask = BeanUtils.toBean(createReqVO, ZjTaskDO.class); ZjTaskDO zjTask = BeanUtils.toBean(createReqVO, ZjTaskDO.class);
zjTaskMapper.insert(zjTask); zjTaskMapper.insert(zjTask);
@ -111,6 +116,13 @@ public class ZjTaskServiceImpl implements ZjTaskService {
return zjTask.getId(); return zjTask.getId();
} }
private void validateCodeOnly(String code) {
if (zjTaskMapper.exists(Wrappers.<ZjTaskDO>lambdaQuery()
.eq(ZjTaskDO::getCode, code))) {
throw exception(ZJ_TASK_CODE_EXISTS);
}
}
@Override @Override
public void updateZjTask(ZjTaskSaveReqVO updateReqVO) { public void updateZjTask(ZjTaskSaveReqVO updateReqVO) {
// 校验存在 // 校验存在

@ -2,7 +2,9 @@ package cn.iocoder.yudao.module.mes.service.zjtype;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.module.iot.dal.dataobject.deviceattributetype.DeviceAttributeTypeDO; import cn.iocoder.yudao.module.iot.dal.dataobject.deviceattributetype.DeviceAttributeTypeDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.zjitem.ZjItemDO; import cn.iocoder.yudao.module.mes.dal.dataobject.zjitem.ZjItemDO;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -34,12 +36,20 @@ public class ZjTypeServiceImpl implements ZjTypeService {
@Override @Override
public Long createZjType(ZjTypeSaveReqVO createReqVO) { public Long createZjType(ZjTypeSaveReqVO createReqVO) {
// 校验编码是否存在
validateCodeOnly(createReqVO.getCode());
// 插入 // 插入
ZjTypeDO zjType = BeanUtils.toBean(createReqVO, ZjTypeDO.class); ZjTypeDO zjType = BeanUtils.toBean(createReqVO, ZjTypeDO.class);
zjTypeMapper.insert(zjType); zjTypeMapper.insert(zjType);
// 返回 // 返回
return zjType.getId(); return zjType.getId();
} }
private void validateCodeOnly(String code) {
if (zjTypeMapper.exists(Wrappers.<ZjTypeDO>lambdaQuery()
.eq(ZjTypeDO::getCode, code))) {
throw exception(ZJ_TYPE_CODE_EXISTS);
}
}
@Override @Override
public void updateZjType(ZjTypeSaveReqVO updateReqVO) { public void updateZjType(ZjTypeSaveReqVO updateReqVO) {

Loading…
Cancel
Save