Browse Source

新增需求1127

master
zhouhaibin 3 months ago
parent
commit
f2a9768f0c
  1. 64
      easy-api/pom.xml
  2. 20
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java
  3. 5
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/WorkflowController.java
  4. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/WorkflowMapper.java
  5. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml
  6. 16
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/WorkflowMapper.xml
  7. 4
      huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouProjectinfo.java
  8. 4
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java
  9. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IWorkflowService.java
  10. 156
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java
  11. 60
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/WorkflowServiceImpl.java
  12. 69
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/MoneyDetailOV.java
  13. 21
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectContactShouYeOV.java
  14. 3
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectSummaryOV.java

64
easy-api/pom.xml

@ -89,39 +89,39 @@
</dependency>
</dependencies>
</plugin>
<plugin>
<!-- https://gitee.com/roseboy/classfinal -->
<!-- <groupId>cn.ywyu</groupId>-->
<!-- <plugin>-->
<!-- &lt;!&ndash; https://gitee.com/roseboy/classfinal &ndash;&gt;-->
<!--&lt;!&ndash; <groupId>cn.ywyu</groupId>&ndash;&gt;-->
<!--&lt;!&ndash; <artifactId>classfinal-maven-plugin</artifactId>&ndash;&gt;-->
<!--&lt;!&ndash; <version>1.3.2</version>&ndash;&gt;-->
<!-- <groupId>com.gitee.lcm742320521</groupId>-->
<!-- <artifactId>classfinal-maven-plugin</artifactId>-->
<!-- <version>1.3.2</version>-->
<groupId>com.gitee.lcm742320521</groupId>
<artifactId>classfinal-maven-plugin</artifactId>
<version>1.4.1</version>
<configuration>
<!--加密密码,如果是#号,则使用无密码模式加密,【加密后没有pom文件,不用担心泄漏】-->
<password>123456</password>
<!--加密的包名(可为空,多个用","分割)-->
<packages>com.easy.admin</packages>
<!--需要加密的配置文件,一般是classes目录下的yml或properties文件(可为空,多个用","分割)-->
<cfgfiles>*.properties,*.yml,com/easy/admin/**/mapping/*.xml</cfgfiles>
<!--外部依赖的jar目录,例如/tomcat/lib(可为空,多个用","分割)-->
<!--<classpath></classpath>-->
<libjars>huzhou-1.1.0.jar</libjars> <!--jar/war包lib下要加密jar文件名(可为空,多个用","分割)-->
<!--<cfgpasspath>/etc/.env</cfgpasspath>--> <!--密码文件路径,可为空,默认 /etc/.env-->
<!--<excludes>com.Test</excludes>--> <!--排除不需要加密的文件-->
<!--<classpath></classpath>--> <!--外部依赖jarlib-->
<!--<debug>true</debug>--> <!--调试模式,打印debug日志-->
<code>7E38231D00D8427BB1E463E0BD7375EDD41D8CD98F00B204E9800998ECF8427ED41D8CD98F00B204E9800998ECF8427E</code>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>classFinal</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- <version>1.4.1</version>-->
<!-- <configuration>-->
<!-- &lt;!&ndash;加密密码,如果是#号,则使用无密码模式加密,【加密后没有pom文件,不用担心泄漏】&ndash;&gt;-->
<!-- <password>123456</password>-->
<!-- &lt;!&ndash;加密的包名(可为空,多个用","分割)&ndash;&gt;-->
<!-- <packages>com.easy.admin</packages>-->
<!-- &lt;!&ndash;需要加密的配置文件,一般是classes目录下的yml或properties文件(可为空,多个用","分割)&ndash;&gt;-->
<!-- <cfgfiles>*.properties,*.yml,com/easy/admin/**/mapping/*.xml</cfgfiles>-->
<!-- &lt;!&ndash;外部依赖的jar目录,例如/tomcat/lib(可为空,多个用","分割)&ndash;&gt;-->
<!-- &lt;!&ndash;<classpath></classpath>&ndash;&gt;-->
<!-- <libjars>huzhou-1.1.0.jar</libjars> &lt;!&ndash;jar/war包lib下要加密jar文件名(可为空,多个用","分割)&ndash;&gt;-->
<!-- &lt;!&ndash;<cfgpasspath>/etc/.env</cfgpasspath>&ndash;&gt; &lt;!&ndash;密码文件路径,可为空,默认 /etc/.env&ndash;&gt;-->
<!-- &lt;!&ndash;<excludes>com.Test</excludes>&ndash;&gt; &lt;!&ndash;排除不需要加密的文件&ndash;&gt;-->
<!-- &lt;!&ndash;<classpath></classpath>&ndash;&gt; &lt;!&ndash;外部依赖jarlib&ndash;&gt;-->
<!-- &lt;!&ndash;<debug>true</debug>&ndash;&gt; &lt;!&ndash;调试模式,打印debug日志&ndash;&gt;-->
<!-- <code>7E38231D00D8427BB1E463E0BD7375EDD41D8CD98F00B204E9800998ECF8427ED41D8CD98F00B204E9800998ECF8427E</code>-->
<!-- </configuration>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <phase>package</phase>-->
<!-- <goals>-->
<!-- <goal>classFinal</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
</plugins>
</build>

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

@ -380,4 +380,24 @@ public class HuzhouProjectController {
HashMap<String, Object> result = projectinfoService.getUrtTaskStatusNum(projectinfo);
return Result.ok(result);
}
/**
* 项目金额统计
* @param projectid 项目id
* @return 返回值
*/
@GetMapping("/queryMoneyDetail")
public Result<MoneyDetailOV> queryMoneyDetail(String projectid){
MoneyDetailOV result = projectinfoService.queryMoneyDetail(projectid);
return Result.ok(result);
}
/**
* 项目联系人首页统计数据
* @return
*/
@GetMapping("/projectContactShouYe")
public Result<List<ProjectContactShouYeOV>> shouyeProjectContact(){
List<ProjectContactShouYeOV> result = projectinfoService.projectContactShouYe();
return Result.ok(result);
}
}

5
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/WorkflowController.java

@ -385,4 +385,9 @@ public class WorkflowController {
Page<SuperLeaderApprovalDetailsOV> page = workflowService.getURTUnApprovedDaysPage(superLeaderApproveInfo,pageNo,pageSize);
return Result.OK(page);
}
@GetMapping("/getOutDay")
public Result<?> getOutDay(){
Map<String,String> map = workflowService.getOutDays();
return Result.OK(map);
}
}

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/WorkflowMapper.java

@ -25,5 +25,5 @@ public interface WorkflowMapper extends BaseMapper<Object> {
List<Integer> getUnApprovedDays(@Param("superLeader") String superLeader, @Param("reform") String reform);
Page<SuperLeaderApprovalDetailsOV> getURTDepInfo(Page page);
List<Integer> getURTUnApprovedDays(@Param("urtDep") String urtDep);
List<Integer> getUnApprovedDaysBySuperLeader(@Param("superLeader") String superLeader);
}

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

@ -541,7 +541,7 @@ order by create_date desc
<select id="getProjectSummaryPageListByTask" resultMap="ProjectSummaryPageMap" parameterType="com.easy.admin.modules.huzhou.vo.ProjectSummaryOV">
select u.reform_name as reformName,u.super_leader as superLeader,count(*) as projectNum,
sum(u.total_money) as totalMoney, sum(u.urt_estimated_amount) as estimateMoney,sum(central_money) as centralMoney,
sum(m.contract_total_money) as contractMoney,sum(m.contract_central_money) as contractCentralMoney
sum(m.contract_total_money) as contractMoney,sum(m.contract_central_money) as contractCentralMoney,sum(m.approval_total_money) as approvalTotalMoney,sum(m.approval_central_money) as approvalCentralMoney
from huzhou_projectinfo u left join huzhou_projectinfo_money m on u.id=m.id where u.stage!='-1' and u.id in
<foreach item="projectId" index="index" collection="projectIds" open="(" separator="," close=")">
#{projectId}

16
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/WorkflowMapper.xml

@ -108,4 +108,20 @@
t.name_=#{urtDep}
GROUP BY t.proc_inst_id_
</select>
<select id="getUnApprovedDaysBySuperLeader" resultType="Integer">
SELECT
DATEDIFF(CURDATE(), t.create_time_) AS days_diff
FROM
ACT_RU_EXECUTION a
JOIN
ACT_RU_TASK t ON a.id_ = t.execution_id_
WHERE
a.PROC_INST_ID_ in(
SELECT hps.processInstanceId from huzhou_processinfo hps WHERE projectId in(
SELECT id from huzhou_planinfo hl where hl.project_id in (SELECT id from huzhou_projectinfo where super_leader=#{superLeader}) and hl.isfinish != 2
) or projectId in (SELECT id from huzhou_projectinfo where super_leader=#{superLeader})
)
and t.name_='任务牵头处室'
</select>
</mapper>

4
huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouProjectinfo.java

@ -159,5 +159,9 @@ public class HuzhouProjectinfo extends BaseEntity {
* 排序
*/
private Integer sort;
/**
* 造价建议金额
*/
private Double suggestedCostAmount;
}

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

@ -213,5 +213,9 @@ public interface IHuzhouProjectinfoService extends IService<HuzhouProjectinfo> {
HashMap<String, Object> getUrtTaskStatusNum(HuzhouProjectinfoOV projectinfom);
CountNumberOV countStopNumber();
MoneyDetailOV queryMoneyDetail(String projectid);
List<ProjectContactShouYeOV> projectContactShouYe();
}

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

@ -55,4 +55,6 @@ public interface IWorkflowService {
com.baomidou.mybatisplus.extension.plugins.pagination.Page<SuperLeaderApprovalDetailsOV> getSuperLeaderApproveInfo(SuperLeaderApprovalDetailsOV superLeaderApproveInfo, Integer pageNo, Integer pageSize);
com.baomidou.mybatisplus.extension.plugins.pagination.Page<SuperLeaderApprovalDetailsOV> getURTUnApprovedDaysPage(SuperLeaderApprovalDetailsOV superLeaderApproveInfo, Integer pageNo, Integer pageSize);
Map<String, String> getOutDays();
}

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

@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.easy.admin.auth.model.SysRole;
import com.easy.admin.auth.model.SysUser;
import com.easy.admin.auth.service.SysUserService;
import com.easy.admin.common.core.common.select.Select;
@ -23,6 +24,7 @@ import com.easy.admin.modules.huzhou.vo.*;
import com.easy.admin.sys.model.SysDict;
import com.easy.admin.sys.service.SysDictService;
import com.easy.admin.util.ShiroUtil;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
@ -100,7 +102,9 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
@Autowired
HuzhouPlaninfoMapper planinfoMapper;
@Autowired
private SysUserService userService;
private HuzhouContractinfoMapper huzhouContractinfoMapper;
@Autowired
private HuzhouProjectinfoMoneyMapper projectinfoMoneyMapper;
@Override
@ -1454,7 +1458,8 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
@Override
public IPage<ProjectSummaryOV> getProjectSummaryPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir){
IPage<ProjectSummaryOV> result = new Page<>();
IPage result = new Page<>();
pageSize=10000;
List<String> dutyWorkplaceList=List.of("湖州市第一人民医院","湖州市中心医院","湖州市第三人民医院","湖州市妇幼保健院", "湖州市中医院",
"医政处","妇幼处","科教处","体改处","规信处","中医处","财审处","机关党委","人事处");
List<String> adminDivisionList=List.of("吴兴区","南浔区","德清县","长兴县","安吉县");
@ -1506,6 +1511,66 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
List<ProjectSummaryOV> currentPageData = projectSummaryPageList.subList(fromIndex, Math.min(fromIndex + pageSize, projectSummaryPageList.size()));
result.setSize(pageSize).setCurrent(pageNo).setRecords(currentPageData).setTotal(projectSummaryPageList.size());
}
List<ProjectSummaryOV> records = result.getRecords();
//找出DutyWorkplace 是"湖州市第一人民医院","湖州市中心医院","湖州市第三人民医院","湖州市妇幼保健院", "湖州市中医院" 为一组list 分组叫市委建委
//找出DutyWorkplace是"医政处","妇幼处","科教处","体改处","规信处","中医处","财审处","机关党委","人事处" 为一组list 分组叫市级医院
//找出DutyWorkplace 是 "吴兴区","南浔区","德清县","长兴县","安吉县" 为一组list 分组叫区县
//分组后的先后顺序和原本一致
//创建一个List<map> map key有centralMoney,totalMoney,projectNum 是各组的和,projectProgress 是各组的平均值 children 是各组的list
// 定义分组条件
Set<String> shijiYiyuan = new HashSet<>(Arrays.asList(
"湖州市第一人民医院", "湖州市中心医院", "湖州市第三人民医院", "湖州市妇幼保健院", "湖州市中医院"
));
Set<String> shiweiJianwei = new HashSet<>(Arrays.asList(
"医政处", "妇幼处", "科教处", "体改处", "规信处", "中医处", "财审处", "机关党委", "人事处"
));
Set<String> quxian = new HashSet<>(Arrays.asList(
"吴兴区", "南浔区", "德清县", "长兴县", "安吉县"
));
// 分组
Map<String, List<ProjectSummaryOV>> groupedRecords = new HashMap<>();
groupedRecords.put("市委建委", records.stream().filter(r -> shiweiJianwei.contains(r.getDutyWorkplace())).collect(Collectors.toList()));
groupedRecords.put("市级医院", records.stream().filter(r -> shijiYiyuan.contains(r.getDutyWorkplace())).collect(Collectors.toList()));
groupedRecords.put("区县", records.stream().filter(r -> quxian.contains(r.getDutyWorkplace())).collect(Collectors.toList()));
// 创建最终的 List<Map>
List<Map<String, Object>> resultList = new ArrayList<>();
for (Map.Entry<String, List<ProjectSummaryOV>> entry : groupedRecords.entrySet()) {
String groupName = entry.getKey();
List<ProjectSummaryOV> groupList = entry.getValue();
BigDecimal totalCentralMoney = groupList.stream()
.map(ProjectSummaryOV::getCentralMoney)
.reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal totalTotalMoney = groupList.stream()
.map(ProjectSummaryOV::getTotalMoney)
.reduce(BigDecimal.ZERO, BigDecimal::add);
int totalProjectNum = groupList.stream()
.mapToInt(ProjectSummaryOV::getProjectNum)
.sum();
double averageProjectProgress = groupList.stream()
.map(ProjectSummaryOV::getProjectProgress)
.map(Double::parseDouble)
.mapToDouble(Double::doubleValue)
.average()
.orElse(0.0);
Map<String, Object> groupInfo = new HashMap<>();
groupInfo.put("dutyWorkplace",groupName);
groupInfo.put("centralMoney", totalCentralMoney);
groupInfo.put("totalMoney", totalTotalMoney);
groupInfo.put("projectNum", totalProjectNum);
groupInfo.put("projectProgress", averageProjectProgress);
groupInfo.put("children", groupList);
resultList.add(groupInfo);
}
result.setRecords(resultList);
}else {
result.setSize(pageSize).setCurrent(pageNo).setRecords(Collections.emptyList()).setTotal(0);
}
@ -1776,6 +1841,8 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
List<BigDecimal> contractMoneyList = originalList.stream().map(x -> x.getContractMoney()).collect(Collectors.toList());
List<BigDecimal> contractCentralMoneyList = originalList.stream().map(x -> x.getContractCentralMoney()).collect(Collectors.toList());
List<String> projectProgressList = originalList.stream().map(x -> x.getProjectProgress()).collect(Collectors.toList());
List<BigDecimal> approvalCentralMoneyList = originalList.stream().map(x -> x.getApprovalCentralMoney()).collect(Collectors.toList());
List<BigDecimal> approvalTotalMoneyList = originalList.stream().map(x -> x.getApprovalTotalMoney()).collect(Collectors.toList());
List<ProjectSummaryOV> empList=new ArrayList<>();
if (Objects.equals(orderBy, "projectNum")&& Objects.equals(orderDir, "descend")){
@ -1830,6 +1897,14 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
sortedList=projectProgressList.isEmpty()?originalList:originalList.stream().filter(x->x.getProjectProgress()!=null).sorted(Comparator.comparing(ProjectSummaryOV::getProjectProgress).reversed()).collect(Collectors.toList());
empList = originalList.stream().filter(x -> x.getProjectProgress() == null).collect(Collectors.toList());
sortedList.addAll(empList);
}else if (Objects.equals(orderBy, "approvalCentralMoney")&& Objects.equals(orderDir, "descend")){
sortedList=approvalCentralMoneyList.isEmpty()?originalList:originalList.stream().filter(x->x.getApprovalCentralMoney()!=null).sorted(Comparator.comparing(ProjectSummaryOV::getApprovalCentralMoney).reversed()).collect(Collectors.toList());
empList = originalList.stream().filter(x -> x.getApprovalCentralMoney() == null).collect(Collectors.toList());
sortedList.addAll(empList);
}else if (Objects.equals(orderBy, "approvalTotalMoney")&& Objects.equals(orderDir, "ascend")){
sortedList=approvalCentralMoneyList.isEmpty()?originalList:originalList.stream().filter(x->x.getApprovalCentralMoney()!=null).sorted(Comparator.comparing(ProjectSummaryOV::getApprovalCentralMoney).reversed()).collect(Collectors.toList());
empList = originalList.stream().filter(x -> x.getApprovalCentralMoney() == null).collect(Collectors.toList());
sortedList.addAll(empList);
}
return sortedList;
}
@ -2328,4 +2403,81 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
return result;
}
@Override
public MoneyDetailOV queryMoneyDetail(String projectid) {
MoneyDetailOV moneyDetailOV=new MoneyDetailOV();
HuzhouProjectinfo huzhouProjectinfo = projectinfoMapper.selectById(projectid);
HuzhouProjectinfoMoney huzhouProjectinfoMoney = projectinfoMoneyMapper.selectById(projectid);
if(huzhouProjectinfo!=null){
BeanUtils.copyProperties(huzhouProjectinfo,moneyDetailOV);
}
if(huzhouProjectinfoMoney!=null){
BeanUtils.copyProperties(huzhouProjectinfoMoney,moneyDetailOV);
}
moneyDetailOV.setProjectid(projectid);
return moneyDetailOV;
}
@Override
public List<ProjectContactShouYeOV> projectContactShouYe() {
ArrayList<ProjectContactShouYeOV> projectContactShouYeOVS = new ArrayList<>();
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo();
projectInfo.setStage("0");
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo);
List<HuzhouProjectinfoOV> projectinfoOVList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect);
if(projectinfoOVList.size()>0){
for (HuzhouProjectinfoOV huzhouProjectinfoOV : projectinfoOVList) {
ProjectContactShouYeOV projectContactShouYeOV = new ProjectContactShouYeOV();
projectContactShouYeOV.setProjectName(huzhouProjectinfoOV.getProjectName());
ArrayList<HuzhouPlaninfoOV> planInfoMainTimelineList = planinfoService.getPlanInfoMainTimelineList(huzhouProjectinfoOV.getId());
if(planInfoMainTimelineList.size()>0){
// 创建一个新的 "项目申报阶段" 项
HuzhouPlaninfoOV newPlanInfo = new HuzhouPlaninfoOV();
newPlanInfo.setTaskName("项目申报阶段");
newPlanInfo.setPercent("100");
HuzhouPlaninfoOV childPlanInfo = new HuzhouPlaninfoOV();
childPlanInfo.setTaskName("项目申报完成");
childPlanInfo.setIsfinish("2");
newPlanInfo.setChildren(Arrays.asList(childPlanInfo));
// 过滤掉 "绩效评估阶段" 的项
List<HuzhouPlaninfoOV> filteredList = planInfoMainTimelineList.stream()
.filter(planInfo -> !"绩效评估阶段".equals(planInfo.getTaskName()))
.collect(Collectors.toList());
// 在列表最前面添加 "项目申报阶段" 项
ArrayList<HuzhouPlaninfoOV> updatedList = new ArrayList<>();
updatedList.add(newPlanInfo);
updatedList.addAll(filteredList);
projectContactShouYeOV.setProjectProgressDetail(updatedList);//要处理一下
projectContactShouYeOV.setProjectTotalProgress(planInfoMainTimelineList.get(0).getTotalPercent());
}else{
projectContactShouYeOV.setProjectProgressDetail(new ArrayList<>());
projectContactShouYeOV.setProjectTotalProgress("0");
}
//获取项目合同信息
Map<String, BigDecimal> totalMap = contractinfoMapper.getTotalByProjectIds(Arrays.asList(huzhouProjectinfoOV.getId()));
//获取已支付金额
Map<String, BigDecimal> paymentsMap = contractinfoMapper.getPaymentsByProjectIds(Arrays.asList(huzhouProjectinfoOV.getId()));
if(totalMap!=null&&paymentsMap!=null){
BigDecimal totalAcount = totalMap.get("totalAcount");
BigDecimal totalcentralAcount = totalMap.get("centralAcount");
BigDecimal totalPayment = paymentsMap.get("totalPayment");
BigDecimal centralPayment = paymentsMap.get("centralPayment");
projectContactShouYeOV.setProjectFundPaymentProgress(totalPayment.divide(totalAcount, 4, BigDecimal.ROUND_HALF_UP).toString());
projectContactShouYeOV.setCentralFundPaymentSituation(centralPayment.divide(totalcentralAcount, 4, BigDecimal.ROUND_HALF_UP).toString());
projectContactShouYeOVS.add(projectContactShouYeOV);
}else{
projectContactShouYeOV.setProjectFundPaymentProgress("0");
projectContactShouYeOV.setCentralFundPaymentSituation("0");
projectContactShouYeOVS.add(projectContactShouYeOV);
}
}
}
return projectContactShouYeOVS;
}
}

60
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/WorkflowServiceImpl.java

@ -4,8 +4,7 @@ package com.easy.admin.modules.huzhou.service.impl;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.easy.admin.activiti.constant.ActivitiTaskStatusConst;
@ -15,16 +14,15 @@ import com.easy.admin.activiti.model.ActivitiProcessDefinitionVO;
import com.easy.admin.activiti.model.ActivitiTask;
import com.easy.admin.activiti.service.ActivitiModelService;
import com.easy.admin.activiti.service.ActivitiProcessDefinitionService;
import com.easy.admin.activiti.service.ActivitiTaskService;
import com.easy.admin.auth.dao.SysUserRoleMapper;
import com.easy.admin.auth.model.SysRole;
import com.easy.admin.auth.model.SysUser;
import com.easy.admin.auth.model.SysUserRole;
import com.easy.admin.auth.service.SysUserRoleService;
import com.easy.admin.auth.service.SysUserService;
import com.easy.admin.common.api.vo.Result;
import com.easy.admin.common.core.common.pagination.Page;
import com.easy.admin.common.core.common.select.Select;
import com.easy.admin.common.core.util.ToolUtil;
import com.easy.admin.common.util.CommonUtils;
import com.easy.admin.modules.huzhou.dao.HuzhouPlaninfoMapper;
import com.easy.admin.modules.huzhou.dao.HuzhouProcessinfoMapper;
@ -34,6 +32,7 @@ import com.easy.admin.modules.huzhou.entity.*;
import com.easy.admin.modules.huzhou.service.IHuzhouProcessinfoService;
import com.easy.admin.modules.huzhou.vo.*;
import com.easy.admin.sys.service.SysDictService;
import com.easy.admin.util.ShiroUtil;
import com.easy.admin.modules.huzhou.service.IWorkflowService;
@ -100,7 +99,9 @@ public class WorkflowServiceImpl implements IWorkflowService {
@Autowired
private SysUserService sysUserService;
@Autowired
private SysUserRoleMapper userRoleMapper;
private SysUserRoleService userRoleService;
@Autowired
private SysDictService dictService;
public WorkFlow createFlow(String processDefinitionKey,String id){
String definitionId = activitiModelService.selectProcessDefinitionId(processDefinitionKey);
ActivitiProcessDefinitionVO activitiProcessDefinitionVO = new ActivitiProcessDefinitionVO();
@ -674,7 +675,7 @@ public class WorkflowServiceImpl implements IWorkflowService {
}else{
LambdaQueryWrapper<SysUserRole> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysUserRole::getRoleId,candidateGroups.get(0));
List<SysUserRole> sysUserRoles = userRoleMapper.selectList(queryWrapper);
List<SysUserRole> sysUserRoles = userRoleService.list(queryWrapper);
String name="";
String phone="";
if(sysUserRoles.size()>0){
@ -866,4 +867,47 @@ public class WorkflowServiceImpl implements IWorkflowService {
});
return urtDepInfo;
}
@Override
public Map<String, String> getOutDays() {
Map<String, String> hashMap = new HashMap<>();
SysUser currentUser = ShiroUtil.getCurrentUser();
List<SysRole> roleList = currentUser.getRoleList();
List<String> targetRoles = List.of(
"中医处", "妇幼处", "医政处", "财审处", "体改处",
"组织人事处", "机关党委", "规信处", "市财政局",
"市发展改革委", "市数据局", "市委网信办", "市公安局", "市密码管理局"
);
Optional<SysRole> foundRole = roleList.stream()
.filter(role -> targetRoles.contains(role.getCode()))
.findFirst();
if (foundRole.isPresent()) {
SysRole role = foundRole.get();
String code = role.getCode();
List<Select> superLeader = dictService.selectByDictType("superLeader");
Optional<String> correspondingValue = superLeader.stream()
.filter(select -> select.getLabel().equals(code))
.map(Select::getValue)
.findFirst();
if (correspondingValue.isPresent()) {
String s = correspondingValue.get();
List<Integer> days = workflowMapper.getUnApprovedDaysBySuperLeader(s);
hashMap.put("3days", String.valueOf(days.stream().filter(count -> count<=3).count()));
hashMap.put("5days", String.valueOf(days.stream().filter(count -> count>=5).count()));
}else{
//没有找到任务牵头处室,那就是7部门
List<Integer> urtUnApprovedDays = workflowMapper.getURTUnApprovedDays(code);
hashMap.put("3days", String.valueOf(urtUnApprovedDays.stream().filter(count -> count<=3).count()));
hashMap.put("5days", String.valueOf(urtUnApprovedDays.stream().filter(count -> count>=5).count()));
}
} else {
//"没有找到匹配的角色"
hashMap.put("3days","角色不符合要求");
hashMap.put("5days", "角色不符合要求");
}
return hashMap;
}
}

69
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/MoneyDetailOV.java

@ -0,0 +1,69 @@
package com.easy.admin.modules.huzhou.vo;
import lombok.Data;
@Data
public class MoneyDetailOV {
// 立项总金额(元)
private Double approvalTotalMoney;
// 中央资金(元)
private Double approvalCentralMoney;
// 省级资金(元)
private Double approvalProvincialMoney;
// 市级资金(元)
private Double approvalCityMoney;
// 区县级资金(元)
private Double approvalCountyMoney;
// 自筹资金(元)
private Double approvalSelfMoney;
// 合同总金额(元)
private Double contractTotalMoney;
// 中央资金(元)
private Double contractCentralMoney;
// 省级资金(元)
private Double contractProvincialMoney;
// 市级资金(元)
private Double contractCityMoney;
// 区县级资金(元)
private Double contractCountyMoney;
// 自筹资金(元)
private Double contractSelfMoney;
// 总投资(元)
private Double totalMoney;
// 中央资金(元)
private Double centralMoney;
// 省级资金(元)
private Double provincialMoney;
// 市级资金(元)
private Double cityMoney;
// 区县级资金(元)
private Double countyMoney;
// 自筹资金(元)
private Double selfMoney;
/**
* 联合技术审查估算金额
*/
private Double urtEstimatedAmount;
/**
* 造价建议金额
*/
private Double suggestedCostAmount;
private String projectid;
}

21
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectContactShouYeOV.java

@ -0,0 +1,21 @@
package com.easy.admin.modules.huzhou.vo;
import lombok.Data;
import java.util.List;
@Data
public class ProjectContactShouYeOV {
//项目名称
//项目总进度
//资金支付进度
//中央资金支付情况
private String projectName;
private String projectTotalProgress;
private String projectFundPaymentProgress;
private String centralFundPaymentSituation;
//项目进度详情
private List<HuzhouPlaninfoOV> projectProgressDetail;
}

3
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectSummaryOV.java

@ -30,6 +30,7 @@ public class ProjectSummaryOV {
private String projectProgress;
private String adminDivision;
private BigDecimal approvalTotalMoney;
private BigDecimal approvalCentralMoney;
}

Loading…
Cancel
Save