导入导出接口调整及文档优化

master
liuqingkun 3 years ago
parent 56575915c2
commit 61a9e06efd
  1. 10
      doc/api.md
  2. 33
      src/main/java/org/springblade/modules/business/controller/AppealRegController.java
  3. 31
      src/main/java/org/springblade/modules/business/controller/ReportController.java
  4. 5
      src/main/java/org/springblade/modules/business/service/IAppealRegService.java
  5. 3
      src/main/java/org/springblade/modules/business/service/ILargeScreenService.java
  6. 115
      src/main/java/org/springblade/modules/business/service/impl/AppealRegServiceImpl.java
  7. 98
      src/main/java/org/springblade/modules/business/service/impl/LargeScreenServiceImpl.java

@ -395,6 +395,16 @@
}
```
### 5 导入诉求列表
- 请求地址
`GET` `/blade-business/appealReg/importData`
- 请求参数
|参数名称|参数类型|允许为空|参数说明|
| ---- | ---- | ---- | ---- |
| file | file | N | 诉求状态 |
# 诉求调解
### 1. 调解记录列表(点击"调解记录")
- 请求地址

@ -21,13 +21,18 @@ import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tenant.annotation.TenantDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.modules.business.excel.AppealExcel;
import org.springblade.modules.business.service.IAppealRegService;
import org.springblade.modules.business.vo.AppealListVO;
import org.springblade.modules.business.vo.AppealRegVO;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@ -69,6 +74,17 @@ public class AppealRegController extends BladeController {
return R.data(vos);
}
/**
* 导入
*/
@PostMapping("importData")
public R importAppeal(MultipartFile file) {
List<AppealExcel> excels = ExcelUtil.read(file, AppealExcel.class);
regService.importAppeal(excels);
return R.success("操作成功");
}
/**
* 导出
*
@ -78,22 +94,11 @@ public class AppealRegController extends BladeController {
* @param appealType 诉求类型
* @param windowId 处理窗口ID
* @param username 代表姓名
* @return
*/
@GetMapping("/export")
public R export(String appealStatus, String startTime, String endTime, String appealType, String windowId, String username) {
return null;
}
/**
* 导出
*
* @param file 诉求状态
* @return
*/
@GetMapping("/importData")
public R importData(String file) {
return null;
public void exportAppeal(HttpServletResponse response, String appealStatus, String startTime, String endTime, String appealType, String windowId, String username) {
List<AppealExcel> appealExcels = regService.exportAppeal(appealStatus, startTime, endTime, appealType, windowId, username);
ExcelUtil.export(response, "纠纷数据" + DateUtil.time(), "纠纷数据表", appealExcels, AppealExcel.class);
}
/**

@ -16,34 +16,21 @@
*/
package org.springblade.modules.business.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSort;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tenant.annotation.TenantDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.modules.business.excel.AppealExcel;
import org.springblade.modules.business.service.ILargeScreenService;
import org.springblade.modules.business.vo.AppealListVO;
import org.springblade.modules.system.excel.UserExcel;
import org.springblade.modules.system.excel.UserImporter;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
/**
* 控制器
@ -140,22 +127,4 @@ public class ReportController extends BladeController {
return R.data(largeScreenService.getAppealHot());
}
/**
* 导入
*/
@PostMapping("importAppeal")
public R importAppeal(MultipartFile file) {
List<AppealExcel> excels = ExcelUtil.read(file, AppealExcel.class);
largeScreenService.importAppeal(excels);
return R.success("操作成功");
}
/**
* 导出
*/
@GetMapping("/exportAppeal")
public void exportAppeal(HttpServletResponse response, String appealStatus, String startTime, String endTime, String appealType, String windowId, String username) {
List<AppealExcel> appealExcels = largeScreenService.exportAppeal(appealStatus, startTime, endTime, appealType, windowId, username);
ExcelUtil.export(response, "纠纷数据" + DateUtil.time(), "纠纷数据表", appealExcels, AppealExcel.class);
}
}

@ -20,6 +20,7 @@ import org.apache.ibatis.annotations.Param;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
import org.springblade.modules.business.entity.AppealReg;
import org.springblade.modules.business.excel.AppealExcel;
import org.springblade.modules.business.vo.AppealListVO;
import org.springblade.modules.business.vo.AppealRegVO;
import org.springframework.web.bind.annotation.GetMapping;
@ -68,4 +69,8 @@ public interface IAppealRegService extends BaseService<AppealReg> {
* @return
*/
AppealReg getLastReg(@Param("appealId") String appealId);
void importAppeal(List<AppealExcel> excels);
List<AppealExcel> exportAppeal(String appealStatus, String startTime, String endTime, String appealType, String windowId, String username);
}

@ -54,7 +54,4 @@ public interface ILargeScreenService {
IPage<Appeal> getImmediateList(String streetId, IPage<Appeal> page);
void importAppeal(List<AppealExcel> excels);
List<AppealExcel> exportAppeal(String appealStatus, String startTime, String endTime, String appealType, String windowId, String username);
}

@ -16,8 +16,12 @@
*/
package org.springblade.modules.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springblade.common.constant.BusinessConstant;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
@ -26,17 +30,28 @@ import org.springblade.core.tool.utils.Func;
import org.springblade.modules.business.entity.Appeal;
import org.springblade.modules.business.entity.AppealReg;
import org.springblade.modules.business.entity.AppealVisitor;
import org.springblade.modules.business.excel.AppealExcel;
import org.springblade.modules.business.mapper.AppealMapper;
import org.springblade.modules.business.mapper.AppealRegMapper;
import org.springblade.modules.business.mapper.AppealVisitorMapper;
import org.springblade.modules.business.service.IAppealRegService;
import org.springblade.modules.business.service.IAppealService;
import org.springblade.modules.business.service.IAppealVisitorService;
import org.springblade.modules.business.vo.AppealListVO;
import org.springblade.modules.business.vo.AppealRegVO;
import org.springblade.modules.system.entity.DictBiz;
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.service.IDictBizService;
import org.springblade.modules.system.service.IUserService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* 服务实现类
@ -51,6 +66,10 @@ public class AppealRegServiceImpl extends BaseServiceImpl<AppealRegMapper, Appea
private final AppealMapper appealMapper;
private final AppealVisitorMapper visitorMapper;
private final IAppealService appealService;
private final IUserService userService;
private final IDictBizService dictBizService;
@Override
public List<AppealListVO> getList(String appealStatus, String startTime, String endTime, String appealType, String windowId, String username) {
return baseMapper.getList(appealStatus, startTime, endTime, appealType, windowId, username);
@ -126,4 +145,100 @@ public class AppealRegServiceImpl extends BaseServiceImpl<AppealRegMapper, Appea
public AppealReg getLastReg(String appealId) {
return baseMapper.getLastReg(appealId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void importAppeal(List<AppealExcel> excels) {
if (CollectionUtils.isNotEmpty(excels)) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
List<Appeal> appeals = new ArrayList<>();
List<AppealVisitor> visitors = new ArrayList<>();
excels.forEach(excel -> {
if (StringUtils.isNotBlank(excel.getDisputeName())) {
Appeal appeal = Objects.requireNonNull(BeanUtil.copy(excel, Appeal.class));
appeal.setId(IdWorker.getId());
// 所属街道字典id
if (StringUtils.isNotBlank(excel.getStreetId())) {
List<DictBiz> street = dictBizService.list(new LambdaQueryWrapper<DictBiz>().eq(DictBiz::getCode, "street").like(DictBiz::getDictValue, excel.getStreetId()));
if (CollectionUtils.isNotEmpty(street)) {
appeal.setStreetId(street.get(0).getId());
}
}
// 纠纷字典id
if (StringUtils.isNotBlank(appeal.getDisputeName())) {
List<DictBiz> values = dictBizService.list(new LambdaQueryWrapper<DictBiz>().eq(DictBiz::getCode, "dispute_type").like(DictBiz::getDictValue, appeal.getDisputeName()));
if (CollectionUtils.isNotEmpty(values)) {
appeal.setDisputeId(values.get(0).getId());
}
}
// 数据录入时, 处理部门
if (StringUtils.isNotBlank(excel.getHandleDept())) {
List<User> users = userService.list(new LambdaQueryWrapper<User>().like(User::getName, excel.getHandleDept()));
if (CollectionUtils.isNotEmpty(users)) {
appeal.setHandleDept(users.get(0).getId());
}
}
// 纠纷等级(事件等级), 0:简单, 1:一般, 2:重大, 3:疑难
if (StringUtils.isNotBlank(excel.getDisputeLevel())) {
if ("简单".equals(excel.getDisputeLevel())) {
appeal.setDisputeLevel(0);
} else if ("一般".equals(excel.getDisputeLevel())) {
appeal.setDisputeLevel(1);
} else if ("重大".equals(excel.getDisputeLevel())) {
appeal.setDisputeLevel(2);
} else if ("疑难".equals(excel.getDisputeLevel())) {
appeal.setDisputeLevel(3);
}
}
// 首次登记时间
if (StringUtils.isNotBlank(excel.getFirstRegTime())) {
try {
appeal.setFirstRegTime(dateFormat.parse(excel.getFirstRegTime()));
} catch (ParseException e) {
e.printStackTrace();
}
}
// 诉求状态(办理状态)
if (StringUtils.isNotBlank(excel.getStatus())) {
if ("正在处理".equals(excel.getStatus())) {
appeal.setStatus(1);
} else if ("达成协议".equals(excel.getStatus())) {
appeal.setStatus(2);
} else if ("调解成功".equals(excel.getStatus()) || "完成归档".equals(excel.getStatus())) {
appeal.setStatus(3);
}
}
// 是否越级上报
appeal.setSkipGrant(0);
// 数据来源 0:系统添加, 1:数据导入
appeal.setSourceType(BusinessConstant.SOURCE_TYPE_IMPORT);
// 上访人员
if (StringUtils.isNotBlank(excel.getUsername())) {
AppealVisitor visitor = new AppealVisitor();
visitor.setAppealId(appeal.getId());
visitor.setSort(1);
visitor.setUsername(excel.getUsername());
visitors.add(visitor);
}
appeals.add(appeal);
}
});
appealService.saveBatch(appeals);
visitorService.saveBatch(visitors);
}
}
@Override
public List<AppealExcel> exportAppeal(String appealStatus, String startTime, String endTime, String appealType, String windowId, String username) {
List<AppealExcel> excels = appealMapper.exportAppeal(appealStatus, startTime, endTime, appealType, windowId, username);
return excels;
}
}

@ -64,13 +64,10 @@ public class LargeScreenServiceImpl implements ILargeScreenService {
private final IAppealService appealService;
private final AppealMapper appealMapper;
private final IAppealVisitorService appealVisitorService;
private final IUserService userService;
private final IDictBizService dictBizService;
@Override
public Map<String, Object> getMediateFinish() {
@ -351,101 +348,6 @@ public class LargeScreenServiceImpl implements ILargeScreenService {
return iPage;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void importAppeal(List<AppealExcel> excels) {
if (CollectionUtils.isNotEmpty(excels)) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
List<Appeal> appeals = new ArrayList<>();
List<AppealVisitor> visitors = new ArrayList<>();
excels.forEach(excel -> {
if (StringUtils.isNotBlank(excel.getDisputeName())) {
Appeal appeal = Objects.requireNonNull(BeanUtil.copy(excel, Appeal.class));
appeal.setId(IdWorker.getId());
// 所属街道字典id
if (StringUtils.isNotBlank(excel.getStreetId())) {
List<DictBiz> street = dictBizService.list(new LambdaQueryWrapper<DictBiz>().eq(DictBiz::getCode, "street").like(DictBiz::getDictValue, excel.getStreetId()));
if (CollectionUtils.isNotEmpty(street)) {
appeal.setStreetId(street.get(0).getId());
}
}
// 纠纷字典id
if (StringUtils.isNotBlank(appeal.getDisputeName())) {
List<DictBiz> values = dictBizService.list(new LambdaQueryWrapper<DictBiz>().eq(DictBiz::getCode, "dispute_type").like(DictBiz::getDictValue, appeal.getDisputeName()));
if (CollectionUtils.isNotEmpty(values)) {
appeal.setDisputeId(values.get(0).getId());
}
}
// 数据录入时, 处理部门
if (StringUtils.isNotBlank(excel.getHandleDept())) {
List<User> users = userService.list(new LambdaQueryWrapper<User>().like(User::getName, excel.getHandleDept()));
if (CollectionUtils.isNotEmpty(users)) {
appeal.setHandleDept(users.get(0).getId());
}
}
// 纠纷等级(事件等级), 0:简单, 1:一般, 2:重大, 3:疑难
if (StringUtils.isNotBlank(excel.getDisputeLevel())) {
if ("简单".equals(excel.getDisputeLevel())) {
appeal.setDisputeLevel(0);
} else if ("一般".equals(excel.getDisputeLevel())) {
appeal.setDisputeLevel(1);
} else if ("重大".equals(excel.getDisputeLevel())) {
appeal.setDisputeLevel(2);
} else if ("疑难".equals(excel.getDisputeLevel())) {
appeal.setDisputeLevel(3);
}
}
// 首次登记时间
if (StringUtils.isNotBlank(excel.getFirstRegTime())) {
try {
appeal.setFirstRegTime(dateFormat.parse(excel.getFirstRegTime()));
} catch (ParseException e) {
e.printStackTrace();
}
}
// 诉求状态(办理状态)
if (StringUtils.isNotBlank(excel.getStatus())) {
if ("正在处理".equals(excel.getStatus())) {
appeal.setStatus(1);
} else if ("达成协议".equals(excel.getStatus())) {
appeal.setStatus(2);
} else if ("调解成功".equals(excel.getStatus()) || "完成归档".equals(excel.getStatus())) {
appeal.setStatus(3);
}
}
// 是否越级上报
appeal.setSkipGrant(0);
// 数据来源 0:系统添加, 1:数据导入
appeal.setSourceType(BusinessConstant.SOURCE_TYPE_IMPORT);
// 上访人员
if (StringUtils.isNotBlank(excel.getUsername())) {
AppealVisitor visitor = new AppealVisitor();
visitor.setAppealId(appeal.getId());
visitor.setSort(1);
visitor.setUsername(excel.getUsername());
visitors.add(visitor);
}
appeals.add(appeal);
}
});
appealService.saveBatch(appeals);
appealVisitorService.saveBatch(visitors);
}
}
@Override
public List<AppealExcel> exportAppeal(String appealStatus, String startTime, String endTime, String appealType, String windowId, String username) {
List<AppealExcel> excels = appealMapper.exportAppeal(appealStatus, startTime, endTime, appealType, windowId, username);
return excels;
}
@Override
public Map<String, List<DataEntity>> getAppealHot() {

Loading…
Cancel
Save