优化生产异常提示补全,方案组标签信息增加

This commit is contained in:
liuzhaotian
2025-01-15 17:12:40 +08:00
parent 56a293ef78
commit 1cede97b42
16 changed files with 252 additions and 167 deletions
@@ -63,14 +63,27 @@ public class ProcessSchemeDTO implements Serializable {
@Schema(description = "解析器配置-机台的配置", requiredMode = Schema.RequiredMode.REQUIRED)
private String analyzerConfigSetting;
@Schema(description = "标签的配置", requiredMode = Schema.RequiredMode.REQUIRED)
private String labelSetting;
@Schema(description = "机台类型", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer machineType;
@Schema(description = "标签ID", requiredMode = Schema.RequiredMode.REQUIRED)
private Long label;
@Schema(description = "标签的配置", requiredMode = Schema.RequiredMode.REQUIRED)
private String labelSetting;
@Schema(description = "标签类型", requiredMode = Schema.RequiredMode.REQUIRED)
private String labelType;
@Schema(description = "标签高", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer labelHeight;
@Schema(description = "标签宽", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer labelWidth;
}
@@ -308,8 +308,8 @@ public class ErrorCodeConstants {
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, "生产单对应的板材造型数据为空,请重新导入生产单");
public static final ErrorCode ORDER_PLAN_PLATE_ERROR = new ErrorCode(1_002_041_007, "当前排单对应的板材数据有异常,请查看板材信息或联系客服");
public static final ErrorCode ORDER_PLAN_ERROR = new ErrorCode(1_002_041_008, "当前排单对应的生产单数据为空,请重新创建排单");
public static final ErrorCode ORDER_PLAN_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_009, "当前排单对应的板材造型数据为空,请检查板材信息或者联系客服");
public static final ErrorCode ORDER_PLAN_ERROR = new ErrorCode(1_002_041_008, "当前排单对应的生产单数据为空,请删掉排单并重新创建排单");
public static final ErrorCode ORDER_PLAN_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_009, "当前排单对应的板材造型数据为空,请重新进行排单或重新导入生产单");
public static final ErrorCode ORDER_GOODS_DATA_ERROR = new ErrorCode(1_002_041_010, "当前大板数据异常,请检查大板信息或者联系客服");
public static final ErrorCode ORDER_PACK_DATA_NULL_ERROR = new ErrorCode(1_002_041_011, "当前包裹数据为空,请重新查看包裹数据或联系客服");
public static final ErrorCode ORDER_BODY_DATA_ERROR = new ErrorCode(1_002_041_012, "当前柜体对应的板材数据为空,无法删除");
@@ -341,7 +341,7 @@ public class ErrorCodeConstants {
public static final ErrorCode PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_035, "当前排单没有选择板材数据,请进行选择");
public static final ErrorCode DELETE_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_036, "当前删除的小板信息有误,请检查小板是否存在或重新创建排单");
public static final ErrorCode PLAN_PLATE_OPTIMIZE_DATA_ERROR = new ErrorCode(1_002_041_037, "当前排单对应的优化数据异常,请重新进行优化");
public static final ErrorCode THIS_ORDER_PLATE_DATA_ERROR = new ErrorCode(1_002_041_038, "当前选择的生产单数据为空,请检查生产单信息或稍后重试");
public static final ErrorCode THIS_ORDER_PLATE_DATA_ERROR = new ErrorCode(1_002_041_038, "当前选择的生产单数据为空,请检查生产单信息或者重新导入生产单");
public static final ErrorCode THIS_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_039, "当前排单对应的板材数据为空,请重新进行排单或检查生产单对应的板材信息");
@@ -385,4 +385,5 @@ public class ErrorCodeConstants {
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, "当前方案组的配置异常,请重新配置");
public static final ErrorCode SYSTEM_PROCESS_SCHEME_CONFIG_IS_PLAN = new ErrorCode(1_002_040_018, "当前方案组已在排单中使用,无法删除");
public static final ErrorCode SYSTEM_PROCESS_SCHEME_CONFIG_MACHINE_LABEL = new ErrorCode(1_002_040_019, "当前方案组对应的解析器的机台的标签数据为空,请检查机台的标签配置信息");
}
@@ -114,6 +114,7 @@ public class SystemConfigApiImpl implements SystemConfigApi {
List<ProcessSchemeDTO> schemeDTOS = BeanUtils.toBean(processSchemeConfigs, ProcessSchemeDTO.class);
// 配置ID查询和数据校验
List<String> processLineConfigIds = processSchemeConfigs.stream().map(ProcessSchemeConfig::getProcessLineConfig).distinct().toList();
checkValueIsNotEmpty(processLineConfigIds,"加工分线");
@@ -127,19 +128,30 @@ public class SystemConfigApiImpl implements SystemConfigApi {
checkValueIsNotEmpty(analyzerIds,"解析器");
// 配置查询和数据校验
List<SystemConfigDO> processLineConfigList = systemConfigMapper.selectBatchIds(processLineConfigIds);
checkValueIsNotEmpty(processLineConfigList,"加工分线");
List<SystemConfigDO> optimizationConfigList = systemConfigMapper.selectBatchIds(optimizationConfigIds);
checkValueIsNotEmpty(optimizationConfigList,"优化数据配置");
List<MachineDO> analyzerList = machineMapper.selectBatchIds(analyzerIds);
checkValueIsNotEmpty(analyzerList,"解析器");
// 标签ID和配置查询和数据校验
List<Long> labelIds = analyzerList.stream().map(MachineDO::getLabelId).distinct().toList();
AssertUtils.notEmpty(labelIds,SYSTEM_PROCESS_SCHEME_CONFIG_MACHINE_LABEL);
List<LabelDO> labelDOS = labelMapper.selectBatchIds(labelIds);
AssertUtils.notEmpty(labelDOS,SYSTEM_PROCESS_SCHEME_CONFIG_MACHINE_LABEL);
// 匹配对应数据
schemeDTOS.forEach(f->{
f.setProcessLineConfigName(processLineConfigList.stream()
@@ -147,35 +159,39 @@ public class SystemConfigApiImpl implements SystemConfigApi {
.map(SystemConfigDO::getName)
.toList().get(0)
);
f.setProcessLineConfigSetting(toJsonString(
f.setProcessLineConfigSetting(
processLineConfigList.stream()
.filter(p->f.getProcessLineConfig().equals(p.getId()))
.map(SystemConfigDO::getSetting)
.toList().get(0)
));
);
f.setOptimizationConfigName(processLineConfigList.stream()
.filter(p->f.getProcessLineConfig().equals(p.getId()))
.map(SystemConfigDO::getName)
.toList().get(0)
);
f.setOptimizationConfigSetting(toJsonString(
f.setOptimizationConfigSetting(
optimizationConfigList.stream()
.filter(p->f.getOptimizationConfig().equals(p.getId()))
.map(SystemConfigDO::getSetting)
.toList().get(0)
));
);
MachineDO machineDO = analyzerList.stream().filter(p -> f.getAnalyzer().equals(p.getId())).toList().get(0);
f.setAnalyzerConfigName(machineDO.getName());
f.setAnalyzerConfigSetting(toJsonString(unzipString(machineDO.getSetting())));
f.setAnalyzerConfigSetting(unzipString(machineDO.getSetting()));
f.setMachineType(machineDO.getMachineType());
LabelDO labelDO = labelDOS.stream().filter(l -> machineDO.getLabelId().equals(l.getId())).toList().get(0);
f.setLabel(labelDO.getId());
f.setLabelHeight(labelDO.getHeight());
f.setLabelWidth(labelDO.getWidth());
f.setLabelType(labelDO.getType());
f.setLabelSetting(unzipString(labelDO.getTemplate()));
});
@@ -183,7 +199,7 @@ public class SystemConfigApiImpl implements SystemConfigApi {
}
private void checkValueIsNotEmpty(List<String> value,String error) {
private void checkValueIsNotEmpty(List<?> value,String error) {
if(ObjectUtils.isEmpty(value)){
throw exception(SYSTEM_PROCESS_SCHEME_CONFIG_DATA_ERROR,error);