Ver código fonte

记账科目名称树显示

yzc 1 ano atrás
pai
commit
c1e2a3d4a4

+ 3 - 0
hx-form/src/main/java/com/fjhx/form/entity/cost/vo/CostControlDetailVo.java

@@ -88,4 +88,7 @@ public class CostControlDetailVo extends CostControlDetail {
 
     private String payeeAccountName;
 
+    private String accountSubjectsName;
+    private String accountSubjectsNames;
+
 }

+ 31 - 8
hx-form/src/main/java/com/fjhx/form/service/cost/impl/CostControlServiceImpl.java

@@ -7,15 +7,18 @@ import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.account.entity.account.po.AccountPayment;
+import com.fjhx.account.entity.account.po.AccountSubjects;
 import com.fjhx.account.entity.calculate.po.CalculateItem;
 import com.fjhx.account.entity.calculate.vo.CalculateItemVo;
 import com.fjhx.account.service.account.AccountPaymentService;
+import com.fjhx.account.service.account.AccountSubjectsService;
 import com.fjhx.account.service.calculate.CalculateItemService;
 import com.fjhx.account.service.payee.PayeeInfoService;
 import com.fjhx.account.service.payment.PaymentTypeService;
 import com.fjhx.common.controller.Label;
 import com.fjhx.common.enums.FlowStatusEnum1;
 import com.fjhx.common.service.logistics.LogisticsCompanyInfoService;
+import com.fjhx.common.utils.Assert;
 import com.fjhx.customer.service.customer.CustomerService;
 import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.flow.entity.flow.po.FlowExample;
@@ -94,6 +97,8 @@ public class CostControlServiceImpl extends ServiceImpl<CostControlMapper, CostC
     private ShopInfoService shopInfoService;
     @Autowired
     private PayeeInfoService payeeInfoService;
+    @Autowired
+    private AccountSubjectsService accountSubjectsService;
 
     @Override
     public Page<CostControlVo> getPage(CostControlSelectDto dto) {
@@ -128,6 +133,7 @@ public class CostControlServiceImpl extends ServiceImpl<CostControlMapper, CostC
     @Override
     public CostControlVo detail(Long id) {
         CostControl costControl = this.getById(id);
+        Assert.notEmpty(costControl, "查询不到费控信息");
         CostControlVo result = BeanUtil.toBean(costControl, CostControlVo.class);
 
         //赋值详情
@@ -180,20 +186,37 @@ public class CostControlServiceImpl extends ServiceImpl<CostControlMapper, CostC
         result.setCostControlDetailList(costControlDetailVos);
 
         //赋值核算项目
+        Map<Long, List<CalculateItemVo>> ciMap = new HashMap<>();
         List<Long> ccdIds = costControlDetailVos.stream().map(CostControlDetail::getId).collect(Collectors.toList());
         List<CalculateItemVo> ciList = calculateItemService.getList(IWrapper.getWrapper().in(CalculateItem::getCostControlDetailId, ccdIds));
-        if (ObjectUtil.isEmpty(ciList)) {
-            return;
+        if (ObjectUtil.isNotEmpty(ciList)) {
+            //赋值客户信息
+            customerService.attributeAssign(ciList, CalculateItem::getBusinessId, (item, customer) -> {
+                item.setCustomerName(customer.getName());
+            });
+            ciMap = ciList.stream().collect(Collectors.groupingBy(CalculateItem::getCostControlDetailId));
         }
-        //赋值客户信息
-        customerService.attributeAssign(ciList, CalculateItem::getBusinessId, (item, customer) -> {
-            item.setCustomerName(customer.getName());
-        });
-        Map<Long, List<CalculateItemVo>> ciMap = ciList.stream().collect(Collectors.groupingBy(CalculateItem::getCostControlDetailId));
+        //赋值记账科目信息
+        Map<Long, AccountSubjects> accountSubjectsMap = accountSubjectsService.mapKEntity(AccountSubjects::getId, q -> q.orderByAsc(AccountSubjects::getId));
+
 
-        //赋值核算项目
         for (CostControlDetailVo costControlDetailVo : costControlDetailVos) {
+            //赋值核算项目
             costControlDetailVo.setCalculateItemList(ciMap.getOrDefault(costControlDetailVo.getId(), new ArrayList<>()));
+
+            //赋值记账科目树
+            int iCount = 0;
+            List<String> subjectsNameGroup = new ArrayList<>();
+            AccountSubjects accountSubjects = accountSubjectsMap.get(costControlDetailVo.getAccountSubjectsId());
+            if (ObjectUtil.isNotEmpty(accountSubjects)) {
+                costControlDetailVo.setAccountSubjectsName(accountSubjects.getSubjectsName());
+            }
+            while (accountSubjects != null && iCount < 50) {
+                iCount++;
+                subjectsNameGroup.add(0, accountSubjects.getSubjectsName());
+                accountSubjects = accountSubjectsMap.get(accountSubjects.getParentId());
+            }
+            costControlDetailVo.setAccountSubjectsNames(subjectsNameGroup.stream().collect(Collectors.joining(" / ")));
         }
     }