Browse Source

添加excel导入导出预算

mssql
Yen 3 years ago
parent
commit
fb66ffda4b
  1. 7
      src/main/java/com/qs/serve/common/model/dto/R.java
  2. 2
      src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java
  3. 31
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java
  4. 2
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetExcelBo.java
  5. 3
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java
  6. 16
      src/main/java/com/qs/serve/modules/tbs/service/TbsCenterDtoService.java
  7. 11
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java

7
src/main/java/com/qs/serve/common/model/dto/R.java

@ -116,6 +116,13 @@ public class R<T> implements Serializable {
return new R<>(FAILED_STATUS,message,null);
}
public static <TYPE> R<TYPE> error(String message,TYPE data) {
return new R<>(FAILED_STATUS,FAILED_TIPS,data);
}
public static R error() {
return new R<>(FAILED_STATUS,FAILED_TIPS,null);
}

2
src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java

@ -17,4 +17,6 @@ public class TbsCenterDto {
String centerName;
String centerType;
}

31
src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java

@ -1,15 +1,13 @@
package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.framework.exception.BusinessException;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.common.util.ValidateTools;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.entity.TbsBudgetCondition;
import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget;
@ -165,17 +163,28 @@ public class TbsBudgetController {
/**
* excel导入
* @param budgetBo
* @return
* @return 返回错误列表
*/
@PostMapping("/import")
@SysLog(module = SystemModule.Budget, title = "预算", biz = BizType.INSERT)
@PreAuthorize("hasRole('tbs:budget:insert')")
public R<?> importBo(@RequestBody @Valid TbsBudgetExcelBatchDto budgetBo){
public R<List<TbsBudgetExcelBo>> importBo(@RequestBody @Valid TbsBudgetExcelBatchDto budgetBo){
ValidateTools.valid(budgetBo.getItems());
for (TbsBudgetExcelBo item : budgetBo.getItems()) {
tbsBudgetService.modifyByExcel(item);
List<TbsBudgetExcelBo> errorList = new ArrayList<>();
for (int i = 0; i < budgetBo.getItems().size(); i++) {
TbsBudgetExcelBo item = budgetBo.getItems().get(i);
try {
tbsBudgetService.modifyByExcel(item);
} catch (BusinessException e) {
item.setErrorMsg("预算编码["+item.getBudgetCode()+"]"+e.getMessage());
errorList.add(item);
}catch (Exception e) {
log.error(e.getMessage());
item.setErrorMsg("预算编码["+item.getBudgetCode()+"]未知错误,请联系管理员");
errorList.add(item);
}
}
return R.ok();
return R.ok(errorList,"成功导入:"+(budgetBo.getItems().size()-errorList.size())+"条记录,失败数:"+errorList.size());
}
/**
@ -183,8 +192,8 @@ public class TbsBudgetController {
* @param ids
* @return
*/
@GetMapping("/export/{ids}")
public R<List<TbsBudgetExcelBo>> exportVo(@PathVariable("ids") String ids){
@GetMapping("/export")
public R<List<TbsBudgetExcelBo>> exportVo(String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
return R.ok(tbsBudgetService.listBudgetExcel(idsLong));
}

2
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetExcelBo.java

@ -83,5 +83,7 @@ public class TbsBudgetExcelBo implements Serializable {
private BigDecimal amountM11;
private BigDecimal amountM12;
private String errorMsg;
}

3
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java

@ -3,6 +3,7 @@ package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.entity.bo.TbsBudgetBo;
import com.qs.serve.modules.tbs.entity.bo.TbsBudgetExcelBatchDto;
import com.qs.serve.modules.tbs.entity.bo.TbsBudgetExcelBo;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo;
@ -23,6 +24,8 @@ public interface TbsBudgetService extends IService<TbsBudget> {
void modifyByExcel(TbsBudgetExcelBo budgetBo);
//void modifyByExcelBatch(TbsBudgetExcelBatchDto budgetBo);
TbsBudget getByCode(String code);
List<TbsBudgetExcelBo> listBudgetExcel(List<Long> budgetIds);

16
src/main/java/com/qs/serve/modules/tbs/service/TbsCenterDtoService.java

@ -37,16 +37,16 @@ public class TbsCenterDtoService {
public TbsCenterDto getCenterDto(String centerType, String centerId){
if(centerType.equals(TbsCenterType.center.name())){
BmsCostCenter costCenter = costCenterService.getById(centerId);
return new TbsCenterDto(centerId,costCenter.getCode(),costCenter.getName());
return new TbsCenterDto(centerId,costCenter.getCode(),costCenter.getName(),centerType);
}else if (centerType.equals(TbsCenterType.customer.name())){
BmsSupplier supplier4Center = supplierService.getById(centerId);
return new TbsCenterDto(centerId,supplier4Center.getCode(),supplier4Center.getName());
return new TbsCenterDto(centerId,supplier4Center.getCode(),supplier4Center.getName(),centerType);
}else if(centerType.equals(TbsCenterType.saleRegion.name())){
BmsRegion saleRegion = saleRegionService.getById(centerId);
return new TbsCenterDto(centerId,saleRegion.getCode(),saleRegion.getName());
return new TbsCenterDto(centerId,saleRegion.getCode(),saleRegion.getName(),centerType);
}else if (centerType.equals(TbsCenterType.bizRegion.name())){
BmsRegion2 bizRegion = bizRegionService.getById(centerId);
return new TbsCenterDto(centerId,bizRegion.getCode(),bizRegion.getName());
return new TbsCenterDto(centerId,bizRegion.getCode(),bizRegion.getName(),centerType);
}
Assert.throwEx("无法匹配成本中心类型:"+centerType);
return null;
@ -69,7 +69,7 @@ public class TbsCenterDtoService {
if(costCenter==null&&StringUtils.hasText(centerName)) {
costCenter = costCenterService.getByName(centerName);
}
return new TbsCenterDto(costCenter.getId()+"" ,costCenter.getCode(),costCenter.getName());
return new TbsCenterDto(costCenter.getId()+"" ,costCenter.getCode(),costCenter.getName(),centerType);
}else if (centerType.equals(TbsCenterType.customer.name())){
BmsSupplier supplier4Center = null;
if(StringUtils.hasText(centerCode)){
@ -85,7 +85,7 @@ public class TbsCenterDtoService {
}if(supplier4Center==null&&StringUtils.hasText(centerName)) {
supplier4Center = supplierService.getByName(centerName);
}
return new TbsCenterDto(supplier4Center.getId(),supplier4Center.getCode(),supplier4Center.getName());
return new TbsCenterDto(supplier4Center.getId(),supplier4Center.getCode(),supplier4Center.getName(),centerType);
}else if(centerType.equals(TbsCenterType.saleRegion.name())){
BmsRegion saleRegion = null;
if(StringUtils.hasText(centerCode)){
@ -94,7 +94,7 @@ public class TbsCenterDtoService {
if(saleRegion==null&&StringUtils.hasText(centerName)){
saleRegion = saleRegionService.getByName(centerName,centerRegionLevel);
}
return new TbsCenterDto(saleRegion.getId(),saleRegion.getCode(),saleRegion.getName());
return new TbsCenterDto(saleRegion.getId(),saleRegion.getCode(),saleRegion.getName(),centerType);
}else if (centerType.equals(TbsCenterType.bizRegion.name())){
BmsRegion2 bizRegion = null;
if(StringUtils.hasText(centerCode)){
@ -103,7 +103,7 @@ public class TbsCenterDtoService {
if(bizRegion==null&&StringUtils.hasText(centerName)){
bizRegion = bizRegionService.getByName(centerName,centerRegionLevel);
}
return new TbsCenterDto(bizRegion.getId(),bizRegion.getCode(),bizRegion.getName());
return new TbsCenterDto(bizRegion.getId(),bizRegion.getCode(),bizRegion.getName(),centerType);
}
Assert.throwEx("无法匹配成本中心类型:"+centerType);
return null;

11
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java

@ -18,6 +18,7 @@ import com.qs.serve.modules.goods.service.GoodsSpuService;
import com.qs.serve.modules.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.TbsBudgetBo;
import com.qs.serve.modules.tbs.entity.bo.TbsBudgetExcelBatchDto;
import com.qs.serve.modules.tbs.entity.bo.TbsBudgetExcelBo;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo;
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper;
@ -116,11 +117,13 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
@Override
public List<TbsBudgetExcelBo> listBudgetExcel(List<Long> budgetIds) {
List<TbsBudget> budgetList = null;
//考核期项
if (budgetIds==null||budgetIds.size()<1){
return null;
budgetList = this.list();
}else {
budgetList = this.listByIds(budgetIds);
}
//考核期项
List<TbsBudget> budgetList = this.listByIds(budgetIds);
LambdaQueryWrapper<TbsScheduleItemBudget> lqw2 = new LambdaQueryWrapper<>();
lqw2.in(TbsScheduleItemBudget::getBudgetId,budgetIds);
List<TbsScheduleItemBudget> scheduleItemBudgets = tbsScheduleItemBudgetService.list(lqw2);
@ -291,7 +294,6 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
return budgetConditions;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void modifyByExcel(TbsBudgetExcelBo budgetBo) {
@ -427,6 +429,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
budget.setSubjectCode(subject.getSubjectCode());
budget.setSubjectName(subject.getSubjectName());
budget.setCenterId(centerDto.getId());
budget.setCenterType(centerDto.getCenterType());
budget.setCenterCode(centerDto.getCenterCode());
budget.setCenterName(centerDto.getCenterName());
budget.setScheduleId(schedule.getId());

Loading…
Cancel
Save