From c90077142f9f2571146027b5375b06b3151f261a Mon Sep 17 00:00:00 2001 From: wj <1285151836@qq.com> Date: Fri, 5 May 2023 16:23:59 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89sql=E6=B3=A8=E5=85=A5=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/config/CustomerSqlInjector.java | 28 +++++++ .../glxp/api/config/CustomerSqlMethod.java | 28 +++++++ .../com/glxp/api/config/InsertIgnore.java | 49 ++++++++++++ .../glxp/api/config/InsertIgnoreBatch.java | 77 +++++++++++++++++++ .../api/config/MasterDataSourceConfig.java | 6 +- .../java/com/glxp/api/config/Replace.java | 40 ++++++++++ .../com/glxp/api/config/ReplaceBatch.java | 71 +++++++++++++++++ .../java/com/glxp/api/dao/BaseMapperPlus.java | 38 +++++++++ 8 files changed, 336 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/glxp/api/config/CustomerSqlInjector.java create mode 100644 src/main/java/com/glxp/api/config/CustomerSqlMethod.java create mode 100644 src/main/java/com/glxp/api/config/InsertIgnore.java create mode 100644 src/main/java/com/glxp/api/config/InsertIgnoreBatch.java create mode 100644 src/main/java/com/glxp/api/config/Replace.java create mode 100644 src/main/java/com/glxp/api/config/ReplaceBatch.java diff --git a/src/main/java/com/glxp/api/config/CustomerSqlInjector.java b/src/main/java/com/glxp/api/config/CustomerSqlInjector.java new file mode 100644 index 00000000..9d417ca6 --- /dev/null +++ b/src/main/java/com/glxp/api/config/CustomerSqlInjector.java @@ -0,0 +1,28 @@ +package com.glxp.api.config; + +import com.baomidou.mybatisplus.core.injector.AbstractMethod; +import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; +import com.baomidou.mybatisplus.core.metadata.TableInfo; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 自定义sql注入器,增加通用方法 + */ +public class CustomerSqlInjector extends DefaultSqlInjector { + + @Override + public List getMethodList(Class mapperClass, TableInfo tableInfo) { + List methodList = super.getMethodList(mapperClass, tableInfo); + // 插入数据,如果中已经存在相同的记录,则忽略当前新数据 + methodList.add(new InsertIgnore()); + // 批量插入数据,如果中已经存在相同的记录,则忽略当前新数据 + methodList.add(new InsertIgnoreBatch()); + // 替换数据,如果中已经存在相同的记录,则覆盖旧数据 + methodList.add(new Replace()); + // 批量替换数据,如果中已经存在相同的记录,则覆盖旧数据 + methodList.add(new ReplaceBatch()); + return methodList; + } +} diff --git a/src/main/java/com/glxp/api/config/CustomerSqlMethod.java b/src/main/java/com/glxp/api/config/CustomerSqlMethod.java new file mode 100644 index 00000000..09dc01b2 --- /dev/null +++ b/src/main/java/com/glxp/api/config/CustomerSqlMethod.java @@ -0,0 +1,28 @@ +package com.glxp.api.config; + +import lombok.Getter; + +/** + * MybatisPlus自定义SQL方法枚举 + */ +@Getter +public enum CustomerSqlMethod { + /** + * 插入 + */ + INSERT_IGNORE_ONE("insertIgnore", "插入一条数据(选择字段插入),如果中已经存在相同的记录,则忽略当前新数据", ""), + /** + * 替换 + */ + REPLACE_ONE("replace", "替换一条数据(选择字段插入),存在则替换,不存在则插入", ""); + + private final String method; + private final String desc; + private final String sql; + + CustomerSqlMethod(String method, String desc, String sql) { + this.method = method; + this.desc = desc; + this.sql = sql; + } +} diff --git a/src/main/java/com/glxp/api/config/InsertIgnore.java b/src/main/java/com/glxp/api/config/InsertIgnore.java new file mode 100644 index 00000000..8b77e9b5 --- /dev/null +++ b/src/main/java/com/glxp/api/config/InsertIgnore.java @@ -0,0 +1,49 @@ +package com.glxp.api.config; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.core.injector.AbstractMethod; +import com.baomidou.mybatisplus.core.metadata.TableInfo; +import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils; +import org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator; +import org.apache.ibatis.executor.keygen.KeyGenerator; +import org.apache.ibatis.executor.keygen.NoKeyGenerator; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.mapping.SqlSource; + +/** + * 插入一条数据(选择字段插入) + * INSERT IGNORE 表示,如果中已经存在相同的记录,则忽略当前新数据; + */ +public class InsertIgnore extends AbstractMethod { + @Override + public MappedStatement injectMappedStatement(Class mapperClass, Class modelClass, TableInfo tableInfo) { + KeyGenerator keyGenerator = new NoKeyGenerator(); + CustomerSqlMethod sqlMethod = CustomerSqlMethod.INSERT_IGNORE_ONE; + String columnScript = SqlScriptUtils.convertTrim(tableInfo.getAllInsertSqlColumnMaybeIf(null), + LEFT_BRACKET, RIGHT_BRACKET, null, COMMA); + String valuesScript = SqlScriptUtils.convertTrim(tableInfo.getAllInsertSqlPropertyMaybeIf(null), + LEFT_BRACKET, RIGHT_BRACKET, null, COMMA); + String keyProperty = null; + String keyColumn = null; + // 表包含主键处理逻辑,如果不包含主键当普通字段处理 + if (StringUtils.isNotBlank(tableInfo.getKeyProperty())) { + if (tableInfo.getIdType() == IdType.AUTO) { + /* 自增主键 */ + keyGenerator = new Jdbc3KeyGenerator(); + keyProperty = tableInfo.getKeyProperty(); + keyColumn = tableInfo.getKeyColumn(); + } else { + if (null != tableInfo.getKeySequence()) { + keyGenerator = TableInfoHelper.genKeyGenerator(sqlMethod.getMethod(), tableInfo, builderAssistant); + keyProperty = tableInfo.getKeyProperty(); + keyColumn = tableInfo.getKeyColumn(); + } + } + } + String sql = String.format(sqlMethod.getSql(), tableInfo.getTableName(), columnScript, valuesScript); + SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass); + return this.addInsertMappedStatement(mapperClass, modelClass, sqlMethod.getMethod(), sqlSource, keyGenerator, keyProperty, keyColumn); + } +} diff --git a/src/main/java/com/glxp/api/config/InsertIgnoreBatch.java b/src/main/java/com/glxp/api/config/InsertIgnoreBatch.java new file mode 100644 index 00000000..b07e6dc2 --- /dev/null +++ b/src/main/java/com/glxp/api/config/InsertIgnoreBatch.java @@ -0,0 +1,77 @@ +package com.glxp.api.config; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.core.enums.SqlMethod; +import com.baomidou.mybatisplus.core.injector.AbstractMethod; +import com.baomidou.mybatisplus.core.metadata.TableFieldInfo; +import com.baomidou.mybatisplus.core.metadata.TableInfo; +import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils; +import lombok.Setter; +import lombok.experimental.Accessors; +import org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator; +import org.apache.ibatis.executor.keygen.KeyGenerator; +import org.apache.ibatis.executor.keygen.NoKeyGenerator; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.mapping.SqlSource; + +import java.util.List; +import java.util.function.Predicate; + +/** + * 批量新增数据,自选字段 insert ignore + */ +public class InsertIgnoreBatch extends AbstractMethod { + /** + * mapper 对应的方法名 + */ + private static final String MAPPER_METHOD = "insertIgnoreBatch"; + + /** + * 字段筛选条件 + */ + @Setter + @Accessors(chain = true) + private Predicate predicate; + + @Override + public MappedStatement injectMappedStatement(Class mapperClass, Class modelClass, TableInfo tableInfo) { + KeyGenerator keyGenerator = new NoKeyGenerator(); + CustomerSqlMethod sqlMethod = CustomerSqlMethod.INSERT_IGNORE_ONE; + List fieldList = tableInfo.getFieldList(); + String insertSqlColumn = tableInfo.getKeyInsertSqlColumn(false, true) + + this.filterTableFieldInfo(fieldList, predicate, TableFieldInfo::getInsertSqlColumn, EMPTY); + String columnScript = LEFT_BRACKET + insertSqlColumn.substring(0, insertSqlColumn.length() - 1) + RIGHT_BRACKET; + String insertSqlProperty = tableInfo.getKeyInsertSqlProperty(false, ENTITY_DOT, true) + + this.filterTableFieldInfo(fieldList, predicate, i -> i.getInsertSqlProperty(ENTITY_DOT), EMPTY); + insertSqlProperty = LEFT_BRACKET + insertSqlProperty.substring(0, insertSqlProperty.length() - 1) + RIGHT_BRACKET; + String valuesScript = SqlScriptUtils.convertForeach(insertSqlProperty, "list", null, ENTITY, COMMA); + String keyProperty = null; + String keyColumn = null; + // 表包含主键处理逻辑,如果不包含主键当普通字段处理 + if (tableInfo.havePK()) { + if (tableInfo.getIdType() == IdType.AUTO) { + /* 自增主键 */ + keyGenerator = new Jdbc3KeyGenerator(); + keyProperty = tableInfo.getKeyProperty(); + keyColumn = tableInfo.getKeyColumn(); + } else { + if (null != tableInfo.getKeySequence()) { + keyGenerator = TableInfoHelper.genKeyGenerator(MAPPER_METHOD, tableInfo, builderAssistant); + keyProperty = tableInfo.getKeyProperty(); + keyColumn = tableInfo.getKeyColumn(); + } + } + } + String sql = String.format(sqlMethod.getSql(), tableInfo.getTableName(), columnScript, valuesScript); + SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass); + return this.addInsertMappedStatement(mapperClass, modelClass, MAPPER_METHOD, sqlSource, keyGenerator, keyProperty, keyColumn); + } + + @Override + public String getMethod(SqlMethod sqlMethod) { + // 自定义 mapper 方法名 + return MAPPER_METHOD; + } +} diff --git a/src/main/java/com/glxp/api/config/MasterDataSourceConfig.java b/src/main/java/com/glxp/api/config/MasterDataSourceConfig.java index 66cb6146..f47a3396 100644 --- a/src/main/java/com/glxp/api/config/MasterDataSourceConfig.java +++ b/src/main/java/com/glxp/api/config/MasterDataSourceConfig.java @@ -2,6 +2,7 @@ package com.glxp.api.config; import com.baomidou.mybatisplus.core.MybatisConfiguration; import com.baomidou.mybatisplus.core.config.GlobalConfig; +import com.baomidou.mybatisplus.core.injector.ISqlInjector; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor; import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; @@ -43,8 +44,9 @@ public class MasterDataSourceConfig { @Configuration @ConfigurationProperties(prefix = "mybatis-plus.configuration") - public class CusMybatisConfiguration extends MybatisConfiguration{ + public class CusMybatisConfiguration extends MybatisConfiguration { } + @Configuration @ConfigurationProperties(prefix = "mybatis-plus.global-config") public class CusGlobalConfig extends GlobalConfig { @@ -57,9 +59,11 @@ public class MasterDataSourceConfig { final MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean(); sessionFactory.setDataSource(masterDataSource); sessionFactory.setConfiguration((MybatisConfiguration) configuration); + globalConfig.setSqlInjector(new CustomerSqlInjector()); sessionFactory.setGlobalConfig(globalConfig); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources(MasterDataSourceConfig.MAPPER_LOCATION)); return sessionFactory.getObject(); } + } diff --git a/src/main/java/com/glxp/api/config/Replace.java b/src/main/java/com/glxp/api/config/Replace.java new file mode 100644 index 00000000..2968293c --- /dev/null +++ b/src/main/java/com/glxp/api/config/Replace.java @@ -0,0 +1,40 @@ +package com.glxp.api.config; + +import com.baomidou.mybatisplus.core.injector.AbstractMethod; +import com.baomidou.mybatisplus.core.metadata.TableInfo; +import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils; +import org.apache.ibatis.executor.keygen.KeyGenerator; +import org.apache.ibatis.executor.keygen.NoKeyGenerator; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.mapping.SqlSource; + +/** + * 替换数据实现类 + * 替换数据,如果中已经存在相同的记录,则覆盖旧数据 + */ +public class Replace extends AbstractMethod { + @Override + public MappedStatement injectMappedStatement(Class mapperClass, Class modelClass, TableInfo tableInfo) { + KeyGenerator keyGenerator = new NoKeyGenerator(); + CustomerSqlMethod sqlMethod = CustomerSqlMethod.REPLACE_ONE; + String columnScript = SqlScriptUtils.convertTrim(tableInfo.getAllInsertSqlColumnMaybeIf(null), + LEFT_BRACKET, RIGHT_BRACKET, null, COMMA); + String valuesScript = SqlScriptUtils.convertTrim(tableInfo.getAllInsertSqlPropertyMaybeIf(null), + LEFT_BRACKET, RIGHT_BRACKET, null, COMMA); + String keyProperty = null; + String keyColumn = null; + // 表包含主键处理逻辑,如果不包含主键当普通字段处理 + if (StringUtils.isNotBlank(tableInfo.getKeyProperty())) { + if (null != tableInfo.getKeySequence()) { + keyGenerator = TableInfoHelper.genKeyGenerator(sqlMethod.getMethod(), tableInfo, builderAssistant); + keyProperty = tableInfo.getKeyProperty(); + keyColumn = tableInfo.getKeyColumn(); + } + } + String sql = String.format(sqlMethod.getSql(), tableInfo.getTableName(), columnScript, valuesScript); + SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass); + return this.addInsertMappedStatement(mapperClass, modelClass, sqlMethod.getMethod(), sqlSource, keyGenerator, keyProperty, keyColumn); + } +} diff --git a/src/main/java/com/glxp/api/config/ReplaceBatch.java b/src/main/java/com/glxp/api/config/ReplaceBatch.java new file mode 100644 index 00000000..61b95f6f --- /dev/null +++ b/src/main/java/com/glxp/api/config/ReplaceBatch.java @@ -0,0 +1,71 @@ +package com.glxp.api.config; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.core.enums.SqlMethod; +import com.baomidou.mybatisplus.core.injector.AbstractMethod; +import com.baomidou.mybatisplus.core.metadata.TableFieldInfo; +import com.baomidou.mybatisplus.core.metadata.TableInfo; +import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils; +import lombok.Setter; +import lombok.experimental.Accessors; +import org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator; +import org.apache.ibatis.executor.keygen.KeyGenerator; +import org.apache.ibatis.executor.keygen.NoKeyGenerator; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.mapping.SqlSource; + +import java.util.List; +import java.util.function.Predicate; + +/** + * 替换数据实现类 + * 替换数据,如果中已经存在相同的记录,则覆盖旧数据 + */ +public class ReplaceBatch extends AbstractMethod { + /** + * mapper 对应的方法名 + */ + private static final String MAPPER_METHOD = "replaceBatch"; + + /** + * 字段筛选条件 + */ + @Setter + @Accessors(chain = true) + private Predicate predicate; + + @Override + public MappedStatement injectMappedStatement(Class mapperClass, Class modelClass, TableInfo tableInfo) { + KeyGenerator keyGenerator = new NoKeyGenerator(); + CustomerSqlMethod sqlMethod = CustomerSqlMethod.REPLACE_ONE; + List fieldList = tableInfo.getFieldList(); + String insertSqlColumn = tableInfo.getKeyInsertSqlColumn(true, true) + + this.filterTableFieldInfo(fieldList, predicate, TableFieldInfo::getInsertSqlColumn, EMPTY); + String columnScript = LEFT_BRACKET + insertSqlColumn.substring(0, insertSqlColumn.length() - 1) + RIGHT_BRACKET; + String insertSqlProperty = tableInfo.getKeyInsertSqlProperty(true, ENTITY_DOT, true) + + this.filterTableFieldInfo(fieldList, predicate, i -> i.getInsertSqlProperty(ENTITY_DOT), EMPTY); + insertSqlProperty = LEFT_BRACKET + insertSqlProperty.substring(0, insertSqlProperty.length() - 1) + RIGHT_BRACKET; + String valuesScript = SqlScriptUtils.convertForeach(insertSqlProperty, "list", null, ENTITY, COMMA); + String keyProperty = null; + String keyColumn = null; + // 表包含主键处理逻辑,如果不包含主键当普通字段处理 + if (StringUtils.isNotBlank(tableInfo.getKeyProperty())) { + if (null != tableInfo.getKeySequence()) { + keyGenerator = TableInfoHelper.genKeyGenerator(sqlMethod.getMethod(), tableInfo, builderAssistant); + keyProperty = tableInfo.getKeyProperty(); + keyColumn = tableInfo.getKeyColumn(); + } + } + String sql = String.format(sqlMethod.getSql(), tableInfo.getTableName(), columnScript, valuesScript); + SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass); + return this.addInsertMappedStatement(mapperClass, modelClass, MAPPER_METHOD, sqlSource, keyGenerator, keyProperty, keyColumn); + } + + @Override + public String getMethod(SqlMethod sqlMethod) { + // 自定义 mapper 方法名 + return MAPPER_METHOD; + } +} diff --git a/src/main/java/com/glxp/api/dao/BaseMapperPlus.java b/src/main/java/com/glxp/api/dao/BaseMapperPlus.java index ea04bc64..0a4da8b0 100644 --- a/src/main/java/com/glxp/api/dao/BaseMapperPlus.java +++ b/src/main/java/com/glxp/api/dao/BaseMapperPlus.java @@ -226,4 +226,42 @@ public interface BaseMapperPlus extends BaseMapper { return (P) voPage; } + /** + * 插入数据,如果中已经存在相同的记录,则忽略当前新数据 + * {@link com.glxp.api.config.InsertIgnore} + * + * @param entity 实体类 + * @return 影响条数 + */ + int insertIgnore(T entity); + + /** + * 批量插入数据,如果中已经存在相同的记录,则忽略当前新数据 + * {@link com.glxp.api.config.InsertIgnoreBatch} + * + * @param entityList 实体类列表 + * @return 影响条数 + */ + int insertIgnoreBatch(List entityList); + + /** + * 替换数据 + * replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样; + * {@link com.glxp.api.config.Replace} + * + * @param entity 实体类 + * @return 影响条数 + */ + int replace(T entity); + + /** + * 批量替换数据 + * replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样; + * {@link com.glxp.api.config.ReplaceBatch} + * + * @param entityList 实体类列表 + * @return 影响条数 + */ + int replaceBatch(List entityList); + } From 86487f966e81f5df719ebcb54158a69d5e58f4ea Mon Sep 17 00:00:00 2001 From: wj <1285151836@qq.com> Date: Fri, 5 May 2023 17:27:29 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9B=BF=E6=8D=A2replaceBatch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sync/SpsSyncDownloadController.java | 75 +++++++++---------- 1 file changed, 36 insertions(+), 39 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java b/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java index 199e42b9..242d6e7d 100644 --- a/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java +++ b/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java @@ -416,35 +416,34 @@ public class SpsSyncDownloadController { private void saveUploadSysSettingData(SpsSyncSysSettingResponse bean) { if (CollectionUtil.isNotEmpty(bean.getSystemParamConfigEntities())) { - systemParamConfigDao.insertOrUpdateBatch(bean.getSystemParamConfigEntities()); + systemParamConfigDao.replaceBatch(bean.getSystemParamConfigEntities()); } if (CollectionUtil.isNotEmpty(bean.getEntrustReceEntities())) { - entrustReceDao.insertOrUpdateBatch(bean.getEntrustReceEntities()); + entrustReceDao.replaceBatch(bean.getEntrustReceEntities()); } if (CollectionUtil.isNotEmpty(bean.getSystemPDFModuleEntities())) { - systemPDFModuleDao.insertOrUpdateBatch(bean.getSystemPDFModuleEntities()); + systemPDFModuleDao.replaceBatch(bean.getSystemPDFModuleEntities()); } if (CollectionUtil.isNotEmpty(bean.getSystemPDFTemplateEntities())) { - for (SystemPDFTemplateEntity systemPDFTemplateEntity : bean.getSystemPDFTemplateEntities()) - systemPDFTemplateDao.insertOrUpdate(systemPDFTemplateEntity); + systemPDFTemplateDao.replaceBatch(bean.getSystemPDFTemplateEntities()); } if (CollectionUtil.isNotEmpty(bean.getSysPdfTemplateRelevanceCodeEntities())) { - sysPdfTemplateRelevanceCodeDao.insertOrUpdateBatch(bean.getSysPdfTemplateRelevanceCodeEntities()); + sysPdfTemplateRelevanceCodeDao.replaceBatch(bean.getSysPdfTemplateRelevanceCodeEntities()); } if (CollectionUtil.isNotEmpty(bean.getSysPdfTemplateRelevanceBizEntities())) { - sysPdfTemplateRelevanceBizDao.insertOrUpdateBatch(bean.getSysPdfTemplateRelevanceBizEntities()); + sysPdfTemplateRelevanceBizDao.replaceBatch(bean.getSysPdfTemplateRelevanceBizEntities()); } if (CollectionUtil.isNotEmpty(bean.getSysPdfTemplateRelevanceLabelEntities())) { - sysPdfTemplateRelevanceLabelDao.insertOrUpdateBatch(bean.getSysPdfTemplateRelevanceLabelEntities()); + sysPdfTemplateRelevanceLabelDao.replaceBatch(bean.getSysPdfTemplateRelevanceLabelEntities()); } if (CollectionUtil.isNotEmpty(bean.getSysPdfTemplateRelevanceStatemenEntities())) { - sysPdfTemplateRelevanceStatemenDao.insertOrUpdateBatch(bean.getSysPdfTemplateRelevanceStatemenEntities()); + sysPdfTemplateRelevanceStatemenDao.replaceBatch(bean.getSysPdfTemplateRelevanceStatemenEntities()); } if (CollectionUtil.isNotEmpty(bean.getBasicBusTypePreEntities())) { - basicBusTypePreDao.insertOrUpdateBatch(bean.getBasicBusTypePreEntities()); + basicBusTypePreDao.replaceBatch(bean.getBasicBusTypePreEntities()); } if (CollectionUtil.isNotEmpty(bean.getBasicBusTypeChangeEntities())) { - basicBusTypeChangeDao.insertOrUpdateBatch(bean.getBasicBusTypeChangeEntities()); + basicBusTypeChangeDao.replaceBatch(bean.getBasicBusTypeChangeEntities()); } @@ -458,46 +457,44 @@ public class SpsSyncDownloadController { private void saveUploadThrData(SpsSyncThrDataResponse bean) { if (CollectionUtil.isNotEmpty(bean.getDeptEntities())) { - thrDeptDao.insertOrUpdateBatch(bean.getDeptEntities()); + thrDeptDao.replaceBatch(bean.getDeptEntities()); } if (CollectionUtil.isNotEmpty(bean.getInvWarehouseEntities())) { - thrInvWarehouseDao.insertOrUpdateBatch(bean.getInvWarehouseEntities()); + thrInvWarehouseDao.replaceBatch(bean.getInvWarehouseEntities()); } if (CollectionUtil.isNotEmpty(bean.getProductsEntityList())) { - thrProductsDao.insertOrUpdateBatch(bean.getProductsEntityList()); + thrProductsDao.replaceBatch(bean.getProductsEntityList()); } if (CollectionUtil.isNotEmpty(bean.getCorpEntities())) { - thrCorpDao.insertOrUpdateBatch(bean.getCorpEntities()); + thrCorpDao.replaceBatch(bean.getCorpEntities()); } } private void saveUploadUserData(SpsSyncDataResponse bean) { if (CollectionUtil.isNotEmpty(bean.getAuthAdminList())) { - authAdminDao.insertOrUpdateBatch(bean.getAuthAdminList()); + authAdminDao.replaceBatch(bean.getAuthAdminList()); } if (CollectionUtil.isNotEmpty(bean.getDeptEntityList())) { - deptDao.insertOrUpdateBatch(bean.getDeptEntityList()); + deptDao.replaceBatch(bean.getDeptEntityList()); } if (CollectionUtil.isNotEmpty(bean.getDeptUserEntities())) { deptUserDao.replaceBatch(bean.getDeptUserEntities()); } if (CollectionUtil.isNotEmpty(bean.getInvWarehouseEntities())) { - invWarehouseDao.insertOrUpdateBatch(bean.getInvWarehouseEntities()); + invWarehouseDao.replaceBatch(bean.getInvWarehouseEntities()); } if (CollectionUtil.isNotEmpty(bean.getWarehouseUserEntities())) { - warehouseUserDao.insertOrUpdateBatch(bean.getWarehouseUserEntities()); + warehouseUserDao.replaceBatch(bean.getWarehouseUserEntities()); } if (CollectionUtil.isNotEmpty(bean.getWarehouseBussinessTypeEntities())) { - for (WarehouseBussinessTypeEntity warehouseBussinessTypeEntity : bean.getWarehouseBussinessTypeEntities()) { - warehouseBussinessTypeDao.insertOrUpdate(warehouseBussinessTypeEntity); - } + warehouseBussinessTypeDao.replaceBatch(bean.getWarehouseBussinessTypeEntities()); } if (CollectionUtil.isNotEmpty(bean.getInvSpaces())) { - invSpaceDao.insertOrUpdateBatch(bean.getInvSpaces()); + invSpaceDao.replaceBatch(bean.getInvSpaces()); } if (CollectionUtil.isNotEmpty(bean.getInvBusUserEntities())) { - invBusUserDao.insertOrUpdateBatch(bean.getInvBusUserEntities()); + invBusUserDao.replaceBatch(bean.getInvBusUserEntities()); } } @@ -513,13 +510,13 @@ public class SpsSyncDownloadController { */ private void saveUploadDocumentTypeData(SpsSyncBusResponse bean) { if (CollectionUtil.isNotEmpty(bean.getBussinessTypeEntities())) { - basicBussinessTypeDao.insertOrUpdateBatch(bean.getBussinessTypeEntities()); + basicBussinessTypeDao.replaceBatch(bean.getBussinessTypeEntities()); } if (CollectionUtil.isNotEmpty(bean.getBusTypeChangeEntities())) { - busTypeChangeDao.insertOrUpdateBatch(bean.getBusTypeChangeEntities()); + busTypeChangeDao.replaceBatch(bean.getBusTypeChangeEntities()); } if (CollectionUtil.isNotEmpty(bean.getThrBusTypeOriginEntities())) { - thrBusTypeOriginDao.insertOrUpdateBatch(bean.getThrBusTypeOriginEntities()); + thrBusTypeOriginDao.replaceBatch(bean.getThrBusTypeOriginEntities()); } } @@ -534,10 +531,10 @@ public class SpsSyncDownloadController { */ private void saveUploadOtherData(SpsSyncOtherDataResponse bean) { if (CollectionUtil.isNotEmpty(bean.getIoCodeLostList())) { - ioCodeLostMapper.insertOrUpdateBatch(bean.getIoCodeLostList()); + ioCodeLostMapper.replaceBatch(bean.getIoCodeLostList()); } if (CollectionUtil.isNotEmpty(bean.getIoCodeRelList())) { - ioCodeRelMapper.insertOrUpdateBatch(bean.getIoCodeRelList()); + ioCodeRelMapper.replaceBatch(bean.getIoCodeRelList()); } } @@ -560,34 +557,34 @@ public class SpsSyncDownloadController { */ private void saveUploadBasicData(SpsSyncBasicDataResponse bean) { if (CollectionUtil.isNotEmpty(bean.getHospTypeList())) { - basicHospTypeDao.insertOrUpdateBatch(bean.getHospTypeList()); + basicHospTypeDao.replaceBatch(bean.getHospTypeList()); } if (CollectionUtil.isNotEmpty(bean.getUdiRelevanceList())) { - udiRelevanceDao.insertOrUpdateBatch(bean.getUdiRelevanceList()); + udiRelevanceDao.replaceBatch(bean.getUdiRelevanceList()); } if (CollectionUtil.isNotEmpty(bean.getProductsList())) { - basicProductsDao.insertOrUpdateBatch(bean.getProductsList()); + basicProductsDao.replaceBatch(bean.getProductsList()); } if (CollectionUtil.isNotEmpty(bean.getRelevanceList())) { - relevanceDao.insertOrUpdateBatch(bean.getRelevanceList()); + relevanceDao.replaceBatch(bean.getRelevanceList()); } if (CollectionUtil.isNotEmpty(bean.getCorpList())) { - corpDao.insertOrUpdateBatch(bean.getCorpList()); + corpDao.replaceBatch(bean.getCorpList()); } if (CollectionUtil.isNotEmpty(bean.getSupCertList())) { - supCertDao.insertOrUpdateBatch(bean.getSupCertList()); + supCertDao.replaceBatch(bean.getSupCertList()); } if (CollectionUtil.isNotEmpty(bean.getSupCertSetList())) { - supCertSetDao.insertOrUpdateBatch(bean.getSupCertSetList()); + supCertSetDao.replaceBatch(bean.getSupCertSetList()); } if (CollectionUtil.isNotEmpty(bean.getSupCompanyList())) { - supCompanyDao.insertOrUpdateBatch(bean.getSupCompanyList()); + supCompanyDao.replaceBatch(bean.getSupCompanyList()); } if (CollectionUtil.isNotEmpty(bean.getSupManufacturerList())) { - supManufacturerDao.insertOrUpdateBatch(bean.getSupManufacturerList()); + supManufacturerDao.replaceBatch(bean.getSupManufacturerList()); } if (CollectionUtil.isNotEmpty(bean.getSupProductList())) { - supProductDao.insertOrUpdateBatch(bean.getSupProductList()); + supProductDao.replaceBatch(bean.getSupProductList()); } } From 2d3bd6fe09cab312815aadabb9870670d6ca4a84 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Fri, 5 May 2023 19:44:08 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9=E3=80=82=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E9=80=89=E5=85=A5=E7=89=A9=E8=B5=84=E5=AD=97=E5=85=B8=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/aspect/AuthorizeAspect.java | 5 +++-- .../glxp/api/constant/BasicExportTypeEnum.java | 6 ++++++ .../api/controller/basic/UdiRlSupController.java | 14 ++++++++------ .../inout/IoOrderReviewController.java | 15 +++++++++++++++ .../sync/SpsSyncExportStatusController.java | 4 ++-- .../controller/sync/SyncDataSetController.java | 3 +-- .../glxp/api/entity/basic/UdiProductEntity.java | 2 +- .../glxp/api/entity/basic/UdiRlSupEntity.java | 2 +- .../basic/CompanyProductRelevanceResponse.java | 2 +- .../com/glxp/api/res/basic/UdiRlSupResponse.java | 2 +- .../impl/CompanyProductRelevanceServiceImpl.java | 3 +++ .../basic/impl/UdiProductServiceImpl.java | 4 ++++ .../api/service/inout/IoCheckInoutService.java | 2 ++ .../api/service/sync/SpsSyncDownloadService.java | 16 +++++++++++----- .../java/com/glxp/api/task/AsyncHeartTask.java | 8 ++++---- src/main/java/com/glxp/api/util/DateUtil.java | 2 +- .../java/com/glxp/api/util/udi/UdiInfoUtil.java | 4 ++++ .../mapper/basic/CompanyProductRelevanceDao.xml | 6 +++--- .../mybatis/mapper/basic/UdiProductDao.xml | 4 ++-- .../mybatis/mapper/inout/IoOrderDetailBizDao.xml | 14 ++++++++------ .../mybatis/mapper/sync/SyncDataSetDao.xml | 4 ++-- .../mybatis/mapper/system/SyncDataBustypeDao.xml | 2 +- 22 files changed, 84 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/glxp/api/aspect/AuthorizeAspect.java b/src/main/java/com/glxp/api/aspect/AuthorizeAspect.java index c01af5c1..5cc3b4c9 100644 --- a/src/main/java/com/glxp/api/aspect/AuthorizeAspect.java +++ b/src/main/java/com/glxp/api/aspect/AuthorizeAspect.java @@ -54,7 +54,8 @@ public class AuthorizeAspect { HttpServletRequest request = attributes.getRequest(); String id = request.getHeader("ADMIN_ID"); - if (StrUtil.isBlank(id)) { + String token = request.getHeader("ADMIN_TOKEN"); + if (StrUtil.isBlank(id) || StrUtil.isBlank(token)) { String apiKey = request.getHeader("api_key"); String secretKey = request.getHeader("secret_key"); AuthLicense authLicense = authLicenseDao.get(apiKey); @@ -72,7 +73,7 @@ public class AuthorizeAspect { throw new JsonException(ResultEnum.LOGIN_VERIFY_FALL); } - String token = request.getHeader("ADMIN_TOKEN"); + if (token == null) { throw new JsonException(ResultEnum.LOGIN_VERIFY_FALL); } diff --git a/src/main/java/com/glxp/api/constant/BasicExportTypeEnum.java b/src/main/java/com/glxp/api/constant/BasicExportTypeEnum.java index 9a58fba1..7aee7a80 100644 --- a/src/main/java/com/glxp/api/constant/BasicExportTypeEnum.java +++ b/src/main/java/com/glxp/api/constant/BasicExportTypeEnum.java @@ -50,6 +50,12 @@ public enum BasicExportTypeEnum { * 单据信息 */ IO_ORDER("io_order", "单据信息"), + + + /** + * 发票信息 + */ + ORDER_INVOICE("io_order_invoice", "扫码单据发票信息"), ; @EnumValue private String key; diff --git a/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java b/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java index 9e17c743..79096d18 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java @@ -1,6 +1,7 @@ package com.glxp.api.controller.basic; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; @@ -212,13 +213,13 @@ public class UdiRlSupController extends BaseController { @Log(title = "单据管理", businessType = BusinessType.INSERT) public BaseResponse insertFilter(@RequestBody UdiInfoExportRequest udiInfoExportRequest) { CompanyEntity companyEntity = companyService.findCompany(udiInfoExportRequest.getCustomerId() + ""); - if(companyEntity != null){ - if("110".equals(companyEntity.getUnitIdFk())) { - udiInfoExportRequest.setUnitFk(null); - } else { - udiInfoExportRequest.setUnitFk(companyEntity.getUnitIdFk()); + if (companyEntity != null) { + if ("110".equals(companyEntity.getUnitIdFk())) { + udiInfoExportRequest.setUnitFk(null); + } else { + udiInfoExportRequest.setUnitFk(companyEntity.getUnitIdFk()); + } } - } //查询本企业有没有选择该产品有选择不能选择 CompanyProductRelevanceRequest companyProductRelevanceRequest = new CompanyProductRelevanceRequest(); companyProductRelevanceRequest.setCustomerId(udiInfoExportRequest.getCustomerId() + ""); @@ -244,6 +245,7 @@ public class UdiRlSupController extends BaseController { udiRelevanceService.updateUdiRelevance(udiRelevanceEntity); UdiProductEntity udiProductEntity = new UdiProductEntity(); BeanUtils.copyProperties(udiInfoExportRequest.getSupplementRequest(), udiProductEntity); + udiProductEntity.setId(IdUtil.getSnowflakeNextId()); udiProductService.insertUdiInfo(udiProductEntity); return ResultVOUtils.success("选入成功!"); } diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java index b2e04e38..4289a2d8 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java @@ -445,4 +445,19 @@ public class IoOrderReviewController extends BaseController { } + @AuthRuleAnnotation("") + @PostMapping("/udiwms/order/getSimpleOrder") + public BaseResponse getSimpleOrder(@RequestBody ReviewSpmsRequest reviewSpmsRequest) { + + getUser(); + if (StrUtil.isEmpty(reviewSpmsRequest.getBillNo())) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + + IoOrderEntity orderEntity = orderService.findByBillNo(reviewSpmsRequest.getBillNo()); + return ResultVOUtils.success(orderEntity); + + } + + } diff --git a/src/main/java/com/glxp/api/controller/sync/SpsSyncExportStatusController.java b/src/main/java/com/glxp/api/controller/sync/SpsSyncExportStatusController.java index 36be3643..14de0022 100644 --- a/src/main/java/com/glxp/api/controller/sync/SpsSyncExportStatusController.java +++ b/src/main/java/com/glxp/api/controller/sync/SpsSyncExportStatusController.java @@ -264,10 +264,10 @@ public class SpsSyncExportStatusController { CompletableFuture future = CompletableFuture.runAsync(() -> { switch (req.getExportType()) { case IO_ORDER: - spsSyncDownloadService.syncOrderTask(); + spsSyncDownloadService.syncOrderTask(req.getSyncTime()); break; case COUNTRY_DI_DATA: - spsSyncDownloadService.syncDiProductsTask(); + spsSyncDownloadService.syncDiProductsTask(req.getSyncTime()); break; default: spsSyncDownloadService.syncData(syncDataSetEntity, req.getExportType(), req.getSyncTime()); diff --git a/src/main/java/com/glxp/api/controller/sync/SyncDataSetController.java b/src/main/java/com/glxp/api/controller/sync/SyncDataSetController.java index 65eace4a..386f3182 100644 --- a/src/main/java/com/glxp/api/controller/sync/SyncDataSetController.java +++ b/src/main/java/com/glxp/api/controller/sync/SyncDataSetController.java @@ -54,8 +54,7 @@ public class SyncDataSetController { @AuthRuleAnnotation("system/param/syncData/save") @PostMapping("/system/param/syncData/save") - public BaseResponse save(@RequestBody @Valid SyncDataSetResponse syncDataSetResponse - ) { + public BaseResponse save(@RequestBody @Valid SyncDataSetResponse syncDataSetResponse) { SyncDataSetEntity syncDataSetEntity = new SyncDataSetEntity(); BeanUtils.copyProperties(syncDataSetResponse, syncDataSetEntity); syncDataSetEntity.setUpdateTime(new Date()); diff --git a/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java b/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java index 322b3350..27323dcf 100644 --- a/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java @@ -83,7 +83,7 @@ public class UdiProductEntity { private Date updateTime; - private Integer relSupId; + private Long relSupId; public Boolean getAllowNoBatch() { diff --git a/src/main/java/com/glxp/api/entity/basic/UdiRlSupEntity.java b/src/main/java/com/glxp/api/entity/basic/UdiRlSupEntity.java index 86194d5e..3b7b032f 100644 --- a/src/main/java/com/glxp/api/entity/basic/UdiRlSupEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/UdiRlSupEntity.java @@ -18,7 +18,7 @@ public class UdiRlSupEntity { @TableId(value = "id", type = IdType.AUTO) - private Integer id; + private Long id; /** * 客户ID diff --git a/src/main/java/com/glxp/api/res/basic/CompanyProductRelevanceResponse.java b/src/main/java/com/glxp/api/res/basic/CompanyProductRelevanceResponse.java index c123629d..f9f051b7 100644 --- a/src/main/java/com/glxp/api/res/basic/CompanyProductRelevanceResponse.java +++ b/src/main/java/com/glxp/api/res/basic/CompanyProductRelevanceResponse.java @@ -5,7 +5,7 @@ import lombok.Data; @Data public class CompanyProductRelevanceResponse { - private int id; + private Long id; private Integer rlId; private String thirdId; private String thirdName; diff --git a/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java index 19a1f2da..bd650b30 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java @@ -5,7 +5,7 @@ import lombok.Data; @Data public class UdiRlSupResponse { - private int id; + private Long id; private Integer rlId; private String thirdId; private String thirdName; diff --git a/src/main/java/com/glxp/api/service/basic/impl/CompanyProductRelevanceServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/CompanyProductRelevanceServiceImpl.java index e5a3192d..238cfe69 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/CompanyProductRelevanceServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/CompanyProductRelevanceServiceImpl.java @@ -1,6 +1,7 @@ package com.glxp.api.service.basic.impl; +import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; @@ -39,6 +40,8 @@ public class CompanyProductRelevanceServiceImpl extends ServiceImpl baseResponse = findOrder(getRequest(ConstantStatus.SYNC_DOWNLOAD_SCAN_ORDER)); + + SpsSyncDataRequest spsSyncDataRequest = getRequest(ConstantStatus.SYNC_DOWNLOAD_SCAN_ORDER); + if (lastUpdateTime != null) + spsSyncDataRequest.setLastUpdateTime(DateUtil.formatDateTime(lastUpdateTime)); + BaseResponse baseResponse = findOrder(spsSyncDataRequest); SpsSyncOrderResponse syncOrderResponse = baseResponse.getData(); // 2.查看是否有需要更新的数据 if (CollUtil.isNotEmpty(syncOrderResponse.getOrderEntities())) { @@ -117,7 +121,7 @@ public class SpsSyncDownloadService { } // 创建国家库同步任务 - public void syncDiProductsTask() { + public void syncDiProductsTask(Date lastUpdateTime) { BasicExportStatusEntity exportStatus = basicExportService.getOne(Wrappers.lambdaQuery(BasicExportStatusEntity.class) .eq(BasicExportStatusEntity::getType, NEW_ALL_UDIS) @@ -127,8 +131,10 @@ public class SpsSyncDownloadService { //首次任务or上次任务结束 if (exportStatus == null || BasicExportStatusEnum.COMPLETED.getCode().equals(exportStatus.getStatus())) { - - BaseResponse baseResponse = syncUdi(getRequest(ConstantStatus.SYNC_DI_PRODUCTS)); + SpsSyncDataRequest spsSyncDataRequest = getRequest(ConstantStatus.SYNC_DI_PRODUCTS); + if (lastUpdateTime != null) + spsSyncDataRequest.setLastUpdateTime(DateUtil.formatDateTime(lastUpdateTime)); + BaseResponse baseResponse = syncUdi(spsSyncDataRequest); SpSyncUdiResponse spSyncUdiResponse = baseResponse.getData(); if (CollUtil.isNotEmpty(spSyncUdiResponse.getProductInfoEntityList()) || CollUtil.isNotEmpty(spSyncUdiResponse.getUdiCompanyEntities())) { diff --git a/src/main/java/com/glxp/api/task/AsyncHeartTask.java b/src/main/java/com/glxp/api/task/AsyncHeartTask.java index 49f3cb43..48b9128d 100644 --- a/src/main/java/com/glxp/api/task/AsyncHeartTask.java +++ b/src/main/java/com/glxp/api/task/AsyncHeartTask.java @@ -65,7 +65,7 @@ public class AsyncHeartTask implements SchedulingConfigurer { redisUtil.set("SPS_SYNC_GEN_DATA", lastTime); } if (curTime - lastTime > timeInterval) { - spsSyncDownloadService.syncDiProductsTask(); + spsSyncDownloadService.syncDiProductsTask(null); // todo 生成任务都写在这 Arrays.stream(BasicExportTypeEnum.values()).forEach(i -> { spsSyncDownloadService.syncData(syncDataSetEntity, i, null); @@ -78,8 +78,8 @@ public class AsyncHeartTask implements SchedulingConfigurer { //定时同步单据最近更新数据至任务表,等待下载 - if (syncDataSetEntity.getOrderSyncTime() != null) { - long timeInterval = syncDataSetEntity.getOrderSyncTime() * 6 * 1000; + if (syncDataSetEntity.getOrderToInSyncTime() != null) { + long timeInterval = syncDataSetEntity.getOrderToInSyncTime() * 6 * 1000; long curTime = System.currentTimeMillis(); Long lastTime = (Long) redisUtil.get("SPS_ORDER_SYNC_GEN_DATA"); if (lastTime == null) { @@ -87,7 +87,7 @@ public class AsyncHeartTask implements SchedulingConfigurer { redisUtil.set("SPS_ORDER_SYNC_GEN_DATA", lastTime); } if (curTime - lastTime > timeInterval) { - spsSyncDownloadService.syncOrderTask(); + spsSyncDownloadService.syncOrderTask(null); redisUtil.set("SPS_ORDER_SYNC_GEN_DATA", curTime); } } diff --git a/src/main/java/com/glxp/api/util/DateUtil.java b/src/main/java/com/glxp/api/util/DateUtil.java index 18233bb0..67e220d3 100644 --- a/src/main/java/com/glxp/api/util/DateUtil.java +++ b/src/main/java/com/glxp/api/util/DateUtil.java @@ -60,7 +60,7 @@ public class DateUtil extends DateUtils { * 得到日期时间字符串,转换格式(yyyy-MM-dd HH:mm:ss) */ public static String formatDateTime(Date date) { - Date currentTime = new Date(); + Date currentTime = date; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString = formatter.format(currentTime); return dateString; diff --git a/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java b/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java index 3aba538c..8d82d9c6 100644 --- a/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java +++ b/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java @@ -1,6 +1,7 @@ package com.glxp.api.util.udi; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.entity.basic.UdiProductEntity; @@ -27,6 +28,9 @@ public class UdiInfoUtil { public static List initUdiInfoEntitys(List udiProductEntities) { if (CollUtil.isNotEmpty(udiProductEntities)) { for (UdiProductEntity udiProductEntity : udiProductEntities) { + if (udiProductEntity.getId() == null) { + udiProductEntity.setId(IdUtil.getSnowflakeNextId()); + } udiProductEntity.setUpdateTime(new Date()); udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_UDI); if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhph()) && "否".equals(udiProductEntity.getScbssfbhph())) { diff --git a/src/main/resources/mybatis/mapper/basic/CompanyProductRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/CompanyProductRelevanceDao.xml index 8004250e..ad5625ab 100644 --- a/src/main/resources/mybatis/mapper/basic/CompanyProductRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/CompanyProductRelevanceDao.xml @@ -2,13 +2,13 @@ - replace - INTO company_product_relevance(customerId, productId, enterpriseId, registrationId, + INTO company_product_relevance(id, customerId, productId, enterpriseId, registrationId, createTime, updateTime, auditStatus, productUuid, udiRlIdFk, unitFk, price) - values (#{customerId}, + values (#{id}, #{customerId}, #{productId}, #{enterpriseId}, #{registrationId}, diff --git a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml index 541b9614..60801132 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml @@ -165,7 +165,7 @@ replace INTO basic_products - (uuid, originUuid, nameCode, deviceRecordKey, packRatio, packLevel, packUnit, bhxjsl, bhzxxsbzsl, + (id, uuid, originUuid, nameCode, deviceRecordKey, packRatio, packLevel, packUnit, bhxjsl, bhzxxsbzsl, zxxsbzbhsydysl, bhxjcpbm, bzcj, cpmctymc, cplb, flbm, ggxh, qxlb, tyshxydm, ylqxzcrbarmc, zczbhhzbapzbh, ylqxzcrbarywmc, sydycpbs, sjcpbm, versionNumber, diType, ybbm, sptm, manufactory, measname, productType, scbssfbhph, scbssfbhxlh, scbssfbhscrq, scbssfbhsxrq, cpms, @@ -173,7 +173,7 @@ allowNoProduct, allowNoSerial, spmc, cplx, hchzsb, cpdls, price, basicPrductRemak1, basicPrductRemak2, basicPrductRemak3, basicPrductRemak4, basicPrductRemak5, basicPrductRemak6, basicPrductRemak7, basicPrductRemak8, updateTime) - values (#{uuid}, + values (#{id}, #{uuid}, #{originUuid}, #{nameCode}, #{deviceRecordKey}, diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml index f24c4baf..aa1104ae 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml @@ -2,7 +2,7 @@ select io_order_detail_biz.*, - (select count(*) FROM io_order_invoice where io_order_invoice.orderIdFk=io_order_detail_biz.orderIdFk) as sucCount + (select count(*) + FROM io_order_invoice + where io_order_invoice.orderIdFk = io_order_detail_biz.orderIdFk) as sucCount from io_order_detail_biz - left join basic_udirel bu on bu.id = io_order_detail_biz.bindRlFk - left join basic_products bp on bu.uuid = bp.uuid + left join basic_udirel bu on bu.id = io_order_detail_biz.bindRlFk + left join basic_products bp on bu.uuid = bp.uuid AND orderIdFk = #{orderIdFk} @@ -47,7 +49,6 @@ -