mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-14 13:42:07 +08:00
1、自定义板编号规则入参校验;2、新增自定义板编号序号实体、mapper;3、部分systemconfig包名修正;
This commit is contained in:
+1
@@ -342,4 +342,5 @@ public class ErrorCodeConstants {
|
|||||||
//=========== 系统配置 1-002-040-000 ============
|
//=========== 系统配置 1-002-040-000 ============
|
||||||
public static final ErrorCode SYSTEM_CONFIG_NOT_EXISTS = new ErrorCode(1_002_040_001, "系统配置不存在");
|
public static final ErrorCode SYSTEM_CONFIG_NOT_EXISTS = new ErrorCode(1_002_040_001, "系统配置不存在");
|
||||||
public static final ErrorCode SYSTEM_CONFIG_TYPE_NOT_SUPPORT = new ErrorCode(1_002_040_002, "不支持的系统配置类型");
|
public static final ErrorCode SYSTEM_CONFIG_TYPE_NOT_SUPPORT = new ErrorCode(1_002_040_002, "不支持的系统配置类型");
|
||||||
|
public static final ErrorCode SYSTEM_CONFIG_CUSTOM_BOARD_NO_RULE_SAVE_CHECK_ERROR = new ErrorCode(1_002_040_003, "系统配置:自定义板编号保存解析失败,请检查配置规则或联系客服");
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-6
@@ -1,13 +1,13 @@
|
|||||||
package com.cf.imes.module.system.controller.admin.baseconfig;
|
package com.cf.imes.module.system.controller.admin.systemconfig;
|
||||||
|
|
||||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||||
import com.cf.imes.framework.common.pojo.PageResult;
|
import com.cf.imes.framework.common.pojo.PageResult;
|
||||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||||
import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigPageReqVO;
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigPageReqVO;
|
||||||
import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigRespVO;
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigRespVO;
|
||||||
import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigSaveReqVO;
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigSaveReqVO;
|
||||||
import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigUpdateStatusReqVO;
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateStatusReqVO;
|
||||||
import com.cf.imes.module.system.dal.dataobject.baseconfig.SystemConfigDO;
|
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
|
||||||
import com.cf.imes.module.system.service.config.SystemConfigService;
|
import com.cf.imes.module.system.service.config.SystemConfigService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.system.controller.admin.baseconfig.vo;
|
package com.cf.imes.module.system.controller.admin.systemconfig.vo;
|
||||||
|
|
||||||
import com.cf.imes.framework.common.pojo.PageParam;
|
import com.cf.imes.framework.common.pojo.PageParam;
|
||||||
import com.cf.imes.module.system.validation.common.CommonStatus;
|
import com.cf.imes.module.system.validation.common.CommonStatus;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.system.controller.admin.baseconfig.vo;
|
package com.cf.imes.module.system.controller.admin.systemconfig.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.system.controller.admin.baseconfig.vo;
|
package com.cf.imes.module.system.controller.admin.systemconfig.vo;
|
||||||
|
|
||||||
import com.cf.imes.module.system.validation.config.SystemConfigTypeEnumValid;
|
import com.cf.imes.module.system.validation.config.SystemConfigTypeEnumValid;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.system.controller.admin.baseconfig.vo;
|
package com.cf.imes.module.system.controller.admin.systemconfig.vo;
|
||||||
|
|
||||||
import com.cf.imes.module.system.validation.common.CommonStatus;
|
import com.cf.imes.module.system.validation.common.CommonStatus;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
+105
@@ -0,0 +1,105 @@
|
|||||||
|
package com.cf.imes.module.system.dal.dataobject.customblockno;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义板编号序号实体
|
||||||
|
*
|
||||||
|
* @author Gqr
|
||||||
|
* @since 2024/11/11 18:31
|
||||||
|
*/
|
||||||
|
@TableName(value = "custom_blockno_seq", autoResultMap = true)
|
||||||
|
@KeySequence("custom_blockno_seq_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class CustomBlockNoSeqDO implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -4362641672146584682L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组织ID
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
private Long organId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 规则ID
|
||||||
|
*/
|
||||||
|
private Long configId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上次生产单号
|
||||||
|
*/
|
||||||
|
private Long lastOrderNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生产单序号前值
|
||||||
|
*/
|
||||||
|
private Integer orderNoSeq;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上次房间
|
||||||
|
*/
|
||||||
|
private String lastRoom;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 房间序号前值
|
||||||
|
*/
|
||||||
|
private Integer roomSeq;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上次柜体
|
||||||
|
*/
|
||||||
|
private String lastCabinet;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 柜体序号前值
|
||||||
|
*/
|
||||||
|
private Integer cabinetSeq;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上次加工组
|
||||||
|
*/
|
||||||
|
private String lastProcessingGroup;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加工组序号前值
|
||||||
|
*/
|
||||||
|
private Integer processingGroupSeq;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上次年
|
||||||
|
*/
|
||||||
|
private Short lastYear;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上次月
|
||||||
|
*/
|
||||||
|
private Short lastMonth;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上次天
|
||||||
|
*/
|
||||||
|
private Short lastDay;
|
||||||
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.system.dal.dataobject.baseconfig;
|
package com.cf.imes.module.system.dal.dataobject.systemconfig;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
+15
@@ -0,0 +1,15 @@
|
|||||||
|
package com.cf.imes.module.system.dal.mysql.customblockno;
|
||||||
|
|
||||||
|
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import com.cf.imes.module.system.dal.dataobject.customblockno.CustomBlockNoSeqDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义板编号序号 mapper
|
||||||
|
*
|
||||||
|
* @author Gqr
|
||||||
|
* @since 2024/11/11 18:38
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface CustomBlockNoSeqMapper extends BaseMapperX<CustomBlockNoSeqDO> {
|
||||||
|
}
|
||||||
+3
-3
@@ -1,11 +1,11 @@
|
|||||||
package com.cf.imes.module.system.dal.mysql.config;
|
package com.cf.imes.module.system.dal.mysql.systemconfig;
|
||||||
|
|
||||||
import com.cf.imes.framework.common.pojo.PageResult;
|
import com.cf.imes.framework.common.pojo.PageResult;
|
||||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||||
import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigPageReqVO;
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigPageReqVO;
|
||||||
import com.cf.imes.module.system.dal.dataobject.baseconfig.SystemConfigDO;
|
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+63
@@ -0,0 +1,63 @@
|
|||||||
|
package com.cf.imes.module.system.enums.config;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义板编号规则编码枚举
|
||||||
|
*
|
||||||
|
* @author Gqr
|
||||||
|
* @since 2024/11/11 15:20
|
||||||
|
*/
|
||||||
|
@AllArgsConstructor
|
||||||
|
public enum CustBoardRuleCodeEnum {
|
||||||
|
/**
|
||||||
|
* 自定义
|
||||||
|
*/
|
||||||
|
CUSTOM("custom"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 日期
|
||||||
|
*/
|
||||||
|
DATE("date"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生产单序号
|
||||||
|
*/
|
||||||
|
ORDERNO("orderNo"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 板件序号
|
||||||
|
*/
|
||||||
|
PLATENO("plateNo"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 房间号序号
|
||||||
|
*/
|
||||||
|
ROOMNO("roomNo"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 柜体序号
|
||||||
|
*/
|
||||||
|
BODYNO("bodyNo"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加工组序号
|
||||||
|
*/
|
||||||
|
PROCESSGROUP("processGroupNo");
|
||||||
|
|
||||||
|
private String ruleCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否匹配
|
||||||
|
* @param ruleCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static CustBoardRuleCodeEnum match(String ruleCode) {
|
||||||
|
for (CustBoardRuleCodeEnum codeEnum : CustBoardRuleCodeEnum.values()) {
|
||||||
|
if (codeEnum.ruleCode.equals(ruleCode)) {
|
||||||
|
return codeEnum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
+4
-4
@@ -1,10 +1,10 @@
|
|||||||
package com.cf.imes.module.system.service.config;
|
package com.cf.imes.module.system.service.config;
|
||||||
|
|
||||||
import com.cf.imes.framework.common.pojo.PageResult;
|
import com.cf.imes.framework.common.pojo.PageResult;
|
||||||
import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigPageReqVO;
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigPageReqVO;
|
||||||
import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigSaveReqVO;
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigSaveReqVO;
|
||||||
import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigUpdateStatusReqVO;
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateStatusReqVO;
|
||||||
import com.cf.imes.module.system.dal.dataobject.baseconfig.SystemConfigDO;
|
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统配置接口
|
* 系统配置接口
|
||||||
|
|||||||
+12
-8
@@ -6,17 +6,18 @@ import com.cf.imes.framework.common.pojo.PageResult;
|
|||||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||||
import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigPageReqVO;
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigPageReqVO;
|
||||||
import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigSaveReqVO;
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigSaveReqVO;
|
||||||
import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigUpdateStatusReqVO;
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateStatusReqVO;
|
||||||
import com.cf.imes.module.system.dal.dataobject.baseconfig.SystemConfigDO;
|
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
|
||||||
import com.cf.imes.module.system.dal.mysql.config.SystemConfigMapper;
|
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.enums.config.SystemConfigTypeEnum;
|
||||||
import com.cf.imes.module.system.service.config.factory.SystemConfigServiceFactory;
|
import com.cf.imes.module.system.service.config.factory.SystemConfigServiceFactory;
|
||||||
import com.cf.imes.module.system.service.config.factory.service.AbstractSystemConfigGenerateService;
|
import com.cf.imes.module.system.service.config.factory.service.AbstractSystemConfigGenerateService;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
@@ -63,6 +64,7 @@ public class SystemConfigServiceImpl implements SystemConfigService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void modifyBaseConfig(ConfigSaveReqVO reqVO) {
|
public void modifyBaseConfig(ConfigSaveReqVO reqVO) {
|
||||||
Long id = reqVO.getId();
|
Long id = reqVO.getId();
|
||||||
// 根据配置类型选择对应的service
|
// 根据配置类型选择对应的service
|
||||||
@@ -71,18 +73,20 @@ public class SystemConfigServiceImpl implements SystemConfigService {
|
|||||||
configService.checkValid(reqVO.getSetting());
|
configService.checkValid(reqVO.getSetting());
|
||||||
// 系统配置保存前操作
|
// 系统配置保存前操作
|
||||||
configService.beforeSaveConfig(reqVO);
|
configService.beforeSaveConfig(reqVO);
|
||||||
|
SystemConfigDO baseConfigDO;
|
||||||
if (ObjectUtil.isNotNull(id)) {
|
if (ObjectUtil.isNotNull(id)) {
|
||||||
SystemConfigDO baseConfigDO = validateBaseConfigExists(id);
|
baseConfigDO = validateBaseConfigExists(id);
|
||||||
// 覆盖配置
|
// 覆盖配置
|
||||||
baseConfigDO.setSetting(reqVO.getSetting());
|
baseConfigDO.setSetting(reqVO.getSetting());
|
||||||
// 更新
|
// 更新
|
||||||
baseConfigMapper.updateById(baseConfigDO);
|
baseConfigMapper.updateById(baseConfigDO);
|
||||||
} else {
|
} else {
|
||||||
|
baseConfigDO = BeanUtils.toBean(reqVO, SystemConfigDO.class);
|
||||||
// 新增
|
// 新增
|
||||||
baseConfigMapper.insert(BeanUtils.toBean(reqVO, SystemConfigDO.class));
|
baseConfigMapper.insert(baseConfigDO);
|
||||||
}
|
}
|
||||||
// 系统配置保存后操作
|
// 系统配置保存后操作
|
||||||
configService.afterSaveConfig(reqVO);
|
configService.afterSaveConfig(baseConfigDO, reqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+3
-2
@@ -1,6 +1,7 @@
|
|||||||
package com.cf.imes.module.system.service.config.factory.service;
|
package com.cf.imes.module.system.service.config.factory.service;
|
||||||
|
|
||||||
import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigSaveReqVO;
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigSaveReqVO;
|
||||||
|
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统配置生成服务抽象类
|
* 系统配置生成服务抽象类
|
||||||
@@ -30,5 +31,5 @@ public abstract class AbstractSystemConfigGenerateService {
|
|||||||
*
|
*
|
||||||
* @param reqVO
|
* @param reqVO
|
||||||
*/
|
*/
|
||||||
public abstract void afterSaveConfig(ConfigSaveReqVO reqVO);
|
public abstract void afterSaveConfig(SystemConfigDO systemConfigDO, ConfigSaveReqVO reqVO);
|
||||||
}
|
}
|
||||||
|
|||||||
+173
-4
@@ -1,9 +1,31 @@
|
|||||||
package com.cf.imes.module.system.service.config.factory.service.impl;
|
package com.cf.imes.module.system.service.config.factory.service.impl;
|
||||||
|
|
||||||
import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigSaveReqVO;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.cf.imes.framework.common.enums.CommonStatusEnum;
|
||||||
|
import com.cf.imes.framework.common.exception.ErrorCode;
|
||||||
|
import com.cf.imes.framework.common.exception.ServiceException;
|
||||||
|
import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil;
|
||||||
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigSaveReqVO;
|
||||||
|
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
|
||||||
|
import com.cf.imes.module.system.dal.dataobject.dict.DictDataDO;
|
||||||
|
import com.cf.imes.module.system.dal.mysql.customblockno.CustomBlockNoSeqMapper;
|
||||||
|
import com.cf.imes.module.system.enums.config.CustBoardRuleCodeEnum;
|
||||||
import com.cf.imes.module.system.service.config.factory.service.AbstractSystemConfigGenerateService;
|
import com.cf.imes.module.system.service.config.factory.service.AbstractSystemConfigGenerateService;
|
||||||
|
import com.cf.imes.module.system.service.dict.DictDataService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import static com.cf.imes.module.system.enums.ErrorCodeConstants.SYSTEM_CONFIG_CUSTOM_BOARD_NO_RULE_SAVE_CHECK_ERROR;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自定义板编号生成服务
|
* 自定义板编号生成服务
|
||||||
*
|
*
|
||||||
@@ -11,20 +33,167 @@ import org.springframework.stereotype.Service;
|
|||||||
* @since 2024/11/8 16:48
|
* @since 2024/11/8 16:48
|
||||||
*/
|
*/
|
||||||
@Service("customBoardNoGenerateService")
|
@Service("customBoardNoGenerateService")
|
||||||
|
@Slf4j
|
||||||
public class CustomBoardNoGenerateService extends AbstractSystemConfigGenerateService {
|
public class CustomBoardNoGenerateService extends AbstractSystemConfigGenerateService {
|
||||||
|
|
||||||
|
// 自定义板编号校验错误全部统一编号:1_002_040_003
|
||||||
|
public static final ErrorCode CUSTOM_BOARD_NO_RULE_CHECK_RULECODE_EMPTY_ERROR = new ErrorCode(1_002_040_003, "规则编码不能为空");
|
||||||
|
public static final ErrorCode CUSTOM_BOARD_NO_RULE_CHECK_RULECODE_NOT_MATCH_ERROR = new ErrorCode(1_002_040_003, "规则编码【{}】不合法,请检查配置规则");
|
||||||
|
public static final ErrorCode CUSTOM_BOARD_NO_RULE_CHECK_DATE_TYPE_FORMAT_ERROR = new ErrorCode(1_002_040_003, "时间格式【{}】不合法,请检查配置规则");
|
||||||
|
public static final ErrorCode CUSTOM_BOARD_NO_RULE_CHECK_RESETMODE_ERROR = new ErrorCode(1_002_040_003, "复位/清零模式【{}】不合法,请检查配置规则");
|
||||||
|
public static final ErrorCode CUSTOM_BOARD_NO_RULE_CHECK_INT_TYPE_NO_EMPTY = new ErrorCode(1_002_040_003, "数字类型【{}】不能为空,请检查配置规则");
|
||||||
|
public static final ErrorCode CUSTOM_BOARD_NO_RULE_CHECK_INT_TYPE_ERROR = new ErrorCode(1_002_040_003, "数值类型参数{}:【{}】转换异常,请检查配置规则");
|
||||||
|
public static final ErrorCode CUSTOM_BOARD_NO_RULE_CHECK_BOL_TYPE_ERROR = new ErrorCode(1_002_040_003, "布尔类型参数{}:【{}】转换异常,请检查配置规则");
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DictDataService dictDataService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CustomBlockNoSeqMapper customBlockNoSeqMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void checkValid(String setting) {
|
public void checkValid(String setting) {
|
||||||
// todo checkValid
|
// 字典中的时间格式
|
||||||
|
List<DictDataDO> dateTypeFormatDictList = dictDataService.getDictDataList(CommonStatusEnum.ENABLE.getStatus(), "system_setting_date_type");
|
||||||
|
// 字典中的复位模式
|
||||||
|
List<DictDataDO> resetModeDictList = dictDataService.getDictDataList(CommonStatusEnum.ENABLE.getStatus(), "system_setting_rest_type");
|
||||||
|
|
||||||
|
try {
|
||||||
|
JSONArray jsonArray = JSON.parseArray(setting);
|
||||||
|
for (int i = 0; i < jsonArray.size(); i++) {
|
||||||
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||||||
|
String ruleCode = jsonObject.getString("ruleCode");
|
||||||
|
// 1.校验code
|
||||||
|
CustBoardRuleCodeEnum custBoardRuleCodeEnum = checkRoleCode(ruleCode);
|
||||||
|
|
||||||
|
// 2.时间格式校验
|
||||||
|
checkDateFormat(custBoardRuleCodeEnum, jsonObject.getString("value"), dateTypeFormatDictList);
|
||||||
|
|
||||||
|
// 3.序号类型校验数字和布尔类型
|
||||||
|
checkNoType(custBoardRuleCodeEnum, jsonObject);
|
||||||
|
|
||||||
|
// 4.复位类型校验
|
||||||
|
checkResetMode(custBoardRuleCodeEnum, jsonObject.getInteger("resetMode"), resetModeDictList);
|
||||||
|
}
|
||||||
|
} catch (ServiceException e) {
|
||||||
|
throw e;
|
||||||
|
} catch (Exception e) {
|
||||||
|
ErrorCode systemConfigCustomBoardNoRuleSaveCheckError = SYSTEM_CONFIG_CUSTOM_BOARD_NO_RULE_SAVE_CHECK_ERROR;
|
||||||
|
log.error(systemConfigCustomBoardNoRuleSaveCheckError.getMsg(), e);
|
||||||
|
throw new ServiceException(systemConfigCustomBoardNoRuleSaveCheckError);
|
||||||
|
}
|
||||||
|
throw new ServiceException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验ruleCode
|
||||||
|
*
|
||||||
|
* @param ruleCode 规则编码
|
||||||
|
*/
|
||||||
|
private CustBoardRuleCodeEnum checkRoleCode(String ruleCode) {
|
||||||
|
if (StringUtils.isEmpty(ruleCode)) {
|
||||||
|
throw new ServiceException(CUSTOM_BOARD_NO_RULE_CHECK_RULECODE_EMPTY_ERROR);
|
||||||
|
}
|
||||||
|
CustBoardRuleCodeEnum custBoardRuleCodeEnum = CustBoardRuleCodeEnum.match(ruleCode);
|
||||||
|
if (ObjectUtil.isNull(custBoardRuleCodeEnum)) {
|
||||||
|
throw ServiceExceptionUtil.exception(CUSTOM_BOARD_NO_RULE_CHECK_RULECODE_NOT_MATCH_ERROR, ruleCode);
|
||||||
|
}
|
||||||
|
return custBoardRuleCodeEnum;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验时间格式
|
||||||
|
*
|
||||||
|
* @param custBoardRuleCodeEnum 规则编码枚举
|
||||||
|
* @param format 格式
|
||||||
|
*/
|
||||||
|
private void checkDateFormat(CustBoardRuleCodeEnum custBoardRuleCodeEnum, String format, List<DictDataDO> dateTypeFormatDictList) {
|
||||||
|
if (ObjectUtil.equal(CustBoardRuleCodeEnum.DATE, custBoardRuleCodeEnum) && StringUtils.isNotEmpty(format)) {
|
||||||
|
Optional<DictDataDO> dateFormatDictDataOptional = dateTypeFormatDictList.stream().filter(d -> format.equals(d.getValue())).findAny();
|
||||||
|
if (dateFormatDictDataOptional.isEmpty()) {
|
||||||
|
throw ServiceExceptionUtil.exception(CUSTOM_BOARD_NO_RULE_CHECK_DATE_TYPE_FORMAT_ERROR, format);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验序号类型中数值和布尔类型的属性
|
||||||
|
*
|
||||||
|
* @param custBoardRuleCodeEnum
|
||||||
|
* @param object
|
||||||
|
*/
|
||||||
|
private void checkNoType(CustBoardRuleCodeEnum custBoardRuleCodeEnum, JSONObject object) {
|
||||||
|
// 序号类型才校验
|
||||||
|
if (ObjectUtil.equal(CustBoardRuleCodeEnum.ORDERNO, custBoardRuleCodeEnum)
|
||||||
|
|| ObjectUtil.equal(CustBoardRuleCodeEnum.PLATENO, custBoardRuleCodeEnum)
|
||||||
|
|| ObjectUtil.equal(CustBoardRuleCodeEnum.ROOMNO, custBoardRuleCodeEnum)
|
||||||
|
|| ObjectUtil.equal(CustBoardRuleCodeEnum.BODYNO, custBoardRuleCodeEnum)
|
||||||
|
|| ObjectUtil.equal(CustBoardRuleCodeEnum.PROCESSGROUP, custBoardRuleCodeEnum)) {
|
||||||
|
String[] intTypeFieldArr = new String[]{"initValue", "length", "resetMode", "increment_step"};
|
||||||
|
String[] bolTypeFieldArr = new String[]{"left_fill_zero"};
|
||||||
|
for (String field : intTypeFieldArr) {
|
||||||
|
checkInt(field, object.get(field));
|
||||||
|
}
|
||||||
|
for (String field : bolTypeFieldArr) {
|
||||||
|
checkBol(field, object.get(field));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验整型
|
||||||
|
*/
|
||||||
|
private void checkInt(String field, Object intObj) {
|
||||||
|
if (ObjectUtil.isNull(intObj)) {
|
||||||
|
throw ServiceExceptionUtil.exception(CUSTOM_BOARD_NO_RULE_CHECK_INT_TYPE_NO_EMPTY, field);
|
||||||
|
}
|
||||||
|
if (!NumberUtil.isInteger(intObj.toString())) {
|
||||||
|
throw ServiceExceptionUtil.exception(CUSTOM_BOARD_NO_RULE_CHECK_INT_TYPE_ERROR, field, intObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验布尔型
|
||||||
|
*
|
||||||
|
* @param field
|
||||||
|
* @param bolObj
|
||||||
|
*/
|
||||||
|
private void checkBol(String field, Object bolObj) {
|
||||||
|
if (ObjectUtil.isNull(bolObj)) {
|
||||||
|
throw ServiceExceptionUtil.exception(CUSTOM_BOARD_NO_RULE_CHECK_INT_TYPE_NO_EMPTY, field);
|
||||||
|
}
|
||||||
|
if (!(bolObj instanceof Boolean)) {
|
||||||
|
throw ServiceExceptionUtil.exception(CUSTOM_BOARD_NO_RULE_CHECK_BOL_TYPE_ERROR, field, bolObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验复位类型
|
||||||
|
*
|
||||||
|
* @param resetMode
|
||||||
|
*/
|
||||||
|
private void checkResetMode(CustBoardRuleCodeEnum custBoardRuleCodeEnum, Integer resetMode, List<DictDataDO> resetModeDictList) {
|
||||||
|
if (ObjectUtil.equal(CustBoardRuleCodeEnum.ORDERNO, custBoardRuleCodeEnum)
|
||||||
|
|| ObjectUtil.equal(CustBoardRuleCodeEnum.PLATENO, custBoardRuleCodeEnum)
|
||||||
|
|| ObjectUtil.equal(CustBoardRuleCodeEnum.ROOMNO, custBoardRuleCodeEnum)
|
||||||
|
|| ObjectUtil.equal(CustBoardRuleCodeEnum.BODYNO, custBoardRuleCodeEnum)
|
||||||
|
|| ObjectUtil.equal(CustBoardRuleCodeEnum.PROCESSGROUP, custBoardRuleCodeEnum)) {
|
||||||
|
Optional<DictDataDO> resetModeDictDataOptional = resetModeDictList.stream().filter(d -> resetMode.toString().equals(d.getValue())).findAny();
|
||||||
|
if (resetModeDictDataOptional.isEmpty()) {
|
||||||
|
throw ServiceExceptionUtil.exception(CUSTOM_BOARD_NO_RULE_CHECK_RESETMODE_ERROR, resetMode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beforeSaveConfig(ConfigSaveReqVO reqVO) {
|
public void beforeSaveConfig(ConfigSaveReqVO reqVO) {
|
||||||
// todo beforeSaveConfig
|
// todo beforeSaveConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterSaveConfig(ConfigSaveReqVO reqVO) {
|
public void afterSaveConfig(SystemConfigDO systemConfigDO, ConfigSaveReqVO reqVO) {
|
||||||
// todo afterSaveConfig
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user