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. 29
      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); 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() { public static R error() {
return new R<>(FAILED_STATUS,FAILED_TIPS,null); 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 centerName;
String centerType;
} }

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

@ -1,15 +1,13 @@
package com.qs.serve.modules.tbs.controller; package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.*;
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.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.entity.TbsBudgetCondition; import com.qs.serve.modules.tbs.entity.TbsBudgetCondition;
import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget; import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget;
@ -165,17 +163,28 @@ public class TbsBudgetController {
/** /**
* excel导入 * excel导入
* @param budgetBo * @param budgetBo
* @return * @return 返回错误列表
*/ */
@PostMapping("/import") @PostMapping("/import")
@SysLog(module = SystemModule.Budget, title = "预算", biz = BizType.INSERT) @SysLog(module = SystemModule.Budget, title = "预算", biz = BizType.INSERT)
@PreAuthorize("hasRole('tbs:budget: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()); ValidateTools.valid(budgetBo.getItems());
for (TbsBudgetExcelBo item : budgetBo.getItems()) { List<TbsBudgetExcelBo> errorList = new ArrayList<>();
for (int i = 0; i < budgetBo.getItems().size(); i++) {
TbsBudgetExcelBo item = budgetBo.getItems().get(i);
try {
tbsBudgetService.modifyByExcel(item); 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 * @param ids
* @return * @return
*/ */
@GetMapping("/export/{ids}") @GetMapping("/export")
public R<List<TbsBudgetExcelBo>> exportVo(@PathVariable("ids") String ids){ public R<List<TbsBudgetExcelBo>> exportVo(String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids); List<Long> idsLong = StringUtils.splitIdLong(ids);
return R.ok(tbsBudgetService.listBudgetExcel(idsLong)); 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 amountM11;
private BigDecimal amountM12; 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.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsBudget; 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.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.bo.TbsBudgetExcelBo;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo;
@ -23,6 +24,8 @@ public interface TbsBudgetService extends IService<TbsBudget> {
void modifyByExcel(TbsBudgetExcelBo budgetBo); void modifyByExcel(TbsBudgetExcelBo budgetBo);
//void modifyByExcelBatch(TbsBudgetExcelBatchDto budgetBo);
TbsBudget getByCode(String code); TbsBudget getByCode(String code);
List<TbsBudgetExcelBo> listBudgetExcel(List<Long> budgetIds); 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){ public TbsCenterDto getCenterDto(String centerType, String centerId){
if(centerType.equals(TbsCenterType.center.name())){ if(centerType.equals(TbsCenterType.center.name())){
BmsCostCenter costCenter = costCenterService.getById(centerId); 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())){ }else if (centerType.equals(TbsCenterType.customer.name())){
BmsSupplier supplier4Center = supplierService.getById(centerId); 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())){ }else if(centerType.equals(TbsCenterType.saleRegion.name())){
BmsRegion saleRegion = saleRegionService.getById(centerId); 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())){ }else if (centerType.equals(TbsCenterType.bizRegion.name())){
BmsRegion2 bizRegion = bizRegionService.getById(centerId); 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); Assert.throwEx("无法匹配成本中心类型:"+centerType);
return null; return null;
@ -69,7 +69,7 @@ public class TbsCenterDtoService {
if(costCenter==null&&StringUtils.hasText(centerName)) { if(costCenter==null&&StringUtils.hasText(centerName)) {
costCenter = costCenterService.getByName(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())){ }else if (centerType.equals(TbsCenterType.customer.name())){
BmsSupplier supplier4Center = null; BmsSupplier supplier4Center = null;
if(StringUtils.hasText(centerCode)){ if(StringUtils.hasText(centerCode)){
@ -85,7 +85,7 @@ public class TbsCenterDtoService {
}if(supplier4Center==null&&StringUtils.hasText(centerName)) { }if(supplier4Center==null&&StringUtils.hasText(centerName)) {
supplier4Center = supplierService.getByName(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())){ }else if(centerType.equals(TbsCenterType.saleRegion.name())){
BmsRegion saleRegion = null; BmsRegion saleRegion = null;
if(StringUtils.hasText(centerCode)){ if(StringUtils.hasText(centerCode)){
@ -94,7 +94,7 @@ public class TbsCenterDtoService {
if(saleRegion==null&&StringUtils.hasText(centerName)){ if(saleRegion==null&&StringUtils.hasText(centerName)){
saleRegion = saleRegionService.getByName(centerName,centerRegionLevel); 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())){ }else if (centerType.equals(TbsCenterType.bizRegion.name())){
BmsRegion2 bizRegion = null; BmsRegion2 bizRegion = null;
if(StringUtils.hasText(centerCode)){ if(StringUtils.hasText(centerCode)){
@ -103,7 +103,7 @@ public class TbsCenterDtoService {
if(bizRegion==null&&StringUtils.hasText(centerName)){ if(bizRegion==null&&StringUtils.hasText(centerName)){
bizRegion = bizRegionService.getByName(centerName,centerRegionLevel); 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); Assert.throwEx("无法匹配成本中心类型:"+centerType);
return null; 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.common.TbsGoodsType;
import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.TbsBudgetBo; 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.bo.TbsBudgetExcelBo;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo;
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper;
@ -116,11 +117,13 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
@Override @Override
public List<TbsBudgetExcelBo> listBudgetExcel(List<Long> budgetIds) { public List<TbsBudgetExcelBo> listBudgetExcel(List<Long> budgetIds) {
List<TbsBudget> budgetList = null;
//考核期项
if (budgetIds==null||budgetIds.size()<1){ 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<>(); LambdaQueryWrapper<TbsScheduleItemBudget> lqw2 = new LambdaQueryWrapper<>();
lqw2.in(TbsScheduleItemBudget::getBudgetId,budgetIds); lqw2.in(TbsScheduleItemBudget::getBudgetId,budgetIds);
List<TbsScheduleItemBudget> scheduleItemBudgets = tbsScheduleItemBudgetService.list(lqw2); List<TbsScheduleItemBudget> scheduleItemBudgets = tbsScheduleItemBudgetService.list(lqw2);
@ -291,7 +294,6 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
return budgetConditions; return budgetConditions;
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void modifyByExcel(TbsBudgetExcelBo budgetBo) { public void modifyByExcel(TbsBudgetExcelBo budgetBo) {
@ -427,6 +429,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
budget.setSubjectCode(subject.getSubjectCode()); budget.setSubjectCode(subject.getSubjectCode());
budget.setSubjectName(subject.getSubjectName()); budget.setSubjectName(subject.getSubjectName());
budget.setCenterId(centerDto.getId()); budget.setCenterId(centerDto.getId());
budget.setCenterType(centerDto.getCenterType());
budget.setCenterCode(centerDto.getCenterCode()); budget.setCenterCode(centerDto.getCenterCode());
budget.setCenterName(centerDto.getCenterName()); budget.setCenterName(centerDto.getCenterName());
budget.setScheduleId(schedule.getId()); budget.setScheduleId(schedule.getId());

Loading…
Cancel
Save