增加导入导出字典
This commit is contained in:
parent
530e6e3cbc
commit
579d5a6670
@ -1,20 +1,32 @@
|
||||
package com.czlis.common.core.domain.entity;
|
||||
|
||||
import com.czlis.common.annotation.Excel;
|
||||
import com.czlis.common.core.domain.BaseEntity;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ComDict extends BaseEntity {
|
||||
@Excel(name = "字典类别")
|
||||
private String zdlb;
|
||||
@Excel(name = "编码")
|
||||
private String zddh;
|
||||
@Excel(name = "名称")
|
||||
private String zdmc;
|
||||
@Excel(name = "简拼")
|
||||
private String zjf;
|
||||
@Excel(name = "是否默认", readConverterExp = "Y=是,N=否")
|
||||
private String zdbz;
|
||||
@Excel(name = "机构编码")
|
||||
private String yljg;
|
||||
@Excel(name = "备注")
|
||||
private String bz;
|
||||
@Excel(name = "作废标识", readConverterExp = "1=是,0=否")
|
||||
private String userflag;
|
||||
|
||||
}
|
||||
|
||||
@ -5,13 +5,16 @@ import com.czlis.common.core.controller.BaseController;
|
||||
import com.czlis.common.core.domain.Result;
|
||||
import com.czlis.common.core.page.TableDataInfo;
|
||||
import com.czlis.common.core.domain.entity.ComDict;
|
||||
import com.czlis.common.utils.poi.ExcelUtil;
|
||||
import com.czlis.liswork.service.ComDictService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -61,5 +64,27 @@ public class DictController extends BaseController {
|
||||
log.info("调用修改字典接口{}",comDict);
|
||||
return comDictService.updateComDict(comDict);
|
||||
}
|
||||
@ApiOperation("导出字典")
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response,ComDict comDict) {
|
||||
List<ComDict> list = comDictService.getComDictList(comDict);
|
||||
ExcelUtil<ComDict> util = new ExcelUtil<ComDict>(ComDict.class);
|
||||
util.exportExcel(response, list, "字典数据");
|
||||
}
|
||||
|
||||
@GetMapping("/importTemplate")
|
||||
public void importTemplate(HttpServletResponse response){
|
||||
ExcelUtil<ComDict> util = new ExcelUtil<>(ComDict.class);
|
||||
util.exportExcel(response);
|
||||
}
|
||||
@ApiOperation("导入字典")
|
||||
@PostMapping("/importData")
|
||||
public Result importData(@RequestBody MultipartFile file,boolean updateDlCeshi) throws Exception{
|
||||
|
||||
ExcelUtil<ComDict> util = new ExcelUtil<ComDict>(ComDict.class);
|
||||
List<ComDict> comDictList = util.importExcel(file.getInputStream());
|
||||
log.info("调用导入字典{}",comDictList);
|
||||
return comDictService.insertComDictList(comDictList,updateDlCeshi);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -13,5 +13,10 @@ public interface ComDictMapper {
|
||||
int insertComDict(ComDict comDict);
|
||||
int delComDict(ComDict comDict);
|
||||
int updateComDict(ComDict comDict);
|
||||
|
||||
//根据主键判断是否存在数据
|
||||
int getCountById(String zdlb, String zddh) ;
|
||||
//根据编号查名称
|
||||
String getNameById(String zdlb,String zdmc);
|
||||
//根据名称查编号
|
||||
String getIdByName(String zdlb,String zdmc);
|
||||
}
|
||||
|
||||
@ -16,4 +16,5 @@ public interface ComDictService {
|
||||
|
||||
Result updateComDict(ComDict comDict);
|
||||
|
||||
Result insertComDictList(List<ComDict> comDictList,boolean updateDlCeshi);
|
||||
}
|
||||
|
||||
@ -2,12 +2,16 @@ package com.czlis.liswork.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.extra.pinyin.PinyinUtil;
|
||||
import com.czlis.common.constant.HttpStatus;
|
||||
import com.czlis.common.core.domain.Result;
|
||||
import com.czlis.common.exception.ServiceException;
|
||||
import com.czlis.common.utils.ComDictUtils;
|
||||
import com.czlis.common.utils.StringUtils;
|
||||
import com.czlis.liswork.mapper.dict.ComDictMapper;
|
||||
import com.czlis.common.core.domain.entity.ComDict;
|
||||
import com.czlis.liswork.service.ComDictService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.hibernate.validator.constraints.ru.INN;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@ -26,8 +30,6 @@ public class ComDictServiceImpl implements ComDictService {
|
||||
@Autowired
|
||||
private ComDictMapper comDictMapper;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public List<ComDict> getComDictList(ComDict comDict) {
|
||||
//先从redis缓存中获取,如果没有,就从数据库取
|
||||
@ -50,7 +52,7 @@ public class ComDictServiceImpl implements ComDictService {
|
||||
pinyin = pinyin.substring(0, 9);
|
||||
}
|
||||
comDict.setZjf(pinyin);
|
||||
comDict.setZdbz("Y");
|
||||
comDict.setZdbz("N");
|
||||
int row = comDictMapper.insertComDict(comDict);
|
||||
if(row > 0){
|
||||
List<ComDict> comDictList = comDictMapper.getComDictList(comDict);
|
||||
@ -59,6 +61,61 @@ public class ComDictServiceImpl implements ComDictService {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public Result insertComDictList(List<ComDict> comDictList,boolean updateDlCeshi) {
|
||||
int row = 0, fail = 0,row0=0;
|
||||
String zdlb = "", pinyin = "",zddh="",yljg="",zdbz="";
|
||||
//判断传入的List 是否为空
|
||||
if (StringUtils.isNull(comDictList) || comDictList.size() == 0) {
|
||||
return new Result("-1","导入数据不能为空!");
|
||||
}
|
||||
//定义失败条数,接收导入失败数据量
|
||||
int failureNum = 0;
|
||||
//遍历导入数据,并且插入数据库。
|
||||
for (ComDict comDict : comDictList) {
|
||||
zdlb = comDict.getZdlb();
|
||||
zddh = comDict.getZddh();
|
||||
//是否覆盖数据,不覆盖跳过
|
||||
row0 = comDictMapper.getCountById(zdlb,zddh);
|
||||
if(row0 > 0 && updateDlCeshi==false) continue;
|
||||
|
||||
pinyin = PinyinUtil.getFirstLetter(comDict.getZdmc(), ""); //拼音首字母
|
||||
if (pinyin.length() >= 9) {
|
||||
pinyin = pinyin.substring(0, 9);
|
||||
}
|
||||
comDict.setZjf(pinyin);
|
||||
|
||||
yljg = comDict.getYljg();
|
||||
zdbz = comDict.getZdbz();
|
||||
if(yljg == null || yljg.equals("")) comDict.setYljg("1");
|
||||
if(zdbz == null || zdbz.equals("")) comDict.setZdbz("N");
|
||||
if (row0>0) {
|
||||
row = comDictMapper.updateComDict(comDict);
|
||||
}
|
||||
else{
|
||||
row = comDictMapper.insertComDict(comDict);
|
||||
}
|
||||
if (row > 0) failureNum++;
|
||||
}
|
||||
if (failureNum > 0) {
|
||||
ComDict comDict0=new ComDict();
|
||||
comDict0.setZdlb(zdlb);
|
||||
List<ComDict> comDictList1 = comDictMapper.getComDictList(comDict0);
|
||||
ComDictUtils.setDictCache(comDict0.getZdlb(),comDictList1);
|
||||
if (failureNum == comDictList.size()) {
|
||||
return new Result("0", "数据已全部导入成功!共 " + comDictList.size() + " 条");
|
||||
} else {
|
||||
fail = comDictList.size() - failureNum;
|
||||
return new Result("0", "数据部分导入成功!成功 " + failureNum + " 条,失败 " + fail + " 条");
|
||||
}
|
||||
} else {
|
||||
return new Result("-1", "导入失败!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public Result delComDict(ComDict comDict) {
|
||||
|
||||
@ -24,6 +24,15 @@
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
<select id="getCountById" resultType="Long">
|
||||
select count(1) from com_dict where zdlb = #{zdlb} and zddh = #{zddh}
|
||||
</select>
|
||||
<select id="getNameById" resultType="String">
|
||||
select zdmc from com_dict where zdlb = #{zdlb} and zddh = #{zddh}
|
||||
</select>
|
||||
<select id="getIdByName" resultType="String">
|
||||
select zddh from com_dict where zdlb = #{zdlb} and zdmc = #{zdmc}
|
||||
</select>
|
||||
|
||||
<insert id="insertComDict" parameterType="com.czlis.common.core.domain.entity.ComDict">
|
||||
insert into com_dict(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user