Browse Source

后管主页及客户端填报页上报和废除

huangjn 3 năm trước cách đây
mục cha
commit
d521b26da0

+ 4 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/OpinionUserClient.java

@@ -1,6 +1,7 @@
 package org.springblade.business.feign;
 
 import org.springblade.business.entity.AssessmentUser;
+import org.springblade.business.entity.UserOpinion;
 import org.springblade.business.vo.AssessmentUserVOS;
 import org.springblade.business.vo.BusinessUserOpinionVO;
 import org.springblade.common.constant.BusinessConstant;
@@ -20,6 +21,9 @@ public interface OpinionUserClient {
      */
     String API_PREFIX = "/api/business/opinionUser";
 
+    @PostMapping(API_PREFIX + "/queryOpinionTypeAmount")
+    List<UserOpinion> queryOpinionTypeAmount();
+
     /**
      * 工单详情
      */

+ 3 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/StartTaskVO.java

@@ -45,4 +45,7 @@ public class StartTaskVO {
     @ApiModelProperty("合同段ID")
     private String contractId;
 
+    @ApiModelProperty("施工、监理分类(填报页上报必传)")
+    private Integer classify;
+
 }

+ 61 - 9
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ManagerHomePageVO.java

@@ -2,32 +2,88 @@ package org.springblade.manager.vo;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springblade.manager.entity.ProjectInfo;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 @Data
 public class ManagerHomePageVO {
 
+    @ApiModelProperty("项目列表")
+    private List<ProjectInfo> projectInfos;
+
+    @ApiModelProperty("维护类型汇总")
+    private List<UserOpinion> userOpinionList = new ArrayList<>();
+
     @ApiModelProperty("项目人员总数")
     private Integer projectUserAmount;
 
     @ApiModelProperty("每个项目人员数量")
     private List<ProjectUserAmountVO> projectUserAmountVOList;
 
+    @ApiModelProperty("项目章数量集合")
+    private List<SingPfx> pfxList = new ArrayList<>();
+
     /**
      * 当前用户待办工单
      */
-    private List<UserOpinion> userOpinionList = new ArrayList<>();
+    private List<UserOpinionFlow> userOpinionFlowList = new ArrayList<>();
 
-    public void setUserOpinionList(String userOpinionId, String title, Integer currentLink, Integer newNumber, String currentLinkId, boolean operation){
-        this.userOpinionList.add(new UserOpinion(userOpinionId, title, currentLink, newNumber, currentLinkId, operation));
+    public void setUserOpinionFlowList(String userOpinionId, String title, Integer currentLink, Integer newNumber, String currentLinkId, boolean operation){
+        this.userOpinionFlowList.add(new UserOpinionFlow(userOpinionId, title, currentLink, newNumber, currentLinkId, operation));
     }
 
     public OpinionDetails getOpinionDetails(String projectName, String contractName, String opinionContent, String submitUserName, String submitUser, String submitPhone, String manageTime, List<String> fileUrl){
         return new OpinionDetails(projectName, contractName, opinionContent, submitUserName, submitUser, submitPhone, manageTime, fileUrl);
     }
 
+    public void setUserOpinionList(String projectId, String projectName, String problemType, String problemTypeAmount){
+        userOpinionList.add(new UserOpinion(projectId, projectName, Arrays.asList(problemType.split(",")), Arrays.asList(problemTypeAmount.split(","))));
+    }
+
+    public void setPfxList(String projectName, String enterpriseCount, String personalCount){
+        this.pfxList.add(new SingPfx(projectName, enterpriseCount, personalCount));
+    }
+
+    @Data
+    public static class SingPfx {
+        @ApiModelProperty("项目名称")
+        private String projectName;
+        @ApiModelProperty("企业章数量")
+        private String enterpriseCount;
+        @ApiModelProperty("个人章数量")
+        private String personalCount;
+
+        public SingPfx(String projectName, String enterpriseCount, String personalCount){
+            this.projectName = projectName;
+            this.enterpriseCount = enterpriseCount;
+            this.personalCount = personalCount;
+        }
+
+    }
+
+    @Data
+    public static class UserOpinion {
+        @ApiModelProperty("项目ID")
+        private String projectId;
+        @ApiModelProperty("项目名称")
+        private String projectName;
+        @ApiModelProperty("问题类型")
+        private List<String> problemType;
+        @ApiModelProperty("问题数量")
+        private List<String> problemTypeAmount;
+
+        public UserOpinion(String projectId, String projectName, List<String> problemType, List<String> problemTypeAmount){
+            this.projectId = projectId;
+            this.projectName = projectName;
+            this.problemType = problemType;
+            this.problemTypeAmount = problemTypeAmount;
+        }
+
+    }
+
     @Data
     public static class OpinionDetails {
         @ApiModelProperty("项目名称")
@@ -58,12 +114,10 @@ public class ManagerHomePageVO {
             this.fileUrl = fileUrl;
         }
 
-        public OpinionDetails(){}
-
     }
 
     @Data
-    public static class UserOpinion {
+    public static class UserOpinionFlow {
         //工单ID
         @ApiModelProperty("工单ID")
         private String userOpinionId;
@@ -88,7 +142,7 @@ public class ManagerHomePageVO {
         @ApiModelProperty("是否有操作权限")
         private boolean operation;
 
-        public UserOpinion(String userOpinionId, String title, Integer currentLink, Integer newNumber, String currentLinkId, boolean operation){
+        public UserOpinionFlow(String userOpinionId, String title, Integer currentLink, Integer newNumber, String currentLinkId, boolean operation){
             this.userOpinionId = userOpinionId;
             this.title = title;
             this.currentLink = currentLink;
@@ -96,8 +150,6 @@ public class ManagerHomePageVO {
             this.currentLinkId = currentLinkId;
             this.operation = operation;
         }
-
-        public UserOpinion(){}
     }
 
 }

+ 7 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/SingPfxManagementVO.java

@@ -27,4 +27,11 @@ public class SingPfxManagementVO {
     @ApiModelProperty("合同段ID")
     private Long contractId;
 
+    public SingPfxManagementVO(Integer current, Integer size){
+        this.current = current;
+        this.size = size;
+    }
+
+    public SingPfxManagementVO(){}
+
 }

+ 103 - 31
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -95,6 +95,68 @@ public class InformationWriteQueryController extends BladeController {
 
 	private final OperationLogClient operationLogClient;
 
+	/**
+	 * 单个废除
+	 */
+	@PostMapping("/abolishOne")
+	@ApiOperationSupport(order = 24)
+	@ApiOperation(value = "单个废除")
+	public R<Boolean> abolishOne(@RequestParam String primaryKeyId, @RequestParam String classify){
+		//查询填报状态
+		InformationQuery businessData = this.informationQueryService.getOne(Wrappers.<InformationQuery>lambdaQuery().eq(InformationQuery::getWbsId, primaryKeyId).eq(InformationQuery::getClassify, classify));
+		if(businessData != null){
+			//使用批量废除接口
+			return this.batchAbolish(businessData.getId().toString());
+		}
+		return R.data(300, false, "废除失败,未找到业务数据");
+	}
+
+	/**
+	 * 查询节点状态
+	 */
+	@PostMapping("/queryNodeStatus")
+	@ApiOperationSupport(order = 23)
+	@ApiOperation(value = "/查询节点状态")
+	public R<String> queryNodeStatus(@RequestParam String primaryKeyId, @RequestParam String classify){
+		//查询填报状态
+		InformationQuery businessData = this.informationQueryService.getOne(Wrappers.<InformationQuery>lambdaQuery().eq(InformationQuery::getWbsId, primaryKeyId).eq(InformationQuery::getClassify, classify));
+		if(businessData != null){
+			switch (businessData.getStatus()){
+				case 0:
+				case 3:
+					//0属于未上报,3属于已废除,统一为待上报
+					return R.data("2");
+				case 1:
+				case 2:
+					//1属于待审批,2属于已审批,统一为已上报
+					return R.data("3");
+				default:
+					//如果不匹配,默认为未填报
+					return R.data("1");
+			}
+		}
+		return R.data("1");
+	}
+
+	/**
+	 * 填报页单个上报
+	 */
+	@PostMapping("/taskOne")
+	@ApiOperationSupport(order = 22)
+	@ApiOperation(value = "填报页单个上报")
+	public R<Boolean> taskOne(@RequestBody StartTaskVO startTaskVO){
+		//此时的ids是当前节点的primaryKeyId但并不是业务数据ID,需要根据ids和classify去查询具体的业务ID
+		InformationQuery businessData = this.informationQueryService.getOne(Wrappers.<InformationQuery>lambdaQuery().eq(InformationQuery::getWbsId, startTaskVO.getIds().replaceAll(",", "")).eq(InformationQuery::getClassify, startTaskVO.getClassify().toString()));
+		//处理上报信息
+		if(businessData != null){
+			//设置业务数据ID
+			startTaskVO.setIds(businessData.getId().toString());
+			return this.batchTask(startTaskVO);
+		}
+
+		return R.data(300,false,"上报失败");
+	}
+
 	/**
 	 * 本地验签
 	 */
@@ -145,22 +207,27 @@ public class InformationWriteQueryController extends BladeController {
 		//获取所有相关任务记录
 		List<Task> taskList =  this.taskClient.queryTaskListByFormDataId(ids);
 		if(taskList != null && taskList.size() > 0){
-			//执行废除
-			for(Task task : taskList){
-				if(new Integer("1").equals(task.getStatus())){
-					//正在审批,调用废除
-					this.taskClient.abolishTask(task);
-				} else if(new Integer("2").equals(task.getStatus())) {
-					//已审批的任务,修改业务数据的审批状态为未上报并撤签即可
-					this.informationQueryService.update(Wrappers.<InformationQuery>lambdaUpdate().set(InformationQuery::getStatus, 3).in(InformationQuery::getId, Arrays.asList(task.getFormDataId().split(","))));
-					// todo ================== 调用撤签
-					// todo ================== 调用撤签
+			try{
+				//执行废除
+				for(Task task : taskList){
+					if(new Integer("1").equals(task.getStatus())){
+						//正在审批,调用废除
+						this.taskClient.abolishTask(task);
+					} else if(new Integer("2").equals(task.getStatus())) {
+						//已审批的任务,修改业务数据的审批状态为未上报并撤签即可
+						this.informationQueryService.update(Wrappers.<InformationQuery>lambdaUpdate().set(InformationQuery::getStatus, 3).in(InformationQuery::getId, Arrays.asList(task.getFormDataId().split(","))));
+						// todo ================== 调用撤签
+						// todo ================== 调用撤签
+					}
+					//保存操作记录
+					this.operationLogClient.saveUserOperationLog(6, "资料管理", "工序资料", task.getFormDataId());
 				}
-				//保存操作记录
-				this.operationLogClient.saveUserOperationLog(6, "资料管理", "工序资料", task.getFormDataId());
+			}catch (Exception e){
+				e.printStackTrace();
+				return R.data(300, false, "废除失败");
 			}
 		}
-		return R.data(true);
+		return R.data(true, "废除成功");
 	}
 
 	/**
@@ -174,26 +241,31 @@ public class InformationWriteQueryController extends BladeController {
 			//获取数据源id
 			String[] ids = startTaskVO.getIds().split(",");
 			if(ids.length > 0){
-				for(String id : ids){
-					//生成任务实体
-					TaskVO taskVO = new TaskVO();
-					BeanUtils.copyProperties(startTaskVO, taskVO);
-					//设置数据源指向
-					taskVO.setFormDataId(id);
-					//设置上报类型
-					taskVO.setApprovalType(1);
-					//上报
-					if(this.taskClient.startTask(taskVO).getData()){
-						//查询审批人
-						List<TaskParallel> taskUsers = this.taskClient.queryApprovalUser(id);
-						if(taskUsers.size() > 0){
-							//生成审批人信息
-							StringBuilder stringBuilder = new StringBuilder();
-							taskUsers.forEach(users -> stringBuilder.append(",").append(users.getTaskUser()).append("-").append(users.getTaskUserName()));
-							//修改记录
-							this.informationQueryService.update(Wrappers.<InformationQuery>lambdaUpdate().set(InformationQuery::getStatus, 1).set(InformationQuery::getAuditUserIdAndName, stringBuilder.substring(1)).eq(InformationQuery::getId, id));
+				try{
+					for(String id : ids){
+						//生成任务实体
+						TaskVO taskVO = new TaskVO();
+						BeanUtils.copyProperties(startTaskVO, taskVO);
+						//设置数据源指向
+						taskVO.setFormDataId(id);
+						//设置上报类型
+						taskVO.setApprovalType(1);
+						//上报
+						if(this.taskClient.startTask(taskVO).getData()){
+							//查询审批人
+							List<TaskParallel> taskUsers = this.taskClient.queryApprovalUser(id);
+							if(taskUsers.size() > 0){
+								//生成审批人信息
+								StringBuilder stringBuilder = new StringBuilder();
+								taskUsers.forEach(users -> stringBuilder.append(",").append(users.getTaskUser()).append("-").append(users.getTaskUserName()));
+								//修改记录
+								this.informationQueryService.update(Wrappers.<InformationQuery>lambdaUpdate().set(InformationQuery::getStatus, 1).set(InformationQuery::getAuditUserIdAndName, stringBuilder.substring(1)).eq(InformationQuery::getId, id));
+							}
 						}
 					}
+				}catch (Exception e){
+					e.printStackTrace();
+					return R.data(300, false, "上报失败");
 				}
 				//保存操作记录
 				this.operationLogClient.saveUserOperationLog(5, "资料管理", "工序资料", startTaskVO.getIds());

+ 5 - 0
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/OpinionUserClientImpl.java

@@ -33,6 +33,11 @@ public class OpinionUserClientImpl implements OpinionUserClient {
 
     private final IUserOpinionFileService userOpinionFileService;
 
+    @Override
+    public List<UserOpinion> queryOpinionTypeAmount() {
+        return this.userOpinionService.queryOpinionTypeAmount();
+    }
+
     @Override
     public BusinessUserOpinionVO queryOpinionDetailsById(String userOpinionId) {
         UserOpinion userOpinion = this.userOpinionService.getById(userOpinionId);

+ 2 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/UserOpinionMapper.java

@@ -32,6 +32,8 @@ import java.util.List;
  */
 public interface UserOpinionMapper extends BaseMapper<UserOpinion> {
 
+	List<UserOpinion> queryOpinionTypeAmount();
+
 	List<BusinessUserOpinionVO> queryManageUserOpinionList(@Param("currentUser") String currentUser);
 
 	List<UserOpinion> queryCurrentUserOpinionList(@Param("userId")Long userId);

+ 4 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/UserOpinionMapper.xml

@@ -37,6 +37,10 @@
         <result column="manage_user_name" property="managerUserName"/>
     </resultMap>
 
+    <select id="queryOpinionTypeAmount" resultMap="userOpinionResultMap">
+        select project_id, problem_type from u_user_opinion where is_deleted = 0
+    </select>
+
     <select id="queryManageUserOpinionList" resultMap="businessUserOpinionMap">
         select
             re.*

+ 2 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/IUserOpinionService.java

@@ -18,6 +18,8 @@ import java.util.List;
  */
 public interface IUserOpinionService extends BaseService<UserOpinion> {
 
+	List<UserOpinion> queryOpinionTypeAmount();
+
 	/**
 	 * 获取所有工单及相应进度
 	 * @return 结果集

+ 5 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/UserOpinionServiceImpl.java

@@ -49,6 +49,11 @@ public class UserOpinionServiceImpl extends BaseServiceImpl<UserOpinionMapper, U
 
 	private final IUserOpinionGoodService userOpinionGoodService;
 
+	@Override
+	public List<UserOpinion> queryOpinionTypeAmount() {
+		return this.baseMapper.queryOpinionTypeAmount();
+	}
+
 	@Override
 	public IPage<BusinessUserOpinionVO> queryBusinessUserOpinionListAll(Query query) {
 		return this.queryBusinessUserOpinionList(null, query);

+ 152 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ManagerHomePageController.java

@@ -2,11 +2,16 @@ package org.springblade.manager.controller;
 
 import cn.hutool.core.date.DateUtil;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.mixsmart.utils.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.springblade.business.entity.UserOpinion;
 import org.springblade.business.feign.OpinionUserClient;
 import org.springblade.business.vo.BusinessUserOpinionVO;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.manager.service.ISignPfxFileService;
 import org.springblade.manager.vo.ManagerHomePageVO;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.tool.api.R;
@@ -15,13 +20,20 @@ import org.springblade.manager.entity.ProjectInfo;
 import org.springblade.manager.service.IContractInfoService;
 import org.springblade.manager.service.IProjectInfoService;
 import org.springblade.manager.vo.ProjectUserAmountVO;
+import org.springblade.manager.vo.SingPfxManagementVO;
+import org.springblade.system.entity.DictBiz;
+import org.springblade.system.feign.IDictBizClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 @RestController
 @AllArgsConstructor
@@ -37,6 +49,128 @@ public class ManagerHomePageController extends BladeController {
 
     private final IContractInfoService contractInfoService;
 
+    private final IDictBizClient dictBizClient;
+
+    private final ISignPfxFileService signPfxFileService;
+
+    /**
+     * 证书统计
+     */
+    @PostMapping("/queryProjectPfx")
+    @ApiOperationSupport(order = 6)
+    @ApiOperation(value = "证书统计")
+    public R<ManagerHomePageVO> queryProjectPfx(){
+        Query query = new Query();
+        query.setSize(6000);
+        query.setCurrent(1);
+
+        //返回参数
+        ManagerHomePageVO reVO = new ManagerHomePageVO();
+
+        List<SingPfxManagementVO> result = this.signPfxFileService.singPfxManagementPage(Condition.getPage(query), new SingPfxManagementVO(1, 6000)).getRecords();
+        if(result != null && result.size() > 0){
+            //过滤掉企业证书和个人证书数量都为0的项目
+            result.removeIf(vo -> (StringUtils.isEmpty(vo.getEnterpriseCount()) || "0".equals(vo.getEnterpriseCount()))
+                    && (StringUtils.isEmpty(vo.getPersonalCount()) || "0".equals(vo.getPersonalCount())));
+            //设置参数
+            result.forEach(vo -> reVO.setPfxList(vo.getProjectName(), vo.getEnterpriseCount(), vo.getPersonalCount()));
+
+        }
+        return R.data(reVO);
+    }
+
+    /**
+     * 维护类型统计汇总
+     */
+    @PostMapping("/queryOpinionTypeAmount")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "维护类型统计汇总")
+    public R<ManagerHomePageVO> queryOpinionTypeAmount(){
+        //获取所有工单信息
+        List<UserOpinion> opinions = this.opinionUserClient.queryOpinionTypeAmount();
+
+        //生成返回对象
+        ManagerHomePageVO resultVO = new ManagerHomePageVO();
+
+        //获取当前所有有效项目
+        List<ProjectInfo> projectInfos = this.projectInfoService.list();
+
+        //处理数据
+        if(opinions != null && opinions.size() > 0 && opinions.get(0) != null){
+            //获取当前系统规定的分类
+            List<DictBiz> opinionTypes = this.dictBizClient.getList("opinion_type", "").getData();
+            //找到根节点后找到一级节点
+            StringBuilder opinionTypeValue = new StringBuilder();
+            for(DictBiz dictBiz : opinionTypes){
+                if(Long.valueOf("0").equals(dictBiz.getParentId())){
+                    //继续寻找一级节点
+                    for(DictBiz biz : opinionTypes){
+                        if(biz.getParentId().equals(dictBiz.getId())){
+                            opinionTypeValue.append(",").append(biz.getDictValue());
+                        }
+                    }
+                    break;
+                }
+            }
+
+            //删除掉项目ID为空或是-1的数据
+            opinions.removeIf(opinion -> opinion.getProjectId() == null || opinion.getProjectId() == -1);
+
+            String[] opinionTypeValues = opinionTypeValue.toString().split(",");
+
+            //根据项目获取对应的数据结果
+            Iterator<ProjectInfo> projectIterator = projectInfos.iterator();
+            while (projectIterator.hasNext()) {
+                ProjectInfo project = projectIterator.next();
+                //如果找不到自己的数据则删除这个项目
+                boolean isRemove = true;
+                //生成问题map
+                Map<String, Integer> opinionTypeMap = new HashMap<>();
+
+                //循环规定的问题分类
+                for(String key : opinionTypeValues){
+                    if(StringUtils.isNotEmpty(key)){
+                        //找到自己的数据
+                        Iterator<UserOpinion> opinionIterator = opinions.iterator();
+                        while (opinionIterator.hasNext()){
+                            UserOpinion userOpinion = opinionIterator.next();
+                            if(userOpinion.getProjectId().equals(project.getId()) && userOpinion.getProblemType().contains(key)){
+                                isRemove = false;
+                                if(!opinionTypeMap.containsKey(key)){
+                                    opinionTypeMap.put(key, 1);
+                                } else {
+                                    opinionTypeMap.put(key, opinionTypeMap.get(key) + 1);
+                                }
+                                //已经处理,删除
+                                opinionIterator.remove();
+                            }
+                        }
+                    }
+                }
+
+                if(isRemove){
+                    //找不到自己的数据,删除
+                    projectIterator.remove();
+                    continue;
+                }
+
+                //根据 opinionTypeMap 的结果设置当前项目的信息
+                StringBuilder typeValue = new StringBuilder();
+                for(String key : opinionTypeValues){
+                    if(StringUtils.isNotEmpty(key)){
+                        typeValue.append(",").append(opinionTypeMap.get(key));
+                    }
+                }
+                //设置信息
+                resultVO.setUserOpinionList(project.getId().toString(), project.getProjectName(), opinionTypeValue.substring(1).replaceAll("null", "0"), typeValue.substring(1).replaceAll("null", "0"));
+            }
+        }
+        //设置项目
+        resultVO.setProjectInfos(projectInfos);
+
+        return R.data(resultVO);
+    }
+
     /**
      * 项目人员统计
      */
@@ -46,13 +180,23 @@ public class ManagerHomePageController extends BladeController {
     public R<ManagerHomePageVO> queryProjectUserAmount(){
         //查询各项目下人员数量
         List<ProjectUserAmountVO> result = this.projectInfoService.queryProjectUserAmount();
-        ManagerHomePageVO vo = new ManagerHomePageVO();
-        vo.setProjectUserAmountVOList(result);
 
         //统计数量
-        final int[] amount = {0};
-        result.forEach(amountVO -> amount[0] = amount[0] + amountVO.getContractor() + amountVO.getSupervision() + amountVO.getOwner());
-        vo.setProjectUserAmount(amount[0]);
+        int amount = 0;
+        Iterator<ProjectUserAmountVO> iterator = result.iterator();
+        while (iterator.hasNext()) {
+            ProjectUserAmountVO vo = iterator.next();
+            int count = vo.getOwner() + vo.getSupervision() + vo.getContractor();
+            if(count <= 0){
+                iterator.remove();
+            }
+            amount = amount + count;
+        }
+
+        //设置返回
+        ManagerHomePageVO vo = new ManagerHomePageVO();
+        vo.setProjectUserAmountVOList(result);
+        vo.setProjectUserAmount(amount);
 
         return R.data(vo);
     }
@@ -99,7 +243,7 @@ public class ManagerHomePageController extends BladeController {
                 String title = "待办工单任务:" + vo.getManageTime() + "来自" + "【" + vo.getProjectName() + "-" + vo.getContractName() + "】" +
                         "的【" + "资料员" + vo.getSubmitUserName() + "】" + "向您反馈" + "\"" + vo.getProblemType() + "\"";
 
-                resultVO.setUserOpinionList(vo.getUserOpinionId().toString(), title, vo.getCurrentLink(), vo.getNewNumber(), vo.getCurrentLinkId().toString(), vo.getOperation());
+                resultVO.setUserOpinionFlowList(vo.getUserOpinionId().toString(), title, vo.getCurrentLink(), vo.getNewNumber(), vo.getCurrentLinkId().toString(), vo.getOperation());
             });
         }catch (Exception e){
             e.printStackTrace();
@@ -132,10 +276,10 @@ public class ManagerHomePageController extends BladeController {
                             "的【" + "资料员" + vo.getSubmitUserName() + "】" + "向您反馈" + "\"" + vo.getProblemType() + "\"";
                 } else {
                     title = "待办工单任务:" + vo.getManageTime() + "来自" + "【" + vo.getProjectName() + "-" + vo.getContractName() + "】" +
-                            "的【" + "资料员" + vo.getSubmitUserName() + "】" + "向" + vo.getManagerUserName() + "反馈" + "\"" + vo.getProblemType() + "\"";
+                            "的【" + "资料员" + vo.getSubmitUserName() + "】" + "向" + vo.getManagerUserName() + "反馈" + "\"" + vo.getProblemType() + "\"";
                 }
 
-                resultVO.setUserOpinionList(vo.getUserOpinionId().toString(), title, vo.getCurrentLink(), vo.getNewNumber(), vo.getCurrentLinkId().toString(), vo.getOperation());
+                resultVO.setUserOpinionFlowList(vo.getUserOpinionId().toString(), title, vo.getCurrentLink(), vo.getNewNumber(), vo.getCurrentLinkId().toString(), vo.getOperation());
             });
 
         }catch (Exception e){

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ProjectInfoMapper.xml

@@ -42,7 +42,7 @@
     </resultMap>
 
     <resultMap id="projectUserAmount" type="org.springblade.manager.vo.ProjectUserAmountVO">
-        <result column="project_name" property="projectName"/>
+        <result column="project_alias" property="projectName"/>
         <result column="contractor" property="contractor"/>
         <result column="supervision" property="supervision"/>
         <result column="owner" property="owner"/>
@@ -50,7 +50,7 @@
 
     <select id="queryProjectUserAmount" resultMap="projectUserAmount">
         select
-            mpi.project_name,
+            mpi.project_alias,
             (select count(id) end from m_project_assignment_user where project_id = mpi.id and role_id in(select id from blade_role where id = '1537247986361782274' or parent_id = '1537247986361782274')) as contractor,
             (select count(id) end from m_project_assignment_user where project_id = mpi.id and role_id in(select id from blade_role where id = '1537246384519335938' or parent_id = '1537246384519335938')) as supervision,
             (select count(id) end from m_project_assignment_user where project_id = mpi.id and role_id in(select id from blade_role where id = '1537246243393589249' or parent_id = '1537246243393589249')) as owner