浏览代码

日志划分

huangjn 3 年之前
父节点
当前提交
5ce701bc61
共有 15 个文件被更改,包括 183 次插入30 次删除
  1. 3 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/UserOpinion.java
  2. 3 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/BusinessUserOpinionVO.java
  3. 16 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/SaveLogContractVO.java
  4. 7 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ProjectInfo.java
  5. 11 0
      blade-service/blade-business/src/main/java/org/springblade/business/controller/BusinessUserOpinionController.java
  6. 19 4
      blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java
  7. 5 5
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/InformationQueryMapper.xml
  8. 4 1
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/UserOpinionMapper.xml
  9. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/InformationQueryServiceImpl.java
  10. 16 11
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java
  11. 12 7
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ManagerHomePageController.java
  12. 10 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsInfoController.java
  13. 74 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java
  14. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java
  15. 1 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ProjectInfoMapper.xml

+ 3 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/UserOpinion.java

@@ -74,4 +74,7 @@ public class UserOpinion extends BaseEntity {
     @ApiModelProperty(value = "工单点赞总数")
     private Integer goodNumber;
 
+    @ApiModelProperty(value = "是否忽略")
+    private Integer isIgnore;
+
 }

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

@@ -120,4 +120,7 @@ public class BusinessUserOpinionVO {
     @ApiModelProperty(value = "分配的处理人姓名")
     private String managerUserName;
 
+    @ApiModelProperty(value = "是否忽略")
+    private Integer isIgnore;
+
 }

+ 16 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/SaveLogContractVO.java

@@ -0,0 +1,16 @@
+package org.springblade.business.vo;
+
+import lombok.Data;
+
+@Data
+public class SaveLogContractVO {
+
+    private String contractId;
+
+    private String projectId;
+
+    private String wbsId;
+
+    private String wbsTreeIds;
+
+}

+ 7 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ProjectInfo.java

@@ -141,4 +141,11 @@ public class ProjectInfo extends BaseEntity {
      */
     @ApiModelProperty(value = "wbs私有树引用wbs模板类型")
     private String referenceWbsTemplateType;
+
+    /**
+     * wbs私有树引用wbs日志模板id
+     */
+    @ApiModelProperty(value = "wbs私有树引用wbs日志模板id")
+    private Long referenceLogWbsTemplateId;
+
 }

+ 11 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/BusinessUserOpinionController.java

@@ -10,6 +10,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.apache.http.client.utils.DateUtils;
+import org.springblade.business.entity.UserOpinion;
 import org.springblade.business.entity.UserOpinionFile;
 import org.springblade.business.entity.UserOpinionFlow;
 import org.springblade.business.service.IUserOpinionFileService;
@@ -41,6 +42,16 @@ public class BusinessUserOpinionController {
 
     private final IUserOpinionFileService userOpinionFileService;
 
+    /**
+     * isIgnore
+     */
+    @PostMapping("/isIgnore")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "是否忽略")
+    public R<Boolean> isIgnore(@RequestParam String userOpinionId){
+        return R.data(this.userOpinionService.update(Wrappers.<UserOpinion>lambdaUpdate().set(UserOpinion::getIsIgnore, 1).eq(UserOpinion::getId, userOpinionId)));
+    }
+
     /**
      * 考核区分页
      */

+ 19 - 4
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -118,6 +118,8 @@ public class InformationWriteQueryController extends BladeController {
 	@ApiOperationSupport(order = 23)
 	@ApiOperation(value = "/查询节点状态")
 	public R<String> queryNodeStatus(@RequestParam String primaryKeyId, @RequestParam String classify){
+		//记录状态
+		String status = "1";
 		//查询填报状态
 		InformationQuery businessData = this.informationQueryService.getOne(Wrappers.<InformationQuery>lambdaQuery().eq(InformationQuery::getWbsId, primaryKeyId).eq(InformationQuery::getClassify, classify));
 		if(businessData != null){
@@ -125,17 +127,30 @@ public class InformationWriteQueryController extends BladeController {
 				case 0:
 				case 3:
 					//0属于未上报,3属于已废除,统一为待上报
-					return R.data("2");
+					status = "2";
+					break;
 				case 1:
 				case 2:
 					//1属于待审批,2属于已审批,统一为已上报
-					return R.data("3");
+					status = "3";
+					break;
 				default:
 					//如果不匹配,默认为未填报
-					return R.data("1");
+					status = "1";
+					break;
 			}
 		}
-		return R.data("1");
+		//查询表格
+		List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId), "queryTable");
+		if(tableList != null && tableList.size() > 0 && "1".equals(status)){
+			for(WbsTreeContract table : tableList){
+//				if(table){
+//
+//				}
+			}
+		}
+
+		return R.data(status);
 	}
 
 	/**

+ 5 - 5
blade-service/blade-business/src/main/java/org/springblade/business/mapper/InformationQueryMapper.xml

@@ -89,8 +89,8 @@
         <if test="query.queryValue != null and query.queryValue != ''"> and (name like concat('%',#{query.queryValue},'%') OR number like concat('%',#{query.queryValue},'%')) </if>
         <if test="query.wbsIds != null">
             and wbs_id in
-            <foreach collection="query.wbsIds" item="wbsId" open="(" separator="," close=")">
-                #{wbsId}
+            <foreach collection="query.wbsIds" item="wbsIdc" open="(" separator="," close=")">
+                #{wbsIdc}
             </foreach>
         </if>
     </select>
@@ -103,7 +103,7 @@
             query.create_time,
             query.status,
             query.report_number,
-            query.file_user_id_and_name
+            query.file_user_id_and_name,
             query.pdf_url,
             query.e_visa_pdf_url
         from
@@ -131,8 +131,8 @@
             <if test="query.queryValue != null and query.queryValue != ''"> and (name like concat('%',#{query.queryValue},'%') OR number like concat('%',#{query.queryValue},'%')) </if>
             <if test="query.wbsIds != null">
                 and wbs_id in
-                <foreach collection="query.wbsIds" item="wbsId" open="(" separator="," close=")">
-                    #{wbsId}
+                <foreach collection="query.wbsIds" item="wbsIdc" open="(" separator="," close=")">
+                    #{wbsIdc}
                 </foreach>
             </if>
         ) AS query

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

@@ -19,6 +19,7 @@
         <result column="number" property="number"/>
         <result column="problem_type" property="problemType"/>
         <result column="good_number" property="goodNumber"/>
+        <result column="is_ignore" property="isIgnore"/>
     </resultMap>
 
     <resultMap id="businessUserOpinionMap" type="org.springblade.business.vo.BusinessUserOpinionVO">
@@ -35,6 +36,7 @@
         <result column="newNumber" property="newNumber"/>
         <result column="evaluation" property="evaluation"/>
         <result column="manage_user_name" property="managerUserName"/>
+        <result column="manage_user_name" property="managerUserName"/>
     </resultMap>
 
     <select id="queryOpinionTypeAmount" resultMap="userOpinionResultMap">
@@ -59,7 +61,8 @@
                 uof.number as number,
                 uo.number as newNumber,
                 uof.evaluation as evaluation,
-                uof.manage_user_name
+                uof.manage_user_name,
+                uo.is_ignore
             from
                 u_user_opinion as uo
             left join m_project_info as pi on uo.project_id = pi.id

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/InformationQueryServiceImpl.java

@@ -148,7 +148,7 @@ public class InformationQueryServiceImpl extends BaseServiceImpl<InformationQuer
 		Integer count = this.baseMapper.countInformationQuery(vo);
 		//多节点查询
 		if(vo.getWbsId() != null){
-			vo.setWbsIds(JSONArray.parseArray(JSONObject.toJSONString(String.valueOf(vo.getWbsId()).split(",")), String.class));
+			vo.setWbsIds(JSONArray.parseArray(JSONObject.toJSONString(Arrays.asList(String.valueOf(vo.getWbsId()).split(","))), String.class));
 		}
 
 		if(StringUtils.isNotEmpty(vo.getBetweenTime())){

+ 16 - 11
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -112,17 +112,22 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
         if(query != null){
             //查询对应的数据
             TaskApprovalVO vo = new TaskApprovalVO();
-            vo.setApprovalFileList(query.getName(), StringUtils.isNotEmpty(query.getEVisaPdfUrl()) ? query.getEVisaPdfUrl() : query.getPdfUrl());
-
-//            List<WbsTreeContract> tableData = this.wbsTreeContractClient.queryProcessSubmitBusinessDataByPrimaKeyIdAndClassify(query.getWbsId().toString(), query.getClassify().toString());
-//            if(tableData != null && tableData.size() > 0){
-//                //转换数据
-//                TaskApprovalVO vo = new TaskApprovalVO();
-//                for(WbsTreeContract node : tableData){
-//                    vo.setApprovalFileList(node.getDeptName(), node.getPdfUrl());
-//                }
-//                return vo;
-//            }
+
+            if(StringUtils.isEmpty(query.getEVisaPdfUrl()) && StringUtils.isEmpty(query.getPdfUrl())){
+                //两个都为空,需要去其它地方获取数据
+                List<WbsTreeContract> tableData = this.wbsTreeContractClient.queryProcessSubmitBusinessDataByPrimaKeyIdAndClassify(query.getWbsId().toString(), query.getClassify().toString());
+                if(tableData != null && tableData.size() > 0){
+                    //设置数据
+                    for(WbsTreeContract node : tableData){
+                        vo.setApprovalFileList(node.getDeptName(), node.getPdfUrl());
+                    }
+                    return vo;
+                }
+            } else {
+                //反之直接获取
+                vo.setApprovalFileList(query.getName(), StringUtils.isNotEmpty(query.getEVisaPdfUrl()) ? query.getEVisaPdfUrl() : query.getPdfUrl());
+                return vo;
+            }
         }
         return null;
     }

+ 12 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ManagerHomePageController.java

@@ -243,10 +243,12 @@ public class ManagerHomePageController extends BladeController {
             result.removeIf(BusinessUserOpinionVO::getIsCurrent);
             //拼接数据
             result.forEach(vo -> {
-                String title = "待办工单任务:" + vo.getManageTime() + "来自" + "【" + vo.getProjectName() + "-" + vo.getContractName() + "】" +
-                        "的【" + "资料员" + vo.getSubmitUserName() + "】" + "向您反馈" + "\"" + vo.getProblemType() + "\"";
+                if(!new Integer("1").equals(vo.getIsIgnore())){
+                    String title = "待办工单任务:" + vo.getManageTime() + "来自" + "【" + vo.getProjectName() + "-" + vo.getContractName() + "】" +
+                            "的【" + "资料员" + vo.getSubmitUserName() + "】" + "向您反馈" + "\"" + vo.getProblemType() + "\"";
 
-                resultVO.setUserOpinionFlowList(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();
@@ -275,14 +277,17 @@ public class ManagerHomePageController extends BladeController {
             result.forEach(vo -> {
                 String title;
                 if(vo.getOperation()){
-                    title = "待办工单任务:" + vo.getManageTime() + "来自" + "【" + vo.getProjectName() + "-" + vo.getContractName() + "】" +
-                            "的【" + "资料员" + vo.getSubmitUserName() + "】" + "向您反馈" + "\"" + vo.getProblemType() + "\"";
+                    //有操作权限且没有被忽略的
+                    if(!new Integer("1").equals(vo.getIsIgnore())){
+                        title = "待办工单任务:" + vo.getManageTime() + "来自" + "【" + vo.getProjectName() + "-" + vo.getContractName() + "】" +
+                                "的【" + "资料员" + vo.getSubmitUserName() + "】" + "向您反馈" + "\"" + vo.getProblemType() + "\"";
+                        resultVO.setUserOpinionFlowList(vo.getUserOpinionId().toString(), title, vo.getCurrentLink(), vo.getNewNumber(), vo.getCurrentLinkId().toString(), vo.getOperation());
+                    }
                 } else {
                     title = "待办工单任务:" + vo.getManageTime() + "来自" + "【" + vo.getProjectName() + "-" + vo.getContractName() + "】" +
                             "的【" + "资料员" + vo.getSubmitUserName() + "】" + "向【" + vo.getManagerUserName() + "】反馈" + "\"" + vo.getProblemType() + "\"";
+                    resultVO.setUserOpinionFlowList(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){

+ 10 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsInfoController.java

@@ -59,6 +59,16 @@ public class WbsInfoController extends BladeController {
     private final IWbsTreeService wbsTreeService;
     private final WbsTreePrivateMapper wbsTreePrivateMapper;
 
+    /**
+     * 获取日志类型划分模板
+     */
+    @GetMapping("/queryLogTree")
+    @ApiOperationSupport(order = 9)
+    @ApiOperation(value = "获取日志类型划分模板")
+    public R<List<WbsInfo>> queryLogTree(){
+        return R.data(this.wbsInfoService.list(Wrappers.<WbsInfo>lambdaQuery().eq(WbsInfo::getWbsType, 4)));
+    }
+
     /**
      * 详情
      */

+ 74 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -2,8 +2,11 @@ package org.springblade.manager.controller;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.mixsmart.utils.StringUtils;
 import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
+import org.springblade.business.vo.SaveLogContractVO;
+import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.log.exception.ServiceException;
@@ -14,18 +17,26 @@ import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.dto.WbsTreePrivateDTO2;
 import org.springblade.manager.dto.WbsTreePrivateDTO3;
+import org.springblade.manager.entity.ProjectInfo;
+import org.springblade.manager.entity.WbsTree;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.mapper.WbsTreeContractMapper;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
+import org.springblade.manager.service.IProjectInfoService;
 import org.springblade.manager.service.IWbsTreePrivateService;
+import org.springblade.manager.service.IWbsTreeService;
 import org.springblade.manager.vo.WbsNodeTableVO;
 import org.springblade.manager.vo.WbsTreePrivateVO;
 import org.springblade.manager.wrapper.WbsTreePrivateWrapper;
+import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
 import java.util.List;
 
 import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
@@ -45,6 +56,69 @@ public class WbsTreePrivateController extends BladeController {
     private final WbsTreeContractMapper wbsTreeContractMapper;
     private final WbsTreePrivateMapper wbsTreePrivateMapper;
 
+    private final IWbsTreeService wbsTreeService;
+
+    private final IProjectInfoService projectInfoService;
+
+    /**
+     * 保存项目日志划分
+     */
+    @PostMapping("/saveContractLogNode")
+    @ApiOperationSupport(order = 12)
+    @ApiOperation(value = "保存项目日志划分")
+    public R<Boolean> saveContractLogNode(@RequestBody SaveLogContractVO vo){
+        if(StringUtils.isNotEmpty(vo.getWbsTreeIds())){
+            //获取当前项目已经划分的日志树
+            List<WbsTreePrivate> oldDataList = this.wbsTreePrivateService.list(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, vo.getProjectId()).eq(WbsTreePrivate::getWbsType, "4").eq(WbsTreePrivate::getWbsId, vo.getWbsId()));
+
+            //需要保存的集合
+            List<WbsTreePrivate> saveTreePrivateList = new ArrayList<>();
+
+            //模板节点
+            List<String> wbsTreeIds = new ArrayList<>(Arrays.asList(vo.getWbsTreeIds().split(",")));
+
+            if(oldDataList != null && oldDataList.size() > 0){
+                //只新增节点
+                //检查哪些节点是重复的,删除
+                Iterator<String> iterator = wbsTreeIds.iterator();
+                while (iterator.hasNext()){
+                    String id = iterator.next();
+                    for(WbsTreePrivate oldPrivate : oldDataList){
+                        if(oldPrivate.getId().toString().equals(id)){
+                            iterator.remove();
+                            break;
+                        }
+                    }
+                }
+            }
+
+            if(wbsTreeIds.size() > 0){
+                //获取模板
+                List<WbsTree> wbsTreeList = this.wbsTreeService.list(Wrappers.<WbsTree>lambdaQuery().in(WbsTree::getId, wbsTreeIds));
+                //复制数据
+                for(WbsTree tree : wbsTreeList){
+                    WbsTreePrivate treePrivate = new WbsTreePrivate();
+                    BeanUtils.copyProperties(tree, treePrivate);
+                    saveTreePrivateList.add(treePrivate);
+                    treePrivate.setWbsType("4");
+                    treePrivate.setProjectId(vo.getProjectId());
+                    treePrivate.setPKeyId(SnowFlakeUtil.getId());
+                }
+                if(saveTreePrivateList.size() > 0){
+                    //修改项目引用
+                    this.projectInfoService.update(Wrappers.<ProjectInfo>lambdaUpdate().set(ProjectInfo::getReferenceLogWbsTemplateId, vo.getWbsId()).eq(ProjectInfo::getId, vo.getProjectId()));
+
+                    //保存数据
+                    return R.data(this.wbsTreePrivateService.saveBatch(saveTreePrivateList));
+                }
+            } else {
+                return R.data(200, true, "不需要新增节点");
+            }
+
+        }
+        return R.data(300, false, "保存失败");
+    }
+
     /**
      * 私有库节点逻辑删除
      */

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java

@@ -34,7 +34,7 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
     @Override
     public List<WbsTreeContract> queryProcessSubmitBusinessDataByPrimaKeyIdAndClassify(String primaKeyId, String classify) {
         WbsTreeContract keyNode = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, primaKeyId));
-        return this.wbsTreeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getParentId, keyNode.getId()).eq(WbsTreeContract::getType, 2)
+        return this.wbsTreeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getContractId, keyNode.getContractId()).eq(WbsTreeContract::getParentId, keyNode.getId()).eq(WbsTreeContract::getType, 2)
                 .in(WbsTreeContract::getTableType, "1".equals(classify) ? Arrays.asList("1,2,3".split(",")) : Arrays.asList("4,5,6".split(","))));
     }
 

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

@@ -31,6 +31,7 @@
         <result column="is_open_sign" property="isOpenSign"/>
         <result column="reference_wbs_template_id" property="referenceWbsTemplateId"/>
         <result column="reference_wbs_template_type" property="referenceWbsTemplateType"/>
+        <result column="reference_log_wbs_template_id" property="referenceLogWbsTemplateId"/>
     </resultMap>
 
     <resultMap id="singPfxManagementResultMap" type="org.springblade.manager.vo.SingPfxManagementVO">