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 e747250..97d5a6b 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 @@ -193,8 +193,8 @@ public class HuzhouProjectController { * @param * @param */ - @GetMapping("/acount") - public Result acount(HuzhouProjectinfo projectInfo, + @GetMapping("/getDimensionPageSorted") + public Result getDimensionPageSorted(HuzhouProjectinfo projectInfo, @RequestParam(name="current", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @RequestParam(name="orderBy", defaultValue="duty_workplace") String orderBy, @@ -203,5 +203,24 @@ public class HuzhouProjectController { return Result.OK(dimensionPage); } + @GetMapping("/getPageSorted") + public Result getPageSorted(HuzhouProjectinfo projectInfo, + @RequestParam(name="current", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + @RequestParam(name="orderBy", defaultValue="duty_workplace") String orderBy, + @RequestParam(name="orderDir", defaultValue="desc") String orderDir){ + IPage projectPage = projectinfoService.getProjectPage(projectInfo, pageNo, pageSize, orderBy, orderDir); + return Result.OK(projectPage); + } + @GetMapping("/countByCondition") + public Result countByCondition(HuzhouProjectinfo projectInfo, + @RequestParam(name="current", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + @RequestParam(name="orderBy", defaultValue="duty_workplace") String orderBy, + @RequestParam(name="orderDir", defaultValue="desc") String orderDir){ + IPage projectPage = projectinfoService.getProjectPage(projectInfo, pageNo, pageSize, orderBy, orderDir); + return Result.OK(projectPage); + + } } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouProjectinfoMapper.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouProjectinfoMapper.java index 3d4b5f4..f9400b6 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouProjectinfoMapper.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouProjectinfoMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.easy.admin.modules.huzhou.vo.DimensionPageOV; import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; +import com.easy.admin.modules.huzhou.vo.ProjectPageOV; import org.apache.ibatis.annotations.Mapper; import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo; import org.apache.ibatis.annotations.Param; @@ -51,11 +52,17 @@ public interface HuzhouProjectinfoMapper extends BaseMapper { Integer updateType(); /** - * 获取项目信息和子项目信息列表(排序) + * 获取项目信息列表(排序) * @param info 查询条件 * @return List */ - IPage getPageSorted(Page page, @Param("info") HuzhouProjectinfo info, @Param("orderBy") String orderBy, @Param("orderDir") String orderDir); + IPage getDimensionPageSorted(Page page, @Param("info") HuzhouProjectinfo info, @Param("orderBy") String orderBy, @Param("orderDir") String orderDir); + /** + * 获取项目信息列表(排序) + * @param info 查询条件 + * @return List + */ + IPage getProjectPageSorted(Page page, @Param("info") HuzhouProjectinfo info, @Param("orderBy") String orderBy, @Param("orderDir") String orderDir); } 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 54d39d4..fb196ba 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 @@ -63,6 +63,17 @@ + + + + + + + + + + + (1=1 @@ -222,7 +233,7 @@ order by create_date desc SET type = "0" WHERE type = "2" and (central_money!='' or provincial_money!='') - SELECT duty_workplace as dutyWorkplace,admin_division as adminDivision,workplace_properties as workplaceProperties,super_leader as superLeader, sum(total_money) as totalMoney, sum(central_money) as centralMoney, @@ -260,8 +271,44 @@ order by create_date desc group by duty_workplace,admin_division,workplace_properties,super_leader order by ${orderBy} ${orderDir} + + + + and admin_division like #{tempStr} + + + + and duty_workplace like #{tempStr} + + + + and workplace_properties like #{tempStr} + + + + and duty_workplace like #{tempStr} + + + and reform_name = #{info.reformName} + + + and super_leader = #{info.superLeader} + + + order by ${orderBy} ${orderDir} + + \ 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 4503f9b..9fad98c 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 @@ -171,7 +171,7 @@ public interface IHuzhouProjectinfoService extends IService { */ IPage getDimensionPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir); - + IPage getProjectPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir); } 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 6bf6b52..3d3ae81 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 @@ -758,18 +758,22 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl Ids) { int fininshNum=0; int unfininshNum=0; - BigDecimal progress = new BigDecimal("0.00"); + double progress=0.00; + String formatted = "0.00"; if(Ids.size()!=0){ List planInfoList = planinfoService.listByProjectIds(Ids); fininshNum = (int) planInfoList.stream().filter(x -> (x.getIsfinish().equals("2"))).count(); unfininshNum = planInfoList.size()-fininshNum; + if(fininshNum!=0&&planInfoList.size()!=0){ + progress= (double)fininshNum/planInfoList.size(); + formatted = String.format("%.2f", progress); + } - progress= BigDecimal.valueOf(((double) fininshNum/planInfoList.size())); } ProjectProgressOV result = ProjectProgressOV.builder().fininshNum(fininshNum) .unfininshNum(unfininshNum) - .projectProgress(String.valueOf(progress)).build(); + .projectProgress(formatted).build(); return result; } @@ -796,21 +800,29 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl Ids) { NewFundOV result = null; + BigDecimal defVal = new BigDecimal("0.00"); if(Ids.size()!=0){ Map totalMap = contractinfoMapper.getTotalByProjectIds(Ids); Map paymentMap = contractinfoMapper.getPaymentsByProjectIds(Ids); - 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"); + BigDecimal totalAmount = totalMap != null?totalMap.get("totalAcount"):defVal; + BigDecimal totalCentral = totalMap != null?totalMap.get("centralAcount"):defVal; + BigDecimal totalProvincial = totalMap != null?totalMap.get("provincialAcount"):defVal; + BigDecimal payAmount = paymentMap != null?paymentMap.get("totalPayment"):defVal; + BigDecimal payCentral = paymentMap != null?paymentMap.get("centralPayment"):defVal; + BigDecimal payProvincial = paymentMap != null?paymentMap.get("provincialPayment"):defVal; //资金执行率 - BigDecimal paymentExecutionRate = payAmount.divide(totalAmount, 2, RoundingMode.HALF_UP); - BigDecimal SuperiorFundPayment = payCentral.add(payProvincial); - BigDecimal SuperiorFundTotal = totalCentral.add(totalProvincial); + BigDecimal paymentExecutionRate=new BigDecimal("0.00"); + if(payAmount.compareTo(BigDecimal.ZERO) > 0){ + paymentExecutionRate = payAmount.divide(totalAmount, 2, RoundingMode.HALF_UP); + } + BigDecimal superiorFundPayment = payCentral.add(payProvincial); + BigDecimal superiorFundTotal = totalCentral.add(totalProvincial); //上级资金执行率 - BigDecimal superiorFundExecutionRate = SuperiorFundPayment.divide(SuperiorFundTotal, 2, RoundingMode.HALF_UP); + BigDecimal superiorFundExecutionRate=new BigDecimal("0.00"); + if(superiorFundPayment.compareTo(BigDecimal.ZERO) > 0){ + superiorFundExecutionRate = superiorFundPayment.divide(superiorFundTotal, 2, RoundingMode.HALF_UP); + } + 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)) @@ -826,15 +838,16 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl cprojectIds = this.getIdsByType().getCrkIdsList(); projectIds.addAll(cprojectIds); NewFundOV result = null; + BigDecimal defVal = new BigDecimal("0.00"); if(projectIds.size()!=0){ 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"); + BigDecimal totalAmount = totalMap.size()>0?totalMap.get("totalAcount"):defVal; + BigDecimal totalCentral = totalMap.size()>0?totalMap.get("centralAcount"):defVal; + BigDecimal totalProvincial = totalMap.size()>0?totalMap.get("provincialAcount"):defVal; + BigDecimal payAmount = totalMap.size()>0?paymentMap.get("totalPayment"):defVal; + BigDecimal payCentral = totalMap.size()>0?paymentMap.get("centralPayment"):defVal; + BigDecimal payProvincial = totalMap.size()>0?paymentMap.get("provincialPayment"):defVal; 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(); @@ -845,34 +858,79 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl getDimensionPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir) { Page page = new Page(pageNo, pageSize); +// //只要入库项目 +// projectInfo.setType("2"); ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo); - - IPage pageSorted = projectinfoMapper.getPageSorted(page, projectInfoAuthSelect, orderBy, orderDir); + IPage pageSorted = projectinfoMapper.getDimensionPageSorted(page, projectInfoAuthSelect, orderBy, orderDir); List records = pageSorted.getRecords(); List newRecords = new ArrayList<>(); IPage result=new Page<>(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); List projectIds=new ArrayList<>(); - DimensionPageResponse build = DimensionPageResponse.builder().build(); for(DimensionPageOV r:records) { queryWrapper.eq(HuzhouProjectinfo::getDutyWorkplace, r.getDutyWorkplace()).eq(HuzhouProjectinfo::getAdminDivision, r.getAdminDivision()) .eq(HuzhouProjectinfo::getWorkplaceProperties, r.getWorkplaceProperties()).eq(HuzhouProjectinfo::getSuperLeader, r.getSuperLeader()); projectIds.addAll(projectinfoMapper.selectList(queryWrapper).stream().map(x -> x.getId()).collect(Collectors.toList())); NewFundOV fund = this.getFund(projectIds); ProjectProgressOV progress = this.getProgress(projectIds); - BeanUtils.copyProperties(build,r); - build.setTotalMoney(String.valueOf(r.getTotalMoney())).setCentralMoney(String.valueOf(r.getCentralMoney())) - .setProvincialMoney(String.valueOf(r.getProvincialMoney())) + DimensionPageResponse build =new DimensionPageResponse(); + BeanUtils.copyProperties(r,build); + BigDecimal totalDecimal = BigDecimal.valueOf(r.getTotalMoney()); + BigDecimal roundedTotalDecimal = totalDecimal.setScale(2, RoundingMode.HALF_UP); + BigDecimal centralDecimal = BigDecimal.valueOf(r.getCentralMoney()); + BigDecimal roundedCentralDecimal = centralDecimal.setScale(2, RoundingMode.HALF_UP); + BigDecimal provincialDecimal = BigDecimal.valueOf(r.getProvincialMoney()); + BigDecimal roundedProvincialDecimal = provincialDecimal.setScale(2, RoundingMode.HALF_UP); + + DimensionPageResponse newRecord = build.setTotalMoneyToString(roundedTotalDecimal.toString()) + .setCentralMoneyToString(roundedCentralDecimal.toString()) + .setProvincialMoneyToString(roundedProvincialDecimal.toString()) .setPaymentExecutionRate(fund.getPaymentExecutionRate()) .setSuperiorFundExecutionRate(fund.getSuperiorFundExecutionRate()) .setProjectProgress(progress.getProjectProgress()); - newRecords.add(build); + newRecords.add(newRecord); + } + result.setSize(pageSorted.getSize()).setCurrent(pageSorted.getCurrent()).setRecords(newRecords).setTotal(pageSorted.getTotal()); + return result; + } + @Override + public IPage getProjectPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir) { + Page page = new Page(pageNo, pageSize); +// //只要入库项目 +// projectInfo.setType("2"); + ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo); + IPage pageSorted = projectinfoMapper.getProjectPageSorted(page, projectInfoAuthSelect, orderBy, orderDir); + + List records = pageSorted.getRecords(); + List newRecords = new ArrayList<>(); + IPage result=new Page<>(); + for(ProjectPageOV r:records) { + List projectIds=new ArrayList<>(); + projectIds.add(r.getId()); + NewFundOV fund = this.getFund(projectIds); + ProjectProgressOV progress = this.getProgress(projectIds); + ProjectPageResponse build =new ProjectPageResponse(); + BeanUtils.copyProperties(r,build); + BigDecimal totalDecimal = BigDecimal.valueOf(r.getTotalMoney()); + BigDecimal roundedTotalDecimal = totalDecimal.setScale(2, RoundingMode.HALF_UP); + BigDecimal centralDecimal = BigDecimal.valueOf(r.getCentralMoney()); + BigDecimal roundedCentralDecimal = centralDecimal.setScale(2, RoundingMode.HALF_UP); + BigDecimal provincialDecimal = BigDecimal.valueOf(r.getProvincialMoney()); + BigDecimal roundedProvincialDecimal = provincialDecimal.setScale(2, RoundingMode.HALF_UP); + + ProjectPageResponse newRecord = build.setTotalMoneyToString(roundedTotalDecimal.toString()) + .setCentralMoneyToString(roundedCentralDecimal.toString()) + .setProvincialMoneyToString(roundedProvincialDecimal.toString()) + .setPaymentExecutionRate(fund.getPaymentExecutionRate()) + .setSuperiorFundExecutionRate(fund.getSuperiorFundExecutionRate()) + .setProjectProgress(progress.getProjectProgress()); + newRecords.add(newRecord); } result.setSize(pageSorted.getSize()).setCurrent(pageSorted.getCurrent()).setRecords(newRecords).setTotal(pageSorted.getTotal()); return result; } - diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountByConditionOV.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountByConditionOV.java new file mode 100644 index 0000000..51fb89d --- /dev/null +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountByConditionOV.java @@ -0,0 +1,7 @@ +package com.easy.admin.modules.huzhou.vo; + +public class CountByConditionOV { + + private String progress; + +} diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/DimensionPageOV.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/DimensionPageOV.java index 7da06fd..e2b355c 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/DimensionPageOV.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/DimensionPageOV.java @@ -2,14 +2,13 @@ package com.easy.admin.modules.huzhou.vo; import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.experimental.Accessors; @Data @Accessors(chain = true) -@Builder(toBuilder = true) - public class DimensionPageOV { /** @@ -63,4 +62,6 @@ public class DimensionPageOV { // private Double projectProgress; + + } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/DimensionPageResponse.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/DimensionPageResponse.java index bd0efb8..fec3609 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/DimensionPageResponse.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/DimensionPageResponse.java @@ -1,54 +1,64 @@ package com.easy.admin.modules.huzhou.vo; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.experimental.Accessors; @Data @Accessors(chain = true) -@Builder(toBuilder = true) - public class DimensionPageResponse extends DimensionPageOV{ - /** - * 责任单位 - */ - private String dutyWorkplace; - - /** - * 行政区划 - */ - private String adminDivision; - /** - * 单位属性 - */ - private String workplaceProperties; - /** - * 上级指导处室 - */ - private String superLeader; +// /** +// * 责任单位 +// */ +// private String dutyWorkplace; +// +// /** +// * 行政区划 +// */ +// private String adminDivision; +// +// /** +// * 单位属性 +// */ +// private String workplaceProperties; +// +// /** +// * 上级指导处室 +// */ +// private String superLeader; +// +// /** +// * 总投资 +// */ +// private Double totalMoney; /** * 总投资 */ - private String totalMoney; + private String totalMoneyToString; /** * 合同支付执行率 */ private String paymentExecutionRate; - /** - * 中央资金 - */ - private String centralMoney; +// /** +// * 中央资金 +// */ +// private Double centralMoney; - /** - * 省级资金 - */ - private String provincialMoney; + private String centralMoneyToString; + +// /** +// * 省级资金 +// */ +// private Double provincialMoney; + + private String provincialMoneyToString; /** * 合同支付执行率 diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectPageOV.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectPageOV.java new file mode 100644 index 0000000..45bbed5 --- /dev/null +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectPageOV.java @@ -0,0 +1,73 @@ +package com.easy.admin.modules.huzhou.vo; + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class ProjectPageOV { + + /** + * 项目id + */ + private String id; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 责任单位 + */ + private String dutyWorkplace; + + /** + * 行政区划 + */ + private String adminDivision; + + /** + * 单位属性 + */ + private String workplaceProperties; + + /** + * 上级指导处室 + */ + private String superLeader; + + /** + * 总投资 + */ + private Double totalMoney; + +// /** +// * 合同支付执行率 +// */ +// private Double paymentExecutionRate; + + /** + * 中央资金 + */ + private Double centralMoney; + + /** + * 省级资金 + */ + private Double provincialMoney; + +// /** +// * 合同支付执行率 +// */ +// private Double superiorFundExecutionRate; +// +// /** +// * 项目总进度 +// */ +// private Double projectProgress; + + + + +} diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectPageResponse.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectPageResponse.java new file mode 100644 index 0000000..dad7030 --- /dev/null +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectPageResponse.java @@ -0,0 +1,72 @@ +package com.easy.admin.modules.huzhou.vo; + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class ProjectPageResponse extends ProjectPageOV{ + + + +// /** +// * 责任单位 +// */ +// private String dutyWorkplace; +// +// /** +// * 行政区划 +// */ +// private String adminDivision; +// +// /** +// * 单位属性 +// */ +// private String workplaceProperties; +// +// /** +// * 上级指导处室 +// */ +// private String superLeader; +// +// /** +// * 总投资 +// */ +// private Double totalMoney; + + /** + * 总投资 + */ + private String totalMoneyToString; + + /** + * 合同支付执行率 + */ + private String paymentExecutionRate; + +// /** +// * 中央资金 +// */ +// private Double centralMoney; + + private String centralMoneyToString; + +// /** +// * 省级资金 +// */ +// private Double provincialMoney; + + private String provincialMoneyToString; + + /** + * 合同支付执行率 + */ + private String superiorFundExecutionRate; + + /** + * 项目总进度 + */ + private String projectProgress; + + +}