From c552b8b47e01193957dd9b0456bf542f91d2599d Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Mon, 11 Nov 2024 19:02:53 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=87=AA=E5=AE=9A=E4=B9=89=E6=9D=BF?= =?UTF-8?q?=E7=BC=96=E5=8F=B7=E8=A7=84=E5=88=99=E5=85=A5=E5=8F=82=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=EF=BC=9B2=E3=80=81=E6=96=B0=E5=A2=9E=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=9D=BF=E7=BC=96=E5=8F=B7=E5=BA=8F=E5=8F=B7?= =?UTF-8?q?=E5=AE=9E=E4=BD=93=E3=80=81mapper=EF=BC=9B3=E3=80=81=E9=83=A8?= =?UTF-8?q?=E5=88=86systemconfig=E5=8C=85=E5=90=8D=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/enums/ErrorCodeConstants.java | 1 + .../ConfigController.java | 12 +- .../vo/ConfigPageReqVO.java | 2 +- .../vo/ConfigRespVO.java | 2 +- .../vo/ConfigSaveReqVO.java | 2 +- .../vo/ConfigUpdateStatusReqVO.java | 2 +- .../customblockno/CustomBlockNoSeqDO.java | 105 +++++++++++ .../SystemConfigDO.java | 2 +- .../customblockno/CustomBlockNoSeqMapper.java | 15 ++ .../SystemConfigMapper.java | 6 +- .../enums/config/CustBoardRuleCodeEnum.java | 63 +++++++ .../service/config/SystemConfigService.java | 8 +- .../config/SystemConfigServiceImpl.java | 20 +- .../AbstractSystemConfigGenerateService.java | 5 +- .../impl/CustomBoardNoGenerateService.java | 177 +++++++++++++++++- 15 files changed, 390 insertions(+), 32 deletions(-) rename cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/{baseconfig => systemconfig}/ConfigController.java (84%) rename cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/{baseconfig => systemconfig}/vo/ConfigPageReqVO.java (92%) rename cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/{baseconfig => systemconfig}/vo/ConfigRespVO.java (89%) rename cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/{baseconfig => systemconfig}/vo/ConfigSaveReqVO.java (94%) rename cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/{baseconfig => systemconfig}/vo/ConfigUpdateStatusReqVO.java (92%) create mode 100644 cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/customblockno/CustomBlockNoSeqDO.java rename cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/{baseconfig => systemconfig}/SystemConfigDO.java (95%) create mode 100644 cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/customblockno/CustomBlockNoSeqMapper.java rename cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/{config => systemconfig}/SystemConfigMapper.java (83%) create mode 100644 cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/config/CustBoardRuleCodeEnum.java diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java index e737c9fcc..6fe97cd6b 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java @@ -342,4 +342,5 @@ public class ErrorCodeConstants { //=========== 系统配置 1-002-040-000 ============ 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_CUSTOM_BOARD_NO_RULE_SAVE_CHECK_ERROR = new ErrorCode(1_002_040_003, "系统配置:自定义板编号保存解析失败,请检查配置规则或联系客服"); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/ConfigController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/ConfigController.java similarity index 84% rename from cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/ConfigController.java rename to cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/ConfigController.java index 4337783c7..31871619c 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/ConfigController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/ConfigController.java @@ -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.PageResult; 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.baseconfig.vo.ConfigRespVO; -import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigSaveReqVO; -import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigUpdateStatusReqVO; -import com.cf.imes.module.system.dal.dataobject.baseconfig.SystemConfigDO; +import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigPageReqVO; +import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigRespVO; +import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigSaveReqVO; +import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateStatusReqVO; +import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO; import com.cf.imes.module.system.service.config.SystemConfigService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/vo/ConfigPageReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/vo/ConfigPageReqVO.java similarity index 92% rename from cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/vo/ConfigPageReqVO.java rename to cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/vo/ConfigPageReqVO.java index 388c0e733..6119268a6 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/vo/ConfigPageReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/vo/ConfigPageReqVO.java @@ -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.module.system.validation.common.CommonStatus; diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/vo/ConfigRespVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/vo/ConfigRespVO.java similarity index 89% rename from cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/vo/ConfigRespVO.java rename to cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/vo/ConfigRespVO.java index 3f145eb8c..f2186eeef 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/vo/ConfigRespVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/vo/ConfigRespVO.java @@ -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 lombok.Data; diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/vo/ConfigSaveReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/vo/ConfigSaveReqVO.java similarity index 94% rename from cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/vo/ConfigSaveReqVO.java rename to cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/vo/ConfigSaveReqVO.java index a42f90e1b..f86c6ee8b 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/vo/ConfigSaveReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/vo/ConfigSaveReqVO.java @@ -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 io.swagger.v3.oas.annotations.media.Schema; diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/vo/ConfigUpdateStatusReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/vo/ConfigUpdateStatusReqVO.java similarity index 92% rename from cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/vo/ConfigUpdateStatusReqVO.java rename to cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/vo/ConfigUpdateStatusReqVO.java index 5982e247e..5d0483a8b 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/baseconfig/vo/ConfigUpdateStatusReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/vo/ConfigUpdateStatusReqVO.java @@ -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 io.swagger.v3.oas.annotations.media.Schema; diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/customblockno/CustomBlockNoSeqDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/customblockno/CustomBlockNoSeqDO.java new file mode 100644 index 000000000..28a6d40f1 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/customblockno/CustomBlockNoSeqDO.java @@ -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; +} diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/baseconfig/SystemConfigDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigDO.java similarity index 95% rename from cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/baseconfig/SystemConfigDO.java rename to cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigDO.java index be198600f..9d5bae5b8 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/baseconfig/SystemConfigDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigDO.java @@ -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.KeySequence; diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/customblockno/CustomBlockNoSeqMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/customblockno/CustomBlockNoSeqMapper.java new file mode 100644 index 000000000..735ea1d69 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/customblockno/CustomBlockNoSeqMapper.java @@ -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 { +} diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/config/SystemConfigMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigMapper.java similarity index 83% rename from cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/config/SystemConfigMapper.java rename to cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigMapper.java index a2f2293cc..fd6dffed1 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/config/SystemConfigMapper.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigMapper.java @@ -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.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.controller.admin.baseconfig.vo.ConfigPageReqVO; -import com.cf.imes.module.system.dal.dataobject.baseconfig.SystemConfigDO; +import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigPageReqVO; +import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO; import org.apache.ibatis.annotations.Mapper; /** diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/config/CustBoardRuleCodeEnum.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/config/CustBoardRuleCodeEnum.java new file mode 100644 index 000000000..14971b049 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/config/CustBoardRuleCodeEnum.java @@ -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; + } +} diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/SystemConfigService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/SystemConfigService.java index b757150dd..17b35ba40 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/SystemConfigService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/SystemConfigService.java @@ -1,10 +1,10 @@ package com.cf.imes.module.system.service.config; 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.baseconfig.vo.ConfigSaveReqVO; -import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigUpdateStatusReqVO; -import com.cf.imes.module.system.dal.dataobject.baseconfig.SystemConfigDO; +import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigPageReqVO; +import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigSaveReqVO; +import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateStatusReqVO; +import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO; /** * 系统配置接口 diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/SystemConfigServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/SystemConfigServiceImpl.java index 530c6be7c..46d80d2b3 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/SystemConfigServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/SystemConfigServiceImpl.java @@ -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.mybatis.core.query.LambdaQueryWrapperX; 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.baseconfig.vo.ConfigSaveReqVO; -import com.cf.imes.module.system.controller.admin.baseconfig.vo.ConfigUpdateStatusReqVO; -import com.cf.imes.module.system.dal.dataobject.baseconfig.SystemConfigDO; -import com.cf.imes.module.system.dal.mysql.config.SystemConfigMapper; +import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigPageReqVO; +import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigSaveReqVO; +import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateStatusReqVO; +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.enums.config.SystemConfigTypeEnum; import com.cf.imes.module.system.service.config.factory.SystemConfigServiceFactory; import com.cf.imes.module.system.service.config.factory.service.AbstractSystemConfigGenerateService; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @@ -63,6 +64,7 @@ public class SystemConfigServiceImpl implements SystemConfigService { } @Override + @Transactional(rollbackFor = Exception.class) public void modifyBaseConfig(ConfigSaveReqVO reqVO) { Long id = reqVO.getId(); // 根据配置类型选择对应的service @@ -71,18 +73,20 @@ public class SystemConfigServiceImpl implements SystemConfigService { configService.checkValid(reqVO.getSetting()); // 系统配置保存前操作 configService.beforeSaveConfig(reqVO); + SystemConfigDO baseConfigDO; if (ObjectUtil.isNotNull(id)) { - SystemConfigDO baseConfigDO = validateBaseConfigExists(id); + baseConfigDO = validateBaseConfigExists(id); // 覆盖配置 baseConfigDO.setSetting(reqVO.getSetting()); // 更新 baseConfigMapper.updateById(baseConfigDO); } 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 diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/factory/service/AbstractSystemConfigGenerateService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/factory/service/AbstractSystemConfigGenerateService.java index 6304f5276..bb5251343 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/factory/service/AbstractSystemConfigGenerateService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/factory/service/AbstractSystemConfigGenerateService.java @@ -1,6 +1,7 @@ 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 */ - public abstract void afterSaveConfig(ConfigSaveReqVO reqVO); + public abstract void afterSaveConfig(SystemConfigDO systemConfigDO, ConfigSaveReqVO reqVO); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/factory/service/impl/CustomBoardNoGenerateService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/factory/service/impl/CustomBoardNoGenerateService.java index 817f44c37..c5109d254 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/factory/service/impl/CustomBoardNoGenerateService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/config/factory/service/impl/CustomBoardNoGenerateService.java @@ -1,9 +1,31 @@ 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.dict.DictDataService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; 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 */ @Service("customBoardNoGenerateService") +@Slf4j 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 public void checkValid(String setting) { - // todo checkValid + // 字典中的时间格式 + List dateTypeFormatDictList = dictDataService.getDictDataList(CommonStatusEnum.ENABLE.getStatus(), "system_setting_date_type"); + // 字典中的复位模式 + List 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 dateTypeFormatDictList) { + if (ObjectUtil.equal(CustBoardRuleCodeEnum.DATE, custBoardRuleCodeEnum) && StringUtils.isNotEmpty(format)) { + Optional 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 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 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 public void beforeSaveConfig(ConfigSaveReqVO reqVO) { // todo beforeSaveConfig } @Override - public void afterSaveConfig(ConfigSaveReqVO reqVO) { - // todo afterSaveConfig + public void afterSaveConfig(SystemConfigDO systemConfigDO, ConfigSaveReqVO reqVO) { + } }