系统配置-方案组字段校验,修改开料状态逻辑更改

This commit is contained in:
liuzhaotian
2025-01-13 17:58:16 +08:00
parent 12b6de75fd
commit 765b0c3a47
11 changed files with 299 additions and 152 deletions
@@ -263,7 +263,6 @@ public class ErrorCodeConstants {
public static final ErrorCode REMAIN_PLATE_NOT_EXISTS = new ErrorCode(1_002_033_005, "板材不存在");
public static final ErrorCode RAW_GOODS_NOT_EXISTS = new ErrorCode(1_002_033_006, "设计板材不存在");
public static final ErrorCode RAW_GOODS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_033_007, "生产板材导入数据不可以为空");
public static final ErrorCode PLATENO_ERROR = new ErrorCode(1_002_033_008, "当前板编号无对应包裹信息");
public static final ErrorCode PLATE_GOODS_ID_NOT_SAME = new ErrorCode(1_002_033_009, "板材商品编号存在,请重新命名商品编号");
public static final ErrorCode PLATE_IS_SOURCE = new ErrorCode(1_002_033_010, "当前板材为源小板,无法删除");
public static final ErrorCode PLAN_GOODS_IS_FILTER_DATA_ERROR = new ErrorCode(1_002_033_011, "当前排单为非混单,无法添加颜色的筛选条件");
@@ -295,7 +294,6 @@ public class ErrorCodeConstants {
//=========== 包裹信息 1-002-040-000 ============
public static final ErrorCode THE_CURRENT_PACKAGE_HAS_AN_UNSEALED_PACKAGE = new ErrorCode(1_002_040_001, "当前包裹还有未封包包裹");
public static final ErrorCode THE_CURRENT_PACKAGE_TYPE_IS_INCORRECT = new ErrorCode(1_002_040_002, "当前包裹类型错误");
public static final ErrorCode FAILED_TO_MODIFY_THE_STATUS_OF_THE_CURRENT_PRODUCTION_ORDER = new ErrorCode(1_002_040_003, "修改当前生产单的工序状态和生产单的状态失败");
public static final ErrorCode NO_OPTIMIZATION_INFORMATION_AVAILABLE = new ErrorCode(1_002_040_004, "当前订单无优化信息");
@@ -306,7 +304,6 @@ public class ErrorCodeConstants {
//=========== 断言提示信息 1-002-041-000 ============
public static final ErrorCode ORDER_DATE_ERROR = new ErrorCode(1_002_041_001, "生产单信息不存在,请重新进入或切换生产单");
public static final ErrorCode ORDER_PLATE_ERROR = new ErrorCode(1_002_041_002, "生产单对应的板材数据为空,请检查是否为空单或重新导入生产单,或联系客服");
public static final ErrorCode INSERT_PLATE_DATE_ERROR = new ErrorCode(1_002_041_003, "新增排单的板材数据有误,请重新新增");
public static final ErrorCode ORDER_PLAN_DATE_ERROR = new ErrorCode(1_002_041_004, "排单信息不存在,请重新进入或切换排单");
public static final ErrorCode ORDER_PLAN_OPTIMIZE_ERROR = new ErrorCode(1_002_041_005, "排单的优化数据异常,请将该排单重新优化");
public static final ErrorCode ORDER_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_006, "生产单对应的板材造型数据为空,请重新导入生产单");
@@ -340,7 +337,8 @@ public class ErrorCodeConstants {
public static final ErrorCode PLAN_NO_ACTUAL_PLATE = new ErrorCode(1_002_041_030, "当前排单未选择实际开料的大板信息,无法保存优化结果");
public static final ErrorCode PROCESS_CONFIG_DEFAULT_DATA_ERROR = new ErrorCode(1_002_041_031, "当前组织没有默认的加工方案组,请在系统配置中进行配置");
public static final ErrorCode THIS_PROCESS_CONFIG_DATA_ERROR = new ErrorCode(1_002_041_032, "当前选择的加工方案组配置有误,请选择其他方案组或重新配置该方案组");
public static final ErrorCode CREAT_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_033, "当前板材已有小板创建板材,请重新查询生产单信息再创建");
public static final ErrorCode UPDATE_NO_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_034, "当前排单无开料板,无法取消开料,请重新尝试");
//=========== 应用信息 1-002-037-000 ============
@@ -376,4 +374,8 @@ public class ErrorCodeConstants {
public static final ErrorCode CUSTOM_PLATE_NO_RULE_CHECK_INT_TYPE_NO_EMPTY = new ErrorCode(1_002_040_012, "【{}】下的【{}】不能为空,请检查配置规则");
public static final ErrorCode CUSTOM_PLATE_NO_RULE_CHECK_INT_TYPE_ERROR = new ErrorCode(1_002_040_013, "【{}】下的数值类型参数{}:【{}】转换异常,请检查配置规则");
public static final ErrorCode CUSTOM_PLATE_NO_RULE_CHECK_BOL_TYPE_ERROR = new ErrorCode(1_002_040_014, "【{}】下的布尔类型参数{}:【{}】转换异常,请检查配置规则");
public static final ErrorCode SYSTEM_PROCESS_SCHEME_DATA_ERROR = new ErrorCode(1_002_040_015, "加工方案组的:{} 为空,无法保存,请进行配置");
public static final ErrorCode SYSTEM_PROCESS_SCHEME_CONFIG_DATA_ERROR = new ErrorCode(1_002_040_016, "加工方案组的:{} 为空,请检查配置信息");
public static final ErrorCode SYSTEM_PROCESS_SCHEME_CONFIG_FIELD_ERROR = new ErrorCode(1_002_040_017, "当前方案组的配置异常,请重新配置");
}
@@ -17,16 +17,18 @@ import com.cf.imes.module.system.dal.mysql.machine.MachineMapper;
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigMapper;
import com.cf.imes.module.system.enums.config.SystemConfigTypeEnum;
import com.cf.imes.module.system.service.systemconfig.SystemConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cf.imes.framework.common.pojo.CommonResult.success;
import static com.cf.imes.framework.common.util.json.JsonUtils.*;
import static com.cf.imes.module.system.enums.ErrorCodeConstants.PROCESS_CONFIG_DEFAULT_DATA_ERROR;
import static com.cf.imes.module.system.enums.ErrorCodeConstants.THIS_PROCESS_CONFIG_DATA_ERROR;
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
/**
* 系统配置feign实现类
@@ -36,6 +38,7 @@ import static com.cf.imes.module.system.enums.ErrorCodeConstants.THIS_PROCESS_CO
*/
@RestController
@Validated
@Slf4j
public class SystemConfigApiImpl implements SystemConfigApi {
@Resource
@@ -93,16 +96,32 @@ public class SystemConfigApiImpl implements SystemConfigApi {
AssertUtils.notEmpty(systemConfigDO,THIS_PROCESS_CONFIG_DATA_ERROR);
List<ProcessSchemeConfig> processSchemeConfigs = parseArray(systemConfigDO.getSetting(), ProcessSchemeConfig.class);
List<ProcessSchemeConfig> processSchemeConfigs;
try {
processSchemeConfigs = parseArray(systemConfigDO.getSetting(), ProcessSchemeConfig.class);
}catch (Exception e){
log.error(e.getMessage());
throw exception(SYSTEM_PROCESS_SCHEME_CONFIG_FIELD_ERROR);
}
List<ProcessSchemeDTO> schemeDTOS = BeanUtils.toBean(processSchemeConfigs, ProcessSchemeDTO.class);
List<String> processLineConfigIds = processSchemeConfigs.stream().map(ProcessSchemeConfig::getProcessLineConfig).distinct().toList();
checkValueIsNotEmpty(processLineConfigIds,"加工分线");
List<String> optimizationConfigIds = processSchemeConfigs.stream().map(ProcessSchemeConfig::getOptimizationConfig).distinct().toList();
checkValueIsNotEmpty(optimizationConfigIds,"优化数据配置");
List<String> analyzerIds = processSchemeConfigs.stream().map(ProcessSchemeConfig::getAnalyzer).distinct().toList();
checkValueIsNotEmpty(analyzerIds,"解析器");
List<SystemConfigDO> processLineConfigList = systemConfigMapper.selectBatchIds(processLineConfigIds);
@@ -158,4 +177,13 @@ public class SystemConfigApiImpl implements SystemConfigApi {
return success(schemeDTOS);
}
private void checkValueIsNotEmpty(List<String> value,String error) {
if(ObjectUtils.isEmpty(value)){
throw exception(SYSTEM_PROCESS_SCHEME_CONFIG_DATA_ERROR,error);
}
}
}
@@ -1,6 +1,7 @@
package com.cf.imes.module.system.service.systemconfig.factory.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigDeleteReqVO;
@@ -62,6 +63,19 @@ public class DefaultSystemConfigServiceHandler extends AbstractSystemConfigServi
.type(configTypeEnum.getType())
.build();
if(configTypeEnum.getType().equals(SystemConfigTypeEnum.MULTI_COLOR_ORDER_PLAN.getType())){
SystemConfigDO systemConfigDO = SystemConfigDO
.builder()
.id(null)
.name(configTypeEnum.getName())
.type(configTypeEnum.getType())
.status(CommonStatusEnum.DISABLE.getStatus())
.build();
systemConfigMapper.insert(systemConfigDO);
resultList.add(systemConfigDO);
continue;
}
resultList.add(initConfig);
} else {
// 如果存在配置,保留版本号最大的配置
@@ -1,6 +1,7 @@
package com.cf.imes.module.system.service.systemconfig.factory.service.impl;
import cn.hutool.core.text.CharSequenceUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
@@ -16,8 +17,10 @@ import java.util.List;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicLong;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cf.imes.framework.common.util.json.JsonUtils.parseArray;
import static com.cf.imes.framework.common.util.json.JsonUtils.toJsonString;
import static com.cf.imes.module.system.enums.ErrorCodeConstants.SYSTEM_PROCESS_SCHEME_DATA_ERROR;
/**
* @author 加工方案服务处理器
@@ -47,7 +50,31 @@ public class ProcessSchemeServiceHandler extends AbstractSystemConfigServiceHand
@Override
public void checkValid(String setting) {
// todo checkValid
List<ProcessSchemeConfig> processSchemeConfigs = parseArray(setting, ProcessSchemeConfig.class);
processSchemeConfigs.forEach(f->{
String planName = Optional.ofNullable(f.getPlanName()).orElse("");
checkValueIsNotNull(planName,"加工方案名称");
String processLineConfig = Optional.ofNullable(f.getProcessLineConfig()).orElse("");
checkValueIsNotNull(processLineConfig,"加工分线");
String optimizationConfig = Optional.ofNullable(f.getOptimizationConfig()).orElse("");
checkValueIsNotNull(optimizationConfig,"优化数据配置");
String analyzer = Optional.ofNullable(f.getAnalyzer()).orElse("");
checkValueIsNotNull(analyzer,"解析器");
});
}
@Override
@@ -101,4 +128,14 @@ public class ProcessSchemeServiceHandler extends AbstractSystemConfigServiceHand
systemConfigMapper.deleteById(reqVO.getId());
}
private void checkValueIsNotNull(String value,String error) {
if(CharSequenceUtil.isBlank(value)){
throw exception(SYSTEM_PROCESS_SCHEME_DATA_ERROR,error);
}
}
}