Browse Source

看板1.5

master
Jinyuanyuan 4 months ago
parent
commit
4f43268a8a
  1. 28
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java
  2. 5
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouPlaninfoMapper.java
  3. 3
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouProjectinfoMapper.java
  4. 11
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouPlaninfoMapper.xml
  5. 17
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml
  6. 6
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfoService.java
  7. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java
  8. 4
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java
  9. 18
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java
  10. 114
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java
  11. 23
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountBoardOV.java
  12. 8
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountByConditionOV.java
  13. 17
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/NumByTypeOV.java
  14. 18
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/TotalProgressOV.java

28
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java

@ -190,7 +190,7 @@ public class HuzhouProjectController {
}
/**
* 测试
* 根据所属单位以page形式返回统计结果
* @param
* @param
*/
@ -204,6 +204,11 @@ public class HuzhouProjectController {
return Result.OK(dimensionPage);
}
/**
* 根据每个项目以page形式返回统计结果
* @param
* @param
*/
@GetMapping("/getPageSorted")
public Result<?> getPageSorted(HuzhouProjectinfo projectInfo,
@RequestParam(name="current", defaultValue="1") Integer pageNo,
@ -213,10 +218,25 @@ public class HuzhouProjectController {
IPage<ProjectPageResponse> projectPage = projectinfoService.getProjectPage(projectInfo, pageNo, pageSize, orderBy, orderDir);
return Result.OK(projectPage);
}
@GetMapping("/countByTask")
public Result<?> countByTask(){
//
@GetMapping("/showCountBoard")
public Result<?> showCountBoard(){
String a="reform_name";
CountByConditionOV result = projectinfoService.countByReformName(a);
CountBoardOV result = projectinfoService.showCountBoard();
return Result.ok(result);
}
@GetMapping("/showCountBoardByReformName")
public Result<?> showCountBoardByReformName(){
String condition="reformName";
CountByConditionOV result = projectinfoService.countByCondition(condition);
return Result.ok(result);
}
@GetMapping("/showCountBoardByAdminDivision")
public Result<?> showCountBoardByAdminDivision(){
String condition="adminDivision";
CountByConditionOV result = projectinfoService.countByCondition(condition);
return Result.ok(result);
}

5
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouPlaninfoMapper.java

@ -6,9 +6,12 @@ import com.easy.admin.modules.huzhou.entity.HuzhouPlaninfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface HuzhouPlaninfoMapper extends BaseMapper<HuzhouPlaninfo> {
List<HuzhouPlaninfo> getChildTaskBySuperior(@Param("info") HuzhouPlaninfo info);
Integer getNumByPlan(@Param("info") HuzhouPlaninfo info);
Integer getNumByPlan(@Param("projectIds") List<String> projectIds,@Param("taskName") String taskName);
Integer getStartedProjectNum(@Param("projectIds") List<String> projectIds);
}

3
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.NumByTypeOV;
import com.easy.admin.modules.huzhou.vo.ProjectPageOV;
import org.apache.ibatis.annotations.Mapper;
import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo;
@ -66,4 +67,6 @@ public interface HuzhouProjectinfoMapper extends BaseMapper<HuzhouProjectinfo> {
IPage<ProjectPageOV> getProjectPageSorted(Page page, @Param("info") HuzhouProjectinfo info, @Param("orderBy") String orderBy, @Param("orderDir") String orderDir);
List<HuzhouProjectinfoOV> getListByCondition(@Param("info") HuzhouProjectinfo info,@Param("condition") String condition);
List<NumByTypeOV> getNumByType(@Param("info") HuzhouProjectinfo info);
}

11
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouPlaninfoMapper.xml

@ -5,6 +5,15 @@
select * from huzhou_planinfo where superior = #{info.taskLevel} and project_id = #{info.projectId} order by INET_ATON(CONCAT(task_level, '.0'))
</select>
<select id="getNumByPlan" resultType="java.lang.Integer">
select count(*) from huzhou_planinfo where project_id#{projectId} and task_name=#{taskName}
select count(*) from huzhou_planinfo where task_name=#{taskName} and project_id in
<foreach item="projectId" index="index" collection="projectIds" open="(" separator="," close=")">
#{projectId}
</foreach>
</select>
<select id="getStartedProjectNum" resultType="java.lang.Integer">
select COUNT(DISTINCT(a.project_id)) as num from huzhou_planinfo a left join huzhou_projectinfo b on a.project_id=b.id where project_id in
<foreach item="projectId" index="index" collection="projectIds" open="(" separator="," close=")">
#{projectId}
</foreach>
</select>
</mapper>

17
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml

@ -74,6 +74,10 @@
<result property="centralMoney" column="centralMoney" jdbcType="NUMERIC"/>
<result property="provincialMoney" column="provincialMoney" jdbcType="NUMERIC"/>
</resultMap>
<resultMap id="NumByTypeMap" type="com.easy.admin.modules.huzhou.vo.NumByTypeOV">
<result property="type" column="type" jdbcType="VARCHAR"/>
<result property="num" column="num" jdbcType="NUMERIC"/>
</resultMap>
<sql id="selectAuthSql">
(1=1
<if test="info.projectContacts!=null and info.projectContacts!=''">
@ -309,7 +313,7 @@ order by create_date desc
order by ${orderBy} ${orderDir}
</select>
<select id="getListByCondition" resultMap="HuzhouProjectinfoMap">
SELECT SELECT * from huzhou_projectinfo u
SELECT * from huzhou_projectinfo u
<where>
<include refid="selectAuthSql"/>
<if test="info.projectName!=null and info.projectName!=''">
@ -319,4 +323,15 @@ order by create_date desc
</where>
group by ${condition}
</select>
<select id="getNumByType" resultMap="NumByTypeMap">
SELECT type,count(*) from huzhou_projectinfo u
<where>
<include refid="selectAuthSql"/>
<if test="info.projectName!=null and info.projectName!=''">
<bind name="tempStr" value="'%' + info.projectName + '%'" />
and project_name like #{tempStr}
</if>
</where>
group by type
</select>
</mapper>

6
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfoService.java

@ -102,5 +102,11 @@ public interface IHuzhouPlaninfoService extends IService<HuzhouPlaninfo> {
Map<String,Integer> conutCompletionStatus(List<String> projectIds);
Integer getNumByPlan(List<String> projectIds,String taskName);
Integer getPlanList(String projectId);
Integer getStartedProjectNum(List<String> projectIds);
}

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java

@ -16,4 +16,6 @@ public interface IHuzhouPlaninfofileService extends IService<HuzhouPlaninfofile>
void approvePlanFile(MultipartFile[] files, String taskId, String flag, String planinfoid, String comment, MultipartFile[] adviceFiles) throws IOException;
String getProcessName(String pid);
}

4
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java

@ -173,7 +173,9 @@ public interface IHuzhouProjectinfoService extends IService<HuzhouProjectinfo> {
IPage<ProjectPageResponse> getProjectPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir);
CountByConditionOV countByReformName(String reformName);
CountByConditionOV countByCondition(String condition);
CountBoardOV showCountBoard();
}

18
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java

@ -1004,4 +1004,22 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper,
return result;
}
@Override
public Integer getNumByPlan(List<String> projectIds, String taskName) {
Integer result = planinfoMapper.getNumByPlan(projectIds, taskName);
return result;
}
@Override
public Integer getPlanList(String projectId) {
LambdaUpdateWrapper<HuzhouPlaninfo> query=new LambdaUpdateWrapper<>();
query.eq(HuzhouPlaninfo::getProjectId,projectId);
int result = planinfoMapper.selectList(query).isEmpty() ? 0 : planinfoMapper.selectList(query).size();
return result;
}
@Override
public Integer getStartedProjectNum(List<String> projectIds) {
Integer result = planinfoMapper.getStartedProjectNum(projectIds);
return result;
}
}

114
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java

@ -976,60 +976,116 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
return result;
}
//根据改革所属任务或行政区返回统计结果
@Override
public CountByConditionOV countByReformName(String reformName) {
public CountByConditionOV countByCondition(String condition) {
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo();
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo);
List<HuzhouProjectinfoOV> projectinfoOVList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect);
List<String> allProjectIds = projectinfoOVList.stream().map(x -> x.getId()).collect(Collectors.toList());
Map<String, List<HuzhouProjectinfoOV>> reformMap = projectinfoOVList.stream().collect(Collectors.groupingBy(HuzhouProjectinfo::getReformName));
//总进度(待补充)
Map<String, List<HuzhouProjectinfoOV>> conditionMap=new HashMap<>();
Map<String, String> reformTasks = dictService.selectByDictType("reformTasks").stream().collect(Collectors.toMap(x -> x.getValue(), x -> x.getLabel()));
if(Objects.equals(condition, "reformName")){
conditionMap = projectinfoOVList.stream().collect(Collectors.groupingBy(HuzhouProjectinfo::getReformName));
}else {
conditionMap = projectinfoOVList.stream().collect(Collectors.groupingBy(HuzhouProjectinfo::getAdminDivision));
}
//总进度
String projectProgress = this.getProgress(allProjectIds).getProjectProgress();
TotalProgressOV totalProgress = this.countNumByPlan(allProjectIds);
totalProgress.setProgress(projectProgress);
List<ProjectProgressOV> progressResponse = new ArrayList<>();
List<FundByConditionOV> fundByConditionResponse = new ArrayList<>();
for (String key : reformMap.keySet()) {
List<String> keyProjectIdsList = reformMap.get(key).stream().map(x -> x.getId()).collect(Collectors.toList());
for (String key : conditionMap.keySet()) {
List<String> keyProjectIdsList = conditionMap.get(key).stream().map(x -> x.getId()).collect(Collectors.toList());
//进度
ProjectProgressOV progress = this.getProgress(keyProjectIdsList);
progressResponse.add(ProjectProgressOV.builder().name(key).projectProgress(String.valueOf(progress.getProjectProgress())).build());
if(Objects.equals(condition, "reformName")){
progressResponse.add(ProjectProgressOV.builder().name(reformTasks.get(key)).projectProgress(String.valueOf(progress.getProjectProgress())).build());
}else {
progressResponse.add(ProjectProgressOV.builder().name(key).projectProgress(String.valueOf(progress.getProjectProgress())).build());
}
//所属改革总金额、执行率、上级资金执行率
NewFundOV fund = this.getFund(keyProjectIdsList);
fundByConditionResponse.add(FundByConditionOV.builder().name(key).totalMoney(fund.getTotalMoney())
.paymentExecutionRate(fund.getPaymentExecutionRate())
.superiorFundExecutionRate(fund.getSuperiorFundExecutionRate()).build());
if(Objects.equals(condition, "reformName")){
fundByConditionResponse.add(FundByConditionOV.builder().name(reformTasks.get(key)).totalMoney(fund.getTotalMoney())
.paymentExecutionRate(fund.getPaymentExecutionRate())
.superiorFundExecutionRate(fund.getSuperiorFundExecutionRate()).build());
}else{
fundByConditionResponse.add(FundByConditionOV.builder().name(key).totalMoney(fund.getTotalMoney())
.paymentExecutionRate(fund.getPaymentExecutionRate())
.superiorFundExecutionRate(fund.getSuperiorFundExecutionRate()).build());
}
}
//各种类资金总额和执行率,from fund
NewFundOV totalFund = this.getFund(allProjectIds);
FundByKindOV fundByTypeResponse = FundByKindOV.builder().totalMoney(totalFund.getTotalMoney()).payAmount(totalFund.getPayAmount())
.paymentExecutionRate(totalFund.getPaymentExecutionRate())
.totalCentral(totalFund.getTotalCentral()).payCentral(totalFund.getPayCentral())
.payCentralExecutionRate(totalFund.getPayCentralExecutionRate())
.totalProvincial(totalFund.getTotalProvincial()).payProvincial(totalFund.getPayProvincial())
.payProvincialExecutionRate(totalFund.getPayProvincialExecutionRate())
.totalCity(totalFund.getTotalCity()).payCity(totalFund.getPayCity())
.payCityExecutionRate(totalFund.getPayCityExecutionRate())
.totalCounty(totalFund.getTotalCounty()).payCounty(totalFund.getPayCounty())
.payCountyExecutionRate(totalFund.getPayCountyExecutionRate())
.totalSelf(totalFund.getTotalSelf()).paySelf(totalFund.getPaySelf())
.paySelfExecutionRate(totalFund.getPaySelfExecutionRate())
.build();
CountByConditionOV result = CountByConditionOV.builder().progress(progressResponse)
FundByKindOV fundByTypeResponse = this.modelChange(totalFund);
CountByConditionOV result = CountByConditionOV.builder().totalProgress(totalProgress).progress(progressResponse)
.countFundByCondition(fundByConditionResponse).countFundByFundType(fundByTypeResponse).build();
return result;
}
public Map<String,String> countNumByPlan(){
List<String> planName=new ArrayList<>();
planName.add("合同签订");
planName.add("终验阶段");
@Override
public CountBoardOV showCountBoard() {
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo();
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo);
List<HuzhouProjectinfoOV> projectinfoOVList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect);
List<String> projectIds = projectinfoOVList.stream().map(x -> x.getId()).collect(Collectors.toList());
//项目数量统计by type
Map<String, NumByTypeOV> numByType = projectinfoMapper.getNumByType(projectInfoAuthSelect).stream()
.collect(Collectors.toMap(x -> x.getType(), o -> o));
int total=projectIds.size();
int ptNum=0;
int rkNum=0;
ptNum=numByType.get("1").getNum();
rkNum=numByType.get("2").getNum();
CountBoardOV result = CountBoardOV.builder().total(String.valueOf(total)).ptNum(String.valueOf(ptNum)).rkNum(String.valueOf(rkNum)).build();
//项目总进度
TotalProgressOV totalProgress = this.countNumByPlan(projectIds);
String projectProgress = this.getProgress(projectIds).getProjectProgress();
totalProgress.setProgress(projectProgress);
////各种类资金总额和执行率
NewFundOV totalFund = this.getFund(projectIds);
FundByKindOV fundByTypeResponse = this.modelChange(totalFund);
result.setTotalProgress(totalProgress).setCountFundByFundType(fundByTypeResponse);
return result;
return null;
}
public TotalProgressOV countNumByPlan(List<String> projectIds) {
List<String> planName = new ArrayList<>();
planName.add("合同签订");
planName.add("终验阶段");
int notStartedNum = 0;
int purchasedNum = 0;
int finishNum = 0;
if (projectIds.size() > 0) {
notStartedNum = projectIds.size() - planinfoService.getStartedProjectNum(projectIds);
purchasedNum = planinfoService.getNumByPlan(projectIds, planName.get(0));
finishNum = planinfoService.getNumByPlan(projectIds, planName.get(1));
}
TotalProgressOV result = TotalProgressOV.builder().notStartedNum(String.valueOf(notStartedNum))
.purchasedNum(String.valueOf(purchasedNum)).finishNum(String.valueOf(finishNum)).build();
return result;
}
public FundByKindOV modelChange(NewFundOV newfundOV){
FundByKindOV fundByTypeResponse = FundByKindOV.builder().totalMoney(newfundOV.getTotalMoney()).payAmount(newfundOV.getPayAmount())
.paymentExecutionRate(newfundOV.getPaymentExecutionRate())
.totalCentral(newfundOV.getTotalCentral()).payCentral(newfundOV.getPayCentral())
.payCentralExecutionRate(newfundOV.getPayCentralExecutionRate())
.totalProvincial(newfundOV.getTotalProvincial()).payProvincial(newfundOV.getPayProvincial())
.payProvincialExecutionRate(newfundOV.getPayProvincialExecutionRate())
.totalCity(newfundOV.getTotalCity()).payCity(newfundOV.getPayCity())
.payCityExecutionRate(newfundOV.getPayCityExecutionRate())
.totalCounty(newfundOV.getTotalCounty()).payCounty(newfundOV.getPayCounty())
.payCountyExecutionRate(newfundOV.getPayCountyExecutionRate())
.totalSelf(newfundOV.getTotalSelf()).paySelf(newfundOV.getPaySelf())
.paySelfExecutionRate(newfundOV.getPaySelfExecutionRate())
.build();
return fundByTypeResponse;
}
}

23
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountBoardOV.java

@ -0,0 +1,23 @@
package com.easy.admin.modules.huzhou.vo;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Builder(toBuilder = true)
public class CountBoardOV {
//项目数量
private String total;
private String rkNum;
private String ptNum;
private TotalProgressOV totalProgress;
private FundByKindOV countFundByFundType;
}

8
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountByConditionOV.java

@ -12,16 +12,16 @@ import java.util.List;
@Builder(toBuilder = true)
public class CountByConditionOV {
private String totalProgress;
private TotalProgressOV totalProgress;
List<ProjectProgressOV> progress;
private List<ProjectProgressOV> progress;
List<FundByConditionOV> countFundByCondition;
private List<FundByConditionOV> countFundByCondition;
FundByKindOV countFundByFundType;
private FundByKindOV countFundByFundType;
}

17
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/NumByTypeOV.java

@ -0,0 +1,17 @@
package com.easy.admin.modules.huzhou.vo;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Builder(toBuilder = true)
public class NumByTypeOV {
private String type;
private Integer num;
}

18
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/TotalProgressOV.java

@ -0,0 +1,18 @@
package com.easy.admin.modules.huzhou.vo;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Builder(toBuilder = true)
public class TotalProgressOV {
private String progress;
private String notStartedNum;
private String purchasedNum;
private String finishNum;
}
Loading…
Cancel
Save