Commit 10efd589 authored by 鲁鑫's avatar 鲁鑫

导入数据字典明细

parent 23914e8a
package com.huigou.topsun.base.dictionary.application;
/**
* @Auther: xin.lu
* @Date: 2023/12/20/10:30
* @Description:
*/
public interface DictionaryImportApplication {
static String QUERY_XML_FILE_PATH = "config/topsun/base/dictionaryImport.xml";
}
package com.huigou.topsun.base.dictionary.application.impl;
import cn.hutool.core.util.NumberUtil;
import com.huigou.data.jdbc.util.BatchSqlUpdateDetail;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.topsun.base.dictionary.application.DictionaryImportApplication;
import com.huigou.topsun.base.dictionary.domain.DictionaryImportData;
import com.huigou.uasp.bmp.common.application.BaseApplication;
import com.huigou.uasp.bmp.configuration.application.DictionaryApplication;
import com.huigou.uasp.bmp.configuration.domain.model.SysDictionary;
import com.huigou.uasp.bmp.configuration.repository.SysDictionaryRepository;
import com.huigou.uasp.tool.dataimport.application.ExcelImportInterface;
import com.huigou.util.StringUtil;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.sql.Types;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Auther: xin.lu
* @Date: 2023/12/20/10:31
* @Description:
*/
@Service("dictionaryImportApplication")
public class DictionaryImportApplicationImpl extends BaseApplication implements DictionaryImportApplication,ExcelImportInterface {
@Resource
private DictionaryApplication dictionaryApplication;
@Override
public void executeImport(String batchNumber) {
//根据导入的数据判断财务金额和资产金额是否相等,不相等则提示
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "queryTempData");
String dictionaryId = sqlExecutorDao.queryToString(queryDescriptor.getSql(), "currency");
String sql = queryDescriptor.getSqlByName("queryImpTempDatas");
List<DictionaryImportData> tmpDatas = this.sqlExecutorDao.queryToList(sql, DictionaryImportData.class, batchNumber);
if (tmpDatas == null || tmpDatas.size() == 0) {
return;
}
// 插入预算记录
BatchSqlUpdateDetail inserts = this.getBatchInsertDetail();
// 修改导入明细表
//String updateImpTempDatas = queryDescriptor.getSqlByName("updateImpTempDatas");
//BatchSqlUpdateDetail updates = BatchSqlUpdateDetail.newInstance(this.sqlExecutorDao.getDataSource(), updateImpTempDatas, null);
for (DictionaryImportData tmp : tmpDatas) {
tmp.setDictionaryId(dictionaryId);
if (!tmp.isError()) {
// 执行插入
tmp.setId(tmp.getTmpId());
tmp.setStatus("1");
inserts.setRows(tmp);
}
// 修改导入信息
//updates.setRows(tmp);
}
inserts.flush();
//updates.flush();
}
private BatchSqlUpdateDetail getBatchInsertDetail() {
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "queryTempData");
Map<String, Integer> paramType = new HashMap<String, Integer>();
return BatchSqlUpdateDetail.newInstance(this.sqlExecutorDao.getDataSource(),
queryDescriptor.getSqlByName("insertRecord"), paramType);
}
}
package com.huigou.topsun.base.dictionary.controller;
/**
* @Auther: xin.lu
* @Date: 2023/12/20/10:26
* @Description:
*/
public class DictionaryController {
}
package com.huigou.topsun.base.dictionary.domain;
import com.huigou.data.domain.model.AbstractEntity;
import com.huigou.util.StringUtil;
import lombok.Data;
/**
* @Auther: xin.lu
* @Date: 2023/12/20/10:33
* @Description:
*/
@Data
public class DictionaryImportData extends AbstractEntity {
private String value;
private String name;
private String sequence;
private String dictionaryId;
private String tmpId;
private String status;
private String message;
public boolean isError() {
if (StringUtil.isBlank(status)) {
return false;
}
if (status.equals("2")) {
return true;
}
return false;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<query-mappings>
<query name="queryTempData" label="" table="tmp_dictionary_import">
<sql-query>
select t.id from sa_dictionary t where 1=1 and t.code = ?
</sql-query>
<sql name="queryImpTempDatas">
select t.* from tmp_dictionary_import t where t.batch_number=?
</sql>
<sql name="updateImpTempDatas">
update tmp_dictionary_import t set t.status =:status,t.message=:message where t.tmp_id=:tmpId
</sql>
<sql name="insertRecord">
insert into sa_dictionarydetail
(id,
value,
name,
sequence,
dictionary_id,
status)
values
(:id,
:value,
:name,
:sequence,
:dictionary_id,
1
)
</sql>
</query>
</query-mappings>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment