diff --git a/src/main/java/com/qs/serve/common/model/dto/R.java b/src/main/java/com/qs/serve/common/model/dto/R.java index e2e67b87..6e9d69b1 100644 --- a/src/main/java/com/qs/serve/common/model/dto/R.java +++ b/src/main/java/com/qs/serve/common/model/dto/R.java @@ -116,6 +116,13 @@ public class R implements Serializable { return new R<>(FAILED_STATUS,message,null); } + + public static R 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); } diff --git a/src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java b/src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java index f0dff53c..75a371d7 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java @@ -17,4 +17,6 @@ public class TbsCenterDto { String centerName; + String centerType; + } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java index 64664036..4900ba9a 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java +++ b/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> importBo(@RequestBody @Valid TbsBudgetExcelBatchDto budgetBo){ ValidateTools.valid(budgetBo.getItems()); - for (TbsBudgetExcelBo item : budgetBo.getItems()) { - tbsBudgetService.modifyByExcel(item); + List 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> exportVo(@PathVariable("ids") String ids){ + @GetMapping("/export") + public R> exportVo(String ids){ List idsLong = StringUtils.splitIdLong(ids); return R.ok(tbsBudgetService.listBudgetExcel(idsLong)); } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetExcelBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetExcelBo.java index aaa658c0..fea5af03 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetExcelBo.java +++ b/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; + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java index 0b004375..bef37e31 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java +++ b/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 { void modifyByExcel(TbsBudgetExcelBo budgetBo); + //void modifyByExcelBatch(TbsBudgetExcelBatchDto budgetBo); + TbsBudget getByCode(String code); List listBudgetExcel(List budgetIds); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsCenterDtoService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsCenterDtoService.java index 01b504b7..da4a4dee 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsCenterDtoService.java +++ b/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; diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java index 558ecf5b..418f75eb 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java +++ b/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 @Override public List listBudgetExcel(List budgetIds) { + List budgetList = null; + //考核期项 if (budgetIds==null||budgetIds.size()<1){ - return null; + budgetList = this.list(); + }else { + budgetList = this.listByIds(budgetIds); } - //考核期项 - List budgetList = this.listByIds(budgetIds); LambdaQueryWrapper lqw2 = new LambdaQueryWrapper<>(); lqw2.in(TbsScheduleItemBudget::getBudgetId,budgetIds); List scheduleItemBudgets = tbsScheduleItemBudgetService.list(lqw2); @@ -291,7 +294,6 @@ public class TbsBudgetServiceImpl extends ServiceImpl return budgetConditions; } - @Override @Transactional(rollbackFor = Exception.class) public void modifyByExcel(TbsBudgetExcelBo budgetBo) { @@ -427,6 +429,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl 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());