Commit 3b59d4e7 authored by 李家智's avatar 李家智
Browse files

fix bugs

parent 923f246b
package com.ibeetl.admin.console.service; package com.ibeetl.admin.console.service;
import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import org.beetl.sql.core.engine.PageQuery; import org.beetl.sql.core.engine.PageQuery;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -8,9 +11,11 @@ import org.springframework.stereotype.Service; ...@@ -8,9 +11,11 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.ibeetl.admin.console.dao.DictConsoleDao; import com.ibeetl.admin.console.dao.DictConsoleDao;
import com.ibeetl.admin.console.web.dto.DictExcelImportData;
import com.ibeetl.admin.core.entity.CoreDict; import com.ibeetl.admin.core.entity.CoreDict;
import com.ibeetl.admin.core.entity.CoreUser; import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.service.BaseService; import com.ibeetl.admin.core.service.BaseService;
import com.ibeetl.admin.core.util.ExcelError;
import com.ibeetl.admin.core.util.PlatformException; import com.ibeetl.admin.core.util.PlatformException;
/** /**
...@@ -43,10 +48,62 @@ public class DictConsoleService extends BaseService<CoreDict>{ ...@@ -43,10 +48,62 @@ public class DictConsoleService extends BaseService<CoreDict>{
queryListAfter(ret.getList()); queryListAfter(ret.getList());
return ret.getList(); return ret.getList();
}
/**
* 参考:dict_mapping.xml
* @param list
* @return
*/
public void batchInsert(List<DictExcelImportData> list) {
int dataStartRow = 3;
final Map<Integer,DictExcelImportData> map = new HashMap<>();
list.forEach((item)->map.put(item.getExcelId(), item));
//逐个按照顺序导入
for(DictExcelImportData item:list) {
CoreDict dict = new CoreDict();
dict.setName(item.getName());
dict.setRemark(item.getRemark());
dict.setType(item.getType());
dict.setTypeName(item.getTypeName());
dict.setValue(item.getValue());
//导入前先查找是否有此值
CoreDict template = new CoreDict();
template.setType(dict.getType());
template.setValue(dict.getValue());
CoreDict dbDict = dictDao.templateOne(template);
if(dbDict!=null) {
int row = item.getExcelId()+dataStartRow;
throwImporError(row,0,"字典数据已经存在");
}
//设置父字典
if(item.getParentExcelId()!=0) {
DictExcelImportData parentItem = map.get(item.getParentExcelId());
if(parentItem==null) {
//硬编码,TODO,用reader缺少校验,替换手写导入
int row = item.getExcelId()+dataStartRow;
throwImporError(row,6,"未找到父字典");
}
if(parentItem.getId()==null) {
int row = item.getExcelId()+dataStartRow;
throwImporError(row,6,"父字典未被导入,请先导入父字典");
}
dict.setParent(parentItem.getId());
}
dict.setCreateTime(new Date());
dictDao.insert(dict);
item.setId(dict.getId());
}
} }
public void batchInsert(List<CoreDict> list) { private void throwImporError(int row,int col,String msg) {
dictDao.insertBatch(list); ExcelError error = new ExcelError();
error.setRow(row);
error.setCol(col);
error.setMsg(msg);
throw new PlatformException(error.toString());
} }
......
...@@ -13,7 +13,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -13,7 +13,7 @@ import org.springframework.transaction.annotation.Transactional;
import com.ibeetl.admin.console.dao.UserConsoleDao; import com.ibeetl.admin.console.dao.UserConsoleDao;
import com.ibeetl.admin.console.exception.DeletedException; import com.ibeetl.admin.console.exception.DeletedException;
import com.ibeetl.admin.console.exception.NoResourceException; import com.ibeetl.admin.console.exception.NoResourceException;
import com.ibeetl.admin.console.web.dto.UserExcelData; import com.ibeetl.admin.console.web.dto.UserExcelExportData;
import com.ibeetl.admin.console.web.query.UserRoleQuery; import com.ibeetl.admin.console.web.query.UserRoleQuery;
import com.ibeetl.admin.core.conf.PasswordConfig.PasswordEncryptService; import com.ibeetl.admin.core.conf.PasswordConfig.PasswordEncryptService;
import com.ibeetl.admin.core.entity.CoreDict; import com.ibeetl.admin.core.entity.CoreDict;
...@@ -174,13 +174,13 @@ public class UserConsoleService extends BaseService<CoreUser> { ...@@ -174,13 +174,13 @@ public class UserConsoleService extends BaseService<CoreUser> {
sqlManager.insert(userRole); sqlManager.insert(userRole);
} }
public List<UserExcelData> queryExcel(PageQuery<CoreUser> query) { public List<UserExcelExportData> queryExcel(PageQuery<CoreUser> query) {
PageQuery<CoreUser> ret = userDao.queryByCondtion(query); PageQuery<CoreUser> ret = userDao.queryByCondtion(query);
List<CoreUser> list = ret.getList(); List<CoreUser> list = ret.getList();
OrgItem orgRoot = platformService.buildOrg(); OrgItem orgRoot = platformService.buildOrg();
List<UserExcelData> items = new ArrayList<>(); List<UserExcelExportData> items = new ArrayList<>();
for(CoreUser user:list) { for(CoreUser user:list) {
UserExcelData userItem = new UserExcelData(); UserExcelExportData userItem = new UserExcelExportData();
userItem.setCode(user.getCode()); userItem.setCode(user.getCode());
userItem.setId(user.getId()); userItem.setId(user.getId());
userItem.setName(user.getName()); userItem.setName(user.getName());
......
...@@ -30,6 +30,7 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -30,6 +30,7 @@ import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import com.ibeetl.admin.console.service.DictConsoleService; import com.ibeetl.admin.console.service.DictConsoleService;
import com.ibeetl.admin.console.web.dto.DictExcelImportData;
import com.ibeetl.admin.console.web.query.CoreDictQuery; import com.ibeetl.admin.console.web.query.CoreDictQuery;
import com.ibeetl.admin.console.web.query.UserQuery; import com.ibeetl.admin.console.web.query.UserQuery;
import com.ibeetl.admin.core.annotation.Function; import com.ibeetl.admin.core.annotation.Function;
...@@ -177,12 +178,18 @@ public class DictConsoleController{ ...@@ -177,12 +178,18 @@ public class DictConsoleController{
XLSReader mainReader = ReaderBuilder.buildFromXML( inputXML ); XLSReader mainReader = ReaderBuilder.buildFromXML( inputXML );
InputStream inputXLS = ins; InputStream inputXLS = ins;
List<CoreDict> dicts = new ArrayList<CoreDict>(); List<DictExcelImportData> dicts = new ArrayList<DictExcelImportData>();
Map beans = new HashMap(); Map beans = new HashMap();
beans.put("list", dicts); beans.put("list", dicts);
XLSReadStatus readStatus = mainReader.read( inputXLS, beans); XLSReadStatus readStatus = mainReader.read( inputXLS, beans);
System.out.println(dicts); // this.dictService.batchInsert(dicts);//TODO,为啥这里抛的错误,layui对话框不能正确处理http 500错误,改成下面方式
return JsonResult.success(); // return JsonResult.success();
try {
this.dictService.batchInsert(dicts);
return JsonResult.success();
}catch(Exception ex) {
return JsonResult.failMessage(ex.getMessage());
}
} }
......
...@@ -26,7 +26,7 @@ import org.springframework.web.servlet.ModelAndView; ...@@ -26,7 +26,7 @@ import org.springframework.web.servlet.ModelAndView;
import com.ibeetl.admin.console.service.OrgConsoleService; import com.ibeetl.admin.console.service.OrgConsoleService;
import com.ibeetl.admin.console.service.RoleConsoleService; import com.ibeetl.admin.console.service.RoleConsoleService;
import com.ibeetl.admin.console.service.UserConsoleService; import com.ibeetl.admin.console.service.UserConsoleService;
import com.ibeetl.admin.console.web.dto.UserExcelData; import com.ibeetl.admin.console.web.dto.UserExcelExportData;
import com.ibeetl.admin.console.web.query.UserQuery; import com.ibeetl.admin.console.web.query.UserQuery;
import com.ibeetl.admin.console.web.query.UserRoleQuery; import com.ibeetl.admin.console.web.query.UserRoleQuery;
import com.ibeetl.admin.core.annotation.Function; import com.ibeetl.admin.core.annotation.Function;
...@@ -288,7 +288,7 @@ public class UserConsoleController { ...@@ -288,7 +288,7 @@ public class UserConsoleController {
page.setPageSize(Integer.MAX_VALUE); page.setPageSize(Integer.MAX_VALUE);
page.setPageNumber(1); page.setPageNumber(1);
page.setTotalRow(Integer.MAX_VALUE); page.setTotalRow(Integer.MAX_VALUE);
List<UserExcelData> users =userConsoleService.queryExcel(page); List<UserExcelExportData> users =userConsoleService.queryExcel(page);
try(InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(excelTemplate)) { try(InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(excelTemplate)) {
if(is==null) { if(is==null) {
throw new PlatformException("模板资源不存在:"+excelTemplate); throw new PlatformException("模板资源不存在:"+excelTemplate);
......
package com.ibeetl.admin.console.web.dto;
import com.ibeetl.admin.core.entity.CoreDict;
/**
* 字典数据导入,参考 dict_mapping.xml
* @author xiandafu
*
*/
public class DictExcelImportData extends CoreDict {
private Integer excelId;
private Integer parentExcelId;
public Integer getExcelId() {
return excelId;
}
public void setExcelId(Integer excelId) {
this.excelId = excelId;
}
public Integer getParentExcelId() {
return parentExcelId;
}
public void setParentExcelId(Integer parentExcelId) {
this.parentExcelId = parentExcelId;
}
}
...@@ -7,10 +7,10 @@ import com.ibeetl.admin.core.annotation.Dict; ...@@ -7,10 +7,10 @@ import com.ibeetl.admin.core.annotation.Dict;
/** /**
* excel导出需要的模板数据 * excel导出需要的模板数据
* @author Administrator * @author xiandafu
* *
*/ */
public class UserExcelData { public class UserExcelExportData {
protected Long id; protected Long id;
private String code; private String code;
private String name; private String name;
......
...@@ -4,14 +4,19 @@ ...@@ -4,14 +4,19 @@
<section startRow="0" endRow="2"> <section startRow="0" endRow="2">
</section> </section>
<loop startRow="3" endRow="3" items="list" var="dict" <loop startRow="3" endRow="3" items="list" var="dict"
varType="com.ibeetl.admin.core.entity.CoreDict"> varType="com.ibeetl.admin.console.web.dto.DictExcelImportData">
<section startRow="3" endRow="3"> <section startRow="3" endRow="3">
<mapping row="3" col="0">dict.excelId</mapping>
<mapping row="3" col="1">dict.name</mapping> <mapping row="3" col="1">dict.name</mapping>
<mapping row="3" col="2">dict.value</mapping> <mapping row="3" col="2">dict.value</mapping>
<mapping row="3" col="3">dict.typeName</mapping>
<mapping row="3" col="4">dict.type</mapping>
<mapping row="3" col="5">dict.parentExcelId</mapping>
<mapping row="3" col="6">dict.remark</mapping>
</section> </section>
<loopbreakcondition> <loopbreakcondition>
<rowcheck offset="0"> <rowcheck offset="0">
<cellcheck offset="0">结束</cellcheck> <cellcheck offset="1"></cellcheck>
</rowcheck> </rowcheck>
</loopbreakcondition> </loopbreakcondition>
</loop> </loop>
......
package com.ibeetl.admin.core.util;
public class ExcelError {
Integer row;
Integer col;
String cel;
String msg;
public Integer getRow() {
return row;
}
public void setRow(Integer row) {
this.row = row;
}
public Integer getCol() {
return col;
}
public void setCol(Integer col) {
this.col = col;
}
public String getCel() {
return cel;
}
public void setCel(String cel) {
this.cel = cel;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
@Override
public String toString() {
return "ExcelError [row=" + row + ", col=" + col + ", cel=" + cel + ", msg=" + msg + "]";
}
}
findAllList findAllList
=== ===
select * from core_DICT where del_flag = 0 select * from core_dict where del_flag = 0
@if(!isEmpty(type)){ @if(!isEmpty(type)){
and type = #type# and type = #type#
@} @}
......
...@@ -27,16 +27,17 @@ layui.use('upload', function(){ ...@@ -27,16 +27,17 @@ layui.use('upload', function(){
,accept: '${fileType!"file"}' //默认所有文件都允许 ,accept: '${fileType!"file"}' //默认所有文件都允许
,url: '${uploadUrl}' ,url: '${uploadUrl}'
,done: function(res){ ,done: function(res){
debugger;
if(res.code==0){ if(res.code==0){
Common.openConfirm("上传成功,是否继续上传?",null,function(){ Common.openConfirm("上传成功,是否继续上传?",null,function(){
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引 var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭 parent.layer.close(index); //再执行关闭
}) })
}else{
Common.alert(res.msg)
} }
} }
,error: function(){
Common.error("系统错误,无法访问服务器")
}
}); });
}); });
......
Supports Markdown
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