增加导入导出字典
This commit is contained in:
parent
530e6e3cbc
commit
579d5a6670
@ -1,20 +1,32 @@
|
|||||||
package com.czlis.common.core.domain.entity;
|
package com.czlis.common.core.domain.entity;
|
||||||
|
|
||||||
|
import com.czlis.common.annotation.Excel;
|
||||||
import com.czlis.common.core.domain.BaseEntity;
|
import com.czlis.common.core.domain.BaseEntity;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class ComDict extends BaseEntity {
|
public class ComDict extends BaseEntity {
|
||||||
|
@Excel(name = "字典类别")
|
||||||
private String zdlb;
|
private String zdlb;
|
||||||
|
@Excel(name = "编码")
|
||||||
private String zddh;
|
private String zddh;
|
||||||
|
@Excel(name = "名称")
|
||||||
private String zdmc;
|
private String zdmc;
|
||||||
|
@Excel(name = "简拼")
|
||||||
private String zjf;
|
private String zjf;
|
||||||
|
@Excel(name = "是否默认", readConverterExp = "Y=是,N=否")
|
||||||
private String zdbz;
|
private String zdbz;
|
||||||
|
@Excel(name = "机构编码")
|
||||||
private String yljg;
|
private String yljg;
|
||||||
|
@Excel(name = "备注")
|
||||||
private String bz;
|
private String bz;
|
||||||
|
@Excel(name = "作废标识", readConverterExp = "1=是,0=否")
|
||||||
private String userflag;
|
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.domain.Result;
|
||||||
import com.czlis.common.core.page.TableDataInfo;
|
import com.czlis.common.core.page.TableDataInfo;
|
||||||
import com.czlis.common.core.domain.entity.ComDict;
|
import com.czlis.common.core.domain.entity.ComDict;
|
||||||
|
import com.czlis.common.utils.poi.ExcelUtil;
|
||||||
import com.czlis.liswork.service.ComDictService;
|
import com.czlis.liswork.service.ComDictService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -61,5 +64,27 @@ public class DictController extends BaseController {
|
|||||||
log.info("调用修改字典接口{}",comDict);
|
log.info("调用修改字典接口{}",comDict);
|
||||||
return comDictService.updateComDict(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 insertComDict(ComDict comDict);
|
||||||
int delComDict(ComDict comDict);
|
int delComDict(ComDict comDict);
|
||||||
int updateComDict(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 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 cn.hutool.extra.pinyin.PinyinUtil;
|
||||||
|
import com.czlis.common.constant.HttpStatus;
|
||||||
import com.czlis.common.core.domain.Result;
|
import com.czlis.common.core.domain.Result;
|
||||||
|
import com.czlis.common.exception.ServiceException;
|
||||||
import com.czlis.common.utils.ComDictUtils;
|
import com.czlis.common.utils.ComDictUtils;
|
||||||
|
import com.czlis.common.utils.StringUtils;
|
||||||
import com.czlis.liswork.mapper.dict.ComDictMapper;
|
import com.czlis.liswork.mapper.dict.ComDictMapper;
|
||||||
import com.czlis.common.core.domain.entity.ComDict;
|
import com.czlis.common.core.domain.entity.ComDict;
|
||||||
import com.czlis.liswork.service.ComDictService;
|
import com.czlis.liswork.service.ComDictService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.hibernate.validator.constraints.ru.INN;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@ -26,8 +30,6 @@ public class ComDictServiceImpl implements ComDictService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ComDictMapper comDictMapper;
|
private ComDictMapper comDictMapper;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ComDict> getComDictList(ComDict comDict) {
|
public List<ComDict> getComDictList(ComDict comDict) {
|
||||||
//先从redis缓存中获取,如果没有,就从数据库取
|
//先从redis缓存中获取,如果没有,就从数据库取
|
||||||
@ -50,7 +52,7 @@ public class ComDictServiceImpl implements ComDictService {
|
|||||||
pinyin = pinyin.substring(0, 9);
|
pinyin = pinyin.substring(0, 9);
|
||||||
}
|
}
|
||||||
comDict.setZjf(pinyin);
|
comDict.setZjf(pinyin);
|
||||||
comDict.setZdbz("Y");
|
comDict.setZdbz("N");
|
||||||
int row = comDictMapper.insertComDict(comDict);
|
int row = comDictMapper.insertComDict(comDict);
|
||||||
if(row > 0){
|
if(row > 0){
|
||||||
List<ComDict> comDictList = comDictMapper.getComDictList(comDict);
|
List<ComDict> comDictList = comDictMapper.getComDictList(comDict);
|
||||||
@ -59,6 +61,61 @@ public class ComDictServiceImpl implements ComDictService {
|
|||||||
return null;
|
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)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public Result delComDict(ComDict comDict) {
|
public Result delComDict(ComDict comDict) {
|
||||||
|
|||||||
@ -24,6 +24,15 @@
|
|||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</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 id="insertComDict" parameterType="com.czlis.common.core.domain.entity.ComDict">
|
||||||
insert into com_dict(
|
insert into com_dict(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user