Merge branch 'dev' into test

pro
wj 2 years ago
commit 71a605718c

@ -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);
}

@ -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<AbstractMethod> getMethodList(Class<?> mapperClass, TableInfo tableInfo) {
List<AbstractMethod> methodList = super.getMethodList(mapperClass, tableInfo);
// 插入数据,如果中已经存在相同的记录,则忽略当前新数据
methodList.add(new InsertIgnore());
// 批量插入数据,如果中已经存在相同的记录,则忽略当前新数据
methodList.add(new InsertIgnoreBatch());
// 替换数据,如果中已经存在相同的记录,则覆盖旧数据
methodList.add(new Replace());
// 批量替换数据,如果中已经存在相同的记录,则覆盖旧数据
methodList.add(new ReplaceBatch());
return methodList;
}
}

@ -0,0 +1,28 @@
package com.glxp.api.config;
import lombok.Getter;
/**
* MybatisPlusSQL
*/
@Getter
public enum CustomerSqlMethod {
/**
*
*/
INSERT_IGNORE_ONE("insertIgnore", "插入一条数据(选择字段插入),如果中已经存在相同的记录,则忽略当前新数据", "<script>\nINSERT IGNORE INTO %s %s VALUES %s\n</script>"),
/**
*
*/
REPLACE_ONE("replace", "替换一条数据(选择字段插入),存在则替换,不存在则插入", "<script>\nREPLACE INTO %s %s VALUES %s\n</script>");
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;
}
}

@ -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);
}
}

@ -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<TableFieldInfo> predicate;
@Override
public MappedStatement injectMappedStatement(Class<?> mapperClass, Class<?> modelClass, TableInfo tableInfo) {
KeyGenerator keyGenerator = new NoKeyGenerator();
CustomerSqlMethod sqlMethod = CustomerSqlMethod.INSERT_IGNORE_ONE;
List<TableFieldInfo> 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;
}
}

@ -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();
}
}

@ -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);
}
}

@ -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<TableFieldInfo> predicate;
@Override
public MappedStatement injectMappedStatement(Class<?> mapperClass, Class<?> modelClass, TableInfo tableInfo) {
KeyGenerator keyGenerator = new NoKeyGenerator();
CustomerSqlMethod sqlMethod = CustomerSqlMethod.REPLACE_ONE;
List<TableFieldInfo> 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;
}
}

@ -50,6 +50,12 @@ public enum BasicExportTypeEnum {
*
*/
IO_ORDER("io_order", "单据信息"),
/**
*
*/
ORDER_INVOICE("io_order_invoice", "扫码单据发票信息"),
;
@EnumValue
private String key;

@ -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("选入成功!");
}

@ -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);
}
}

@ -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());
}
}

@ -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());

@ -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());

@ -226,4 +226,42 @@ public interface BaseMapperPlus<M, T, V> extends BaseMapper<T> {
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<T> entityList);
/**
*
* replace intoPrimaryKeyuniqueinsert into
* {@link com.glxp.api.config.Replace}
*
* @param entity
* @return
*/
int replace(T entity);
/**
*
* replace intoPrimaryKeyuniqueinsert into
* {@link com.glxp.api.config.ReplaceBatch}
*
* @param entityList
* @return
*/
int replaceBatch(List<T> entityList);
}

@ -83,7 +83,7 @@ public class UdiProductEntity {
private Date updateTime;
private Integer relSupId;
private Long relSupId;
public Boolean getAllowNoBatch() {

@ -18,7 +18,7 @@ public class UdiRlSupEntity {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private Long id;
/**
* ID

@ -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;

@ -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;

@ -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<CompanyProdu
@Override
public boolean insertCompanyProductRelevance(CompanyProductRelevanceEntity companyProductRelevanceEntity) {
if (companyProductRelevanceEntity.getId() == null)
companyProductRelevanceEntity.setId(IdUtil.getSnowflakeNextId());
return companyProductRelevanceDao.insertCompanyProductRelevance(companyProductRelevanceEntity);
}

@ -1,6 +1,7 @@
package com.glxp.api.service.basic.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.UdiProductDao;
@ -98,6 +99,9 @@ public class UdiProductServiceImpl implements UdiProductService {
@Override
public boolean insertUdiInfo(UdiProductEntity udiProductEntity) {
udiProductEntity.setUpdateTime(new Date());
if (udiProductEntity.getId() == null) {
udiProductEntity.setId(IdUtil.getSnowflakeNextId());
}
return udiProductDao.insertUdiInfo(udiProductEntity);
}

@ -3,6 +3,7 @@ package com.glxp.api.service.inout;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.Constant;
@ -194,6 +195,7 @@ public class IoCheckInoutService {
IoCodeLostEntity codeLostEntity = codeLostService.findByCode(codeEntity.getCode());
if (codeLostEntity == null) {
codeLostEntity = new IoCodeLostEntity();
codeLostEntity.setId(IdUtil.getSnowflakeNextId());
codeLostEntity.setNameCode(udiEntity.getUdi());
codeLostEntity.setCode(codeEntity.getCode());
}

@ -85,7 +85,7 @@ public class SpsSyncDownloadService {
// 创建单据同步任务
public void syncOrderTask() {
public void syncOrderTask(Date lastUpdateTime) {
log.info("创建单据同步任务");
//自动创建要求被下载已完成单据任务.
@ -98,7 +98,11 @@ public class SpsSyncDownloadService {
//首次任务or上次任务结束
if (basicExportStatusEntity1 == null || BasicExportStatusEnum.COMPLETED.getCode().equals(basicExportStatusEntity1.getStatus())) {
BaseResponse<SpsSyncOrderResponse> 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<SpsSyncOrderResponse> 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<SpSyncUdiResponse> baseResponse = syncUdi(getRequest(ConstantStatus.SYNC_DI_PRODUCTS));
SpsSyncDataRequest spsSyncDataRequest = getRequest(ConstantStatus.SYNC_DI_PRODUCTS);
if (lastUpdateTime != null)
spsSyncDataRequest.setLastUpdateTime(DateUtil.formatDateTime(lastUpdateTime));
BaseResponse<SpSyncUdiResponse> baseResponse = syncUdi(spsSyncDataRequest);
SpSyncUdiResponse spSyncUdiResponse = baseResponse.getData();
if (CollUtil.isNotEmpty(spSyncUdiResponse.getProductInfoEntityList())
|| CollUtil.isNotEmpty(spSyncUdiResponse.getUdiCompanyEntities())) {

@ -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);
}
}

@ -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;

@ -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<UdiProductEntity> initUdiInfoEntitys(List<UdiProductEntity> 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())) {

@ -2,13 +2,13 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.glxp.api.dao.basic.CompanyProductRelevanceDao">
<insert id="insertCompanyProductRelevance"
<insert id="insertCompanyProductRelevance" useGeneratedKeys="true"
parameterType="com.glxp.api.entity.basic.CompanyProductRelevanceEntity">
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},

@ -165,7 +165,7 @@
<insert id="insertUdiInfo" keyProperty="id" parameterType="com.glxp.api.entity.basic.UdiProductEntity">
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},

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.inout.IoOrderDetailBizDao">
<select id="filterList" resultType="com.glxp.api.res.inout.IoOrderDetailBizResponse">
select io_order_detail_biz.*,
select io_order_detail_biz.*
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
@ -25,10 +25,12 @@
<select id="getfilterList" resultType="com.glxp.api.res.inout.IoOrderDetailBizResponse">
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
<where>
<if test="orderIdFk != null and orderIdFk != ''">
AND orderIdFk = #{orderIdFk}
@ -47,7 +49,6 @@
</select>
<select id="filterListInv" resultType="com.glxp.api.res.inout.IoOrderInvoiceResponse">
SELECT ic.*,
(select cpmctymc from basic_products where basic_products.uuid = bu.uuid) cpmctymc,
@ -73,7 +74,8 @@
</select>
<select id="selectOrderDetailBiz" resultType="com.glxp.api.entity.inout.IoOrderDetailBizEntity">
select * from io_order_detail_biz
select *
from io_order_detail_biz
<where>
<if test="orderId != null and orderId != ''">
AND orderIdFk = #{orderId}

@ -22,7 +22,7 @@
, unCheckCert, checkedCert, companyCert, manufacturerCert, productCert, basicDept
, systemConfig
, printConfig, scanChangeConfig, supCert, dbDiCompany, busChangeConfig
, udiCodeLost, udiCodeRel, orderInvoice)
, udiCodeLost, udiCodeRel, orderInvoice, orderToInSyncTime, orderSyncDlTime)
values (#{id},
#{typeBus},
#{typeScan},
@ -51,6 +51,6 @@
#{unCheckCert},
#{checkedCert}, #{companyCert}, #{manufacturerCert}, #{productCert}, #{basicDept},
#{systemConfig}, #{printConfig}, #{scanChangeConfig}, #{supCert}, #{dbDiCompany}, #{busChangeConfig},
#{udiCodeLost}, #{udiCodeRel}, #{orderInvoice})
#{udiCodeLost}, #{udiCodeRel}, #{orderInvoice}, #{orderToInSyncTime}, #{orderSyncDlTime})
</insert>
</mapper>

@ -10,7 +10,7 @@
<insert id="inserts" parameterType="com.glxp.api.entity.sync.SyncDataBustypeEntity">
insert INTO sync_data_bustypes
replace INTO sync_data_bustypes
(id, `action`, `name`, outChange, orderStatus, direct)
values

Loading…
Cancel
Save