系统配置-封边条对应配置

This commit is contained in:
liuzhaotian
2025-03-10 09:45:59 +08:00
parent 05e12e9185
commit 54e6cdf43e
6 changed files with 119 additions and 68 deletions
@@ -0,0 +1,21 @@
package com.cf.imes.module.system.dal.dataobject.systemconfig;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
/**
* @author 封边条对应配置
*/
@TableName(value = "system_config_sealedge", autoResultMap = true)
@KeySequence("system_config_sealedge_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class SystemConfigSealedgeDO extends SystemConfigDO{
}
@@ -0,0 +1,29 @@
package com.cf.imes.module.system.dal.mysql.systemconfig;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigSealedgeDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author 封边条对应配置 Mapper
*/
@Mapper
public interface SystemConfigSealedgeMapper extends BaseMapperX<SystemConfigSealedgeDO> {
default List<SystemConfigSealedgeDO> selectSystemConfigList(Integer type, Integer status) {
return selectList(new LambdaQueryWrapperX<SystemConfigSealedgeDO>()
.eqIfPresent(SystemConfigSealedgeDO::getOrganId, OrganContextHolder.getOrganId())
.eq(SystemConfigSealedgeDO::getDeleted,false)
.eq(SystemConfigSealedgeDO::getType, type)
.eqIfPresent(SystemConfigSealedgeDO::getStatus,status)
.orderByAsc(SystemConfigSealedgeDO::getSort, SystemConfigDO::getCreateTime));
}
}
@@ -23,30 +23,25 @@ public enum SystemConfigTypeEnum {
*/
INTELLIGENT_BRANCH(2, "板件筛选"),
/**
* 高级筛选
*/
ADVANCED_SCREEN(3, "高级筛选"),
/**
* 加工分线
*/
PROCESSING_SCREENING(4, "加工分线"),
PROCESSING_SCREENING(3, "加工分线"),
/**
* 数据处理
*/
DATA_PROCESSING(5, "数据处理"),
DATA_PROCESSING(4, "数据处理"),
/**
* 加工方案
*/
PROCESS_SCHEME(6, "加工方案组");
PROCESS_SCHEME(5, "加工方案组"),
// /**
// * 支持多种颜色排单
// */
// MULTI_COLOR_ORDER_PLAN(7, "支持多种颜色排单");
/**
* 封边条对应
*/
SEALEDGE(6, "封边条对应");
/**
@@ -44,9 +44,9 @@ public class SystemConfigServiceFactory {
// 板件分线
case INTELLIGENT_BRANCH:
return applicationContext.getBean(IntellectBranchingService.class);
// 高级筛选
case ADVANCED_SCREEN:
return applicationContext.getBean(AdvancedScreenServiceHandler.class);
// // 高级筛选
// case ADVANCED_SCREEN:
// return applicationContext.getBean(AdvancedScreenServiceHandler.class);
// 加工分线
case PROCESSING_SCREENING:
return applicationContext.getBean(ProcessScreeningServiceHandler.class);
@@ -56,9 +56,9 @@ public class SystemConfigServiceFactory {
// 加工方案
case PROCESS_SCHEME:
return applicationContext.getBean(ProcessSchemeServiceHandler.class);
// 多种颜色排单
// case MULTI_COLOR_ORDER_PLAN:
// return applicationContext.getBean(MultiColorOrderPlanServiceHandler.class);
// 封边条对应
case SEALEDGE:
return applicationContext.getBean(SealedgeServiceHandler.class);
default:
throw new ServiceException(ErrorCodeConstants.SYSTEM_CONFIG_TYPE_NOT_SUPPORT);
@@ -37,20 +37,20 @@ public class DefaultSystemConfigServiceHandler extends AbstractSystemConfigServi
List<SystemConfigTypeEnum> allConfigTypes = Arrays.asList(SystemConfigTypeEnum.values());
// 自定义板编号、高级筛选不走通用分页查询
List<SystemConfigTypeEnum> list = allConfigTypes.stream()
.filter(f -> ObjectUtil.notEqual(SystemConfigTypeEnum.ADVANCED_SCREEN.getType(), f.getType())).toList();
// List<SystemConfigTypeEnum> list = allConfigTypes.stream()
// .filter(f -> ObjectUtil.notEqual(SystemConfigTypeEnum.ADVANCED_SCREEN.getType(), f.getType())).toList();
List<SystemConfigDO> systemConfigDOS = systemConfigMapper.selectList(new LambdaQueryWrapperX<SystemConfigDO>()
.likeIfPresent(SystemConfigDO::getName, reqVO.getName())
// .eq(SystemConfigDO::getStatus, CommonStatusEnum.ENABLE.getStatus())
.in(SystemConfigDO::getType, list.stream().map(SystemConfigTypeEnum::getType).toList())
.in(SystemConfigDO::getType, allConfigTypes.stream().map(SystemConfigTypeEnum::getType).toList())
.eqIfPresent(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId())
.select(SystemConfigDO::getId, SystemConfigDO::getName, SystemConfigDO::getStatus, SystemConfigDO::getType,SystemConfigDO::getVersion)
.orderByAsc(SystemConfigDO::getId));
// 遍历枚举
List<SystemConfigDO> resultList = new ArrayList<>();
for (SystemConfigTypeEnum configTypeEnum : list) {
for (SystemConfigTypeEnum configTypeEnum : allConfigTypes) {
// 获取当前枚举类型的配置项列表
List<SystemConfigDO> typeConfigs = systemConfigDOS.stream()
.filter(c -> ObjectUtil.equal(configTypeEnum.getType(), c.getType()))
@@ -72,20 +72,6 @@ public class DefaultSystemConfigServiceHandler extends AbstractSystemConfigServi
continue;
}
// // 支持多种颜色排单
// 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 {
// 如果存在配置,保留版本号最大的配置
@@ -8,7 +8,8 @@ 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.*;
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigMapper;
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigSealedgeDO;
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigSealedgeMapper;
import com.cf.imes.module.system.service.systemconfig.factory.service.AbstractSystemConfigServiceHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -24,23 +25,25 @@ import static com.cf.imes.module.system.enums.ErrorCodeConstants.SYSTEM_CONFIG_N
/**
* @author 多种颜色排单
*/
@Service("multiColorOrderPlanServiceHandler")
@Service("sealedgeServiceHandler")
@Slf4j
public class MultiColorOrderPlanServiceHandler extends AbstractSystemConfigServiceHandler {
public class SealedgeServiceHandler extends AbstractSystemConfigServiceHandler {
@Resource
private SystemConfigMapper systemConfigMapper;
private SystemConfigSealedgeMapper systemConfigSealedgeMapper;
@Override
public List<SystemConfigDO> selectList(ConfigPageReqVO pageReqVO) {
List<SystemConfigDO> systemConfigDOS = systemConfigMapper.selectSystemConfigList(pageReqVO.getType(),null);
List<SystemConfigSealedgeDO> systemConfigDOS = systemConfigSealedgeMapper.selectSystemConfigList(pageReqVO.getType(),null);
if (systemConfigDOS.isEmpty()){
return null;
}
return systemConfigDOS;
return BeanUtils.toBean(systemConfigDOS,SystemConfigDO.class);
}
@@ -60,7 +63,13 @@ public class MultiColorOrderPlanServiceHandler extends AbstractSystemConfigServi
@Override
public void afterSaveConfig(SystemConfigDO systemConfigDO, ConfigSaveReqVO reqVO) {
// todo afterSaveConfig
systemConfigSealedgeMapper.update(new LambdaUpdateWrapper<SystemConfigSealedgeDO>()
.eq(SystemConfigSealedgeDO::getOrganId, OrganContextHolder.getOrganId())
.eq(SystemConfigSealedgeDO::getDeleted,false)
.ne(SystemConfigSealedgeDO::getId,systemConfigDO.getId())
.set(SystemConfigDO::getDeleted,true));
}
@@ -73,19 +82,6 @@ public class MultiColorOrderPlanServiceHandler extends AbstractSystemConfigServi
@Override
public void updateConfigStatus(ConfigUpdateStatusReqVO reqVO) {
Long id = reqVO.getId();
// 校验存在
SystemConfigDO systemConfigDO = systemConfigMapper.selectOne(new LambdaQueryWrapperX<SystemConfigDO>()
.eq(SystemConfigDO::getId, id)
.eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId()));
if (ObjectUtil.isNull(systemConfigDO)) {
throw exception(SYSTEM_CONFIG_NOT_EXISTS);
}
// 更新状态
systemConfigMapper.update(new LambdaUpdateWrapper<SystemConfigDO>().eq(SystemConfigDO::getId, id).set(SystemConfigDO::getStatus, reqVO.getStatus()));
}
@Override
@@ -97,9 +93,9 @@ public class MultiColorOrderPlanServiceHandler extends AbstractSystemConfigServi
@Override
public SystemConfigDO getSystemConfig(Long id) {
SystemConfigDO systemConfigDO = systemConfigMapper.selectOne(new LambdaQueryWrapperX<SystemConfigDO>()
.eq(SystemConfigDO::getId, id)
.eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId()));
SystemConfigSealedgeDO systemConfigDO = systemConfigSealedgeMapper.selectOne(new LambdaQueryWrapperX<SystemConfigSealedgeDO>()
.eq(SystemConfigSealedgeDO::getId, id)
.eq(SystemConfigSealedgeDO::getOrganId, OrganContextHolder.getOrganId()));
if (ObjectUtil.isNull(systemConfigDO)) {
throw exception(SYSTEM_CONFIG_NOT_EXISTS);
@@ -117,26 +113,50 @@ public class MultiColorOrderPlanServiceHandler extends AbstractSystemConfigServi
checkValid(reqVO.getSetting());
// 系统配置保存前操作
beforeSaveConfig(reqVO);
SystemConfigDO systemConfigDO;
SystemConfigSealedgeDO systemConfigSealedgeDO;
if (ObjectUtil.isNotNull(reqVO.getId())) {
systemConfigDO = getSystemConfig(reqVO.getId());
systemConfigSealedgeDO = validateSystemConfigExists(reqVO.getId());
// 覆盖配置
systemConfigDO.setSetting(reqVO.getSetting());
systemConfigSealedgeDO.setSetting(reqVO.getSetting());
// 覆盖名称
systemConfigDO.setName(reqVO.getName());
systemConfigSealedgeDO.setName(reqVO.getName());
// 更新时间
systemConfigDO.setUpdateTime(LocalDateTime.now());
systemConfigSealedgeDO.setUpdateTime(LocalDateTime.now());
// 更新
systemConfigMapper.updateById(systemConfigDO);
systemConfigSealedgeMapper.updateById(systemConfigSealedgeDO);
} else {
systemConfigDO = BeanUtils.toBean(reqVO, SystemConfigDO.class);
systemConfigSealedgeDO = BeanUtils.toBean(reqVO, SystemConfigSealedgeDO.class);
// 新增
systemConfigMapper.insert(systemConfigDO);
systemConfigSealedgeMapper.insert(systemConfigSealedgeDO);
}
// 系统配置保存后操作
afterSaveConfig(systemConfigDO, reqVO);
afterSaveConfig(systemConfigSealedgeDO, reqVO);
}
/**
* 校验基础配置是否存在
*
* @param id
* @return
*/
private SystemConfigSealedgeDO validateSystemConfigExists(Long id) {
SystemConfigSealedgeDO systemConfigSealedgeDO = systemConfigSealedgeMapper.selectOne(new LambdaQueryWrapperX<SystemConfigSealedgeDO>()
.eq(SystemConfigSealedgeDO::getId, id)
.eq(SystemConfigSealedgeDO::getOrganId, OrganContextHolder.getOrganId()));
if (ObjectUtil.isNull(systemConfigSealedgeDO)) {
throw exception(SYSTEM_CONFIG_NOT_EXISTS);
}
return systemConfigSealedgeDO;
}
}