diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java index b3056cf..07ea1f7 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java @@ -4,16 +4,13 @@ package com.easy.admin.modules.huzhou.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.easy.admin.common.core.annotation.ResponseResult; -import com.easy.admin.modules.huzhou.vo.CountOV; -import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; +import com.easy.admin.modules.huzhou.vo.*; import com.easy.admin.common.api.vo.Result; import com.easy.admin.modules.huzhou.entity.*; import com.easy.admin.modules.huzhou.service.*; -import com.easy.admin.modules.huzhou.vo.ProjectApproveOV; -import com.easy.admin.modules.huzhou.vo.ProjectProgressOV; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -191,4 +188,15 @@ public class HuzhouProjectController { return Result.OK(result); } + /** + * 状态更新 + * @param + * @param + */ + @GetMapping("/acount") + public Result acount(){ + NewFundOV result = projectinfoService.getFundByType(); + return Result.OK(result); + + } } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouContractinfoMapper.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouContractinfoMapper.java index 6fac7ce..2caa674 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouContractinfoMapper.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouContractinfoMapper.java @@ -7,9 +7,20 @@ import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; import org.apache.ibatis.annotations.Mapper; import com.easy.admin.modules.huzhou.entity.HuzhouContractinfo; import com.easy.admin.modules.huzhou.vo.HuzhouContractinfoOV; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; public interface HuzhouContractinfoMapper extends BaseMapper { Page getContractinfoPageList(Page page, HuzhouProjectinfo info); Page getContractProjectPageList(Page page, HuzhouProjectinfo info); + //根据一组项目id返回已支付总金额、已支付总中央资金、已支付总省级资金 + Map getPaymentsByProjectIds(@Param("projectIds") List projectIds); + + //根据一组项目id返回总金额、总中央资金、总省级资金 + Map getTotalByProjectIds(@Param("projectIds") List projectIds); + } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml index 22b1954..8377737 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml @@ -249,11 +249,30 @@ HAVING COUNT(DISTINCT c.project_id) >0) + + - + diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml index 4a79929..e559ee5 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml @@ -211,6 +211,6 @@ order by create_date desc UPDATE huzhou_projectinfo SET type = "0" - WHERE type = "2" and (central_money='' or provincial_money='') + WHERE type = "2" and (central_money!='' or provincial_money!='') \ No newline at end of file diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java index b678088..17ec138 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java @@ -144,7 +144,8 @@ public interface IHuzhouProjectinfoService extends IService { * * @param */ - NewFundOV getFundByType(List ids); + NewFundOV getFundByType(); + } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java index 68b0ae3..d6d37cd 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java @@ -12,6 +12,7 @@ import com.easy.admin.common.core.exception.EasyException; import com.easy.admin.common.util.CommonUtils; import com.easy.admin.modules.huzhou.common.HuzhouCommonUtils; import com.easy.admin.modules.huzhou.common.TemplateExcelUtils; +import com.easy.admin.modules.huzhou.dao.HuzhouContractinfoMapper; import com.easy.admin.modules.huzhou.dao.HuzhouProjectinfoHistoryMapper; import com.easy.admin.modules.huzhou.dao.HuzhouProjectinfoMapper; import com.easy.admin.modules.huzhou.dao.HuzhouSubProjectinfoMapper; @@ -86,6 +87,9 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect); List zIds = projectAndChildInfoPageList.stream().map(x -> x.getId()).collect(Collectors.toList()); -// List> cIds0 = projectAndChildInfoPageList.stream().filter(x -> x.getChildren().size() > 0).map(x -> x.getChildren().stream().map(o -> o.getId()).collect(Collectors.toList())).collect(Collectors.toList()); List cIds = new ArrayList<>(); for(HuzhouProjectinfoOV info:projectAndChildInfoPageList){ if(info.getChildren()!=null){ @@ -711,10 +714,15 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect); Map> zxmMap = projectAndChildInfoPageList.stream().collect(Collectors.groupingBy(HuzhouProjectinfo::getType)); - List> cxm = projectAndChildInfoPageList.stream().map(HuzhouProjectinfoOV::getChildren) - .filter(children -> children.size() > 0).collect(Collectors.toList()); - Map> cxmMap = cxm.stream().flatMap(x -> x.stream()) - .collect(Collectors.groupingBy(HuzhouProjectinfo::getType)); + List cxm = new ArrayList<>(); + for(HuzhouProjectinfoOV info:projectAndChildInfoPageList){ + if(info.getChildren()!=null){ + for(HuzhouSubProjectinfo child:info.getChildren()){ + cxm.add(child); + } + } + } + Map> cxmMap = cxm.stream().collect(Collectors.groupingBy(HuzhouProjectinfo::getType)); int zxmNum=0; int cxmNum=0; for (String key:zxmMap.keySet()) { @@ -724,6 +732,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl rkIds = zxmMap.get("1").stream().map(x -> x.getId()).collect(Collectors.toList()); List crkIds = cxmMap.get("1").stream().map(x->x.getId()).collect(Collectors.toList()); List ptIds= zxmMap.get("2").stream().map(x -> x.getId()).collect(Collectors.toList()); @@ -753,62 +762,20 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl ids) { + public NewFundOV getFundByType() { List projectIds = this.getIdsByType().getRkIdsList(); - List zprojectIds = new ArrayList<>(projectIds); List cprojectIds = this.getIdsByType().getCrkIdsList(); projectIds.addAll(cprojectIds); - BigDecimal totalAmount = new BigDecimal("0.00"); - BigDecimal payAmount = new BigDecimal("0.00"); - BigDecimal payCentral = new BigDecimal("0.00"); - BigDecimal payProvincial = new BigDecimal("0.00"); NewFundOV result = null; if(projectIds.size()!=0){ - List contractInfoList = contractinfoService.ListByProjectIds(projectIds); - List planInfoList = planinfoService.listByProjectIds(projectIds); - Map contractMoneyMap; - List finishPlanTaskList; - for(String projectId:projectIds){ - contractMoneyMap = contractInfoList.stream().filter(x -> x.getProjectId().equals(projectId)) - .collect(Collectors.toMap(HuzhouContractinfo::getTaskName,o->o)); - finishPlanTaskList = planInfoList.stream().filter(x->x.getProjectId().equals(projectId)) - .filter(x->x.getIsfinish().equals("2")).map(x->x.getTaskName()).collect(Collectors.toList()); - for(String key:contractMoneyMap.keySet()){ - if(finishPlanTaskList.contains(key)){ - payAmount=payAmount.add(new BigDecimal(Double.toString(contractMoneyMap.get(key).getTotalMoney()))); - payCentral=payCentral.add(new BigDecimal(Double.toString(contractMoneyMap.get(key).getCentralMoney()))); - payProvincial=payProvincial.add(new BigDecimal(Double.toString(contractMoneyMap.get(key).getProvincialMoney()))); - } - } - } - BigDecimal zxmTotal = new BigDecimal("0.00"); - BigDecimal cxmTotal = new BigDecimal("0.00"); - BigDecimal zxmCentral = new BigDecimal("0.00"); - BigDecimal cxmCentral = new BigDecimal("0.00"); - BigDecimal zxmProvincial = new BigDecimal("0.00"); - BigDecimal cxmProvincial = new BigDecimal("0.00"); - - if(zprojectIds.size()!=0) { - LambdaQueryWrapper query = new LambdaQueryWrapper<>(new HuzhouProjectinfo()) - .in(HuzhouProjectinfo::getId, zprojectIds) - .select(HuzhouProjectinfo::getId, HuzhouProjectinfo::getTotalMoney); - List projectInfoList = projectinfoMapper.selectList(query); - zxmTotal = new BigDecimal(Double.toString(projectInfoList.stream().mapToDouble(x -> x.getTotalMoney()).sum())); - zxmCentral = new BigDecimal(Double.toString(projectInfoList.stream().mapToDouble(x -> x.getCentralMoney()).sum())); - zxmProvincial = new BigDecimal(Double.toString(projectInfoList.stream().mapToDouble(x -> x.getProvincialMoney()).sum())); - } - if(cprojectIds.size()!=0){ - LambdaQueryWrapper cquery = new LambdaQueryWrapper<>(new HuzhouSubProjectinfo()) - .in(HuzhouSubProjectinfo::getId,cprojectIds) - .select(HuzhouSubProjectinfo::getId,HuzhouSubProjectinfo::getTotalMoney); - List subProjectInfoList=subProjectinfoMapper.selectList(cquery); - cxmTotal = new BigDecimal(Double.toString(subProjectInfoList.stream().mapToDouble(x -> x.getTotalMoney()).sum())); - cxmCentral = new BigDecimal(Double.toString(subProjectInfoList.stream().mapToDouble(x -> x.getCentralMoney()).sum())); - cxmProvincial = new BigDecimal(Double.toString(subProjectInfoList.stream().mapToDouble(x -> x.getProvincialMoney()).sum())); - } - BigDecimal totalMoney = zxmTotal.add(cxmTotal); - BigDecimal totalCentral = zxmCentral.add(cxmCentral); - BigDecimal totalProvincial = zxmProvincial.add(cxmProvincial); + Map totalMap = contractinfoMapper.getTotalByProjectIds(projectIds); + Map paymentMap = contractinfoMapper.getPaymentsByProjectIds(projectIds); + BigDecimal totalAmount = totalMap.get("totalAcount"); + BigDecimal totalCentral = totalMap.get("centralAcount"); + BigDecimal totalProvincial = totalMap.get("provincialAcount"); + BigDecimal payAmount = paymentMap.get("totalPayment"); + BigDecimal payCentral = paymentMap.get("centralPayment"); + BigDecimal payProvincial = paymentMap.get("provincialPayment"); result=NewFundOV.builder().totalMoney(String.valueOf(totalAmount)).payAmount(String.valueOf(payAmount)) .totalCentral(String.valueOf(totalCentral)).payCentral(String.valueOf(payCentral)) .totalProvincial(String.valueOf(totalProvincial)).payProvincial(String.valueOf(payProvincial)).build(); @@ -816,4 +783,6 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl