huangjn 3 gadi atpakaļ
vecāks
revīzija
ce8af4adf2

+ 2 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/QueryProcessDataVO.java

@@ -21,6 +21,8 @@ public class QueryProcessDataVO {
 
     private Integer majorDataType;
 
+    private Integer nodeType;
+
     private String firstId;
 
 }

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

@@ -13,11 +13,13 @@ 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.feign.MessageWarningClient;
 import org.springblade.business.service.IUserOpinionFileService;
 import org.springblade.business.service.IUserOpinionFlowService;
 import org.springblade.business.service.IUserOpinionService;
 import org.springblade.business.vo.AssessmentUserVOS;
 import org.springblade.business.vo.BusinessUserOpinionVO;
+import org.springblade.business.vo.MessageWarningVO;
 import org.springblade.business.vo.UserOpinionFlowVO;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -42,6 +44,8 @@ public class BusinessUserOpinionController {
 
     private final IUserOpinionFileService userOpinionFileService;
 
+    private final MessageWarningClient messageWarningClient;
+
     /**
      * isIgnore
      */
@@ -122,6 +126,10 @@ public class BusinessUserOpinionController {
         }
         //获取当前操作用户
         BladeUser user = AuthUtil.getUser();
+
+        //获取工单
+        UserOpinion userOpinion = this.userOpinionService.getById(userOpinionId);
+
         //获取当前最新流程
         List<UserOpinionFlowVO> flowVOS = this.userOpinionFlowService.queryCurrentUserOpinionFlowByUserOpinionId(userOpinionId, newNumber);
 
@@ -162,15 +170,37 @@ public class BusinessUserOpinionController {
                 List<Long> ids = flowVOS.stream().map(UserOpinionFlowVO::getId).distinct().collect(Collectors.toList());
                 this.userOpinionFlowService.update(Wrappers.<UserOpinionFlow>lambdaUpdate().set(UserOpinionFlow::getManageTime, manageTime).in(UserOpinionFlow::getId, ids));
             }
+            //内容
+            String content = "";
 
             if(nextLink != null && StringUtils.isNotEmpty(String.valueOf(nextLink))){
+                content = "用户" + userOpinion.getCreateUserName() + ",您好,您所提交的【" + userOpinion.getProblemType() + ":" + userOpinion.getOpinionContent() + "】工单服务已经进入人工处理环节,处理人:" + AuthUtil.getNickName();
+
                 //提交"进入人工处理环节"操作
                 result = this.userOpinionFlowService.update(Wrappers.<UserOpinionFlow>lambdaUpdate().set(UserOpinionFlow::getReplyContent, "预计" + manageTime + "之前完成").set(UserOpinionFlow::getUpdateTime, new Date()).set(UserOpinionFlow::getIsCurrent, new Integer("3").equals(currentLink) ? 2 : 1).eq(UserOpinionFlow::getId, nextLink));
             }
             if(nextLinkEnd != null && StringUtils.isNotEmpty(String.valueOf(nextLinkEnd))){
+                content = "用户" + userOpinion.getCreateUserName() + ",您好,您所提交的【" + userOpinion.getProblemType() + ":" + userOpinion.getOpinionContent() + "】工单服务已解决,请及时查看,处理人:" + AuthUtil.getNickName();
+
                 //提交"已解决"操作
                 result = this.userOpinionFlowService.update(Wrappers.<UserOpinionFlow>lambdaUpdate().set(UserOpinionFlow::getUpdateTime, new Date()).set(UserOpinionFlow::getIsCurrent, 2).eq(UserOpinionFlow::getId, nextLinkEnd));
             }
+
+            try{
+                if(StringUtils.isNotEmpty(content)){
+                    this.messageWarningClient.savePushUserMessageWarning(new MessageWarningVO(
+                            null,
+                            null,
+                            4,
+                            content,
+                            userOpinion.getCreateUser(),
+                            0
+                    ));
+                }
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+
             return R.data(result);
         }
         return R.data(false);

+ 3 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -981,6 +981,9 @@ public class InformationWriteQueryController extends BladeController {
 			if(contractAllNodeMap.containsKey(parent.getId().toString())){
 				childs = contractAllNodeMap.get(parent.getId().toString());
 			} else {
+				childs = new ArrayList<>();
+			}
+			if(childs.size() <= 0){
 				if(!Arrays.asList("1,2,3,4".split(",")).contains(parent.getMajorDataType().toString())){
 					childs = this.wbsTreeContractClient.queryChildByParentId(parent, "notQueryTable", "");
 				} else {

+ 1 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/MaterialProgressController.java

@@ -82,6 +82,7 @@ public class MaterialProgressController extends BladeController {
                 if(nodeResult != null && nodeResult.size() > 0){
                     //找到当前节点下的所有填报节点
                     List<QueryProcessDataVO> queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(nodeResult.get(0).getId().toString(), 1, sgContractId);
+
                     //统计
                     this.countAmount(nodeResult, queryDataResult, sgContractId, reVO);
                 }

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

@@ -59,6 +59,8 @@ public class NeiWaiYeProgressController {
 
             //获取当前节点的子节点
             List<WbsTreeContract> childList = this.wbsTreeContractClient.queryChildByParentId(node, "noeQueryTable", "");
+            //删除掉首件的
+            childList.removeIf(child -> child.getDeptCategory() != null && child.getDeptCategory() == 111);
 
             //获取当前节点下的所有填报节点
             List<QueryProcessDataVO> queryProcessDataVOList;

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

@@ -42,6 +42,7 @@
         <result column="parentId" property="parentId"/>
         <result column="title" property="title"/>
         <result column="firstId" property="firstId"/>
+        <result column="nodeType" property="nodeType"/>
     </resultMap>
 
     <resultMap id="intResultMap" type="java.lang.Integer"/>
@@ -70,6 +71,7 @@
             wtc.p_key_id,
             wtc.ancestors,
             wtc.major_data_type,
+            wtc.dept_category AS nodeType,
             wtc.dept_name AS title,
             wtc.parent_id AS parentId,
             uiq.id AS informationQueryId,

+ 41 - 24
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -84,6 +84,9 @@ public class WbsTreePrivateController extends BladeController {
                 }
             }
 
+            //记录需要修改的对象(只改名称)
+            List<WbsTreePrivate> updateList = new ArrayList<>();
+
             //检查一下原本节点的表是否有新增的(只处理新增)
             if(oldDataList != null && oldDataList.size() > 0){
                 for(WbsTreePrivate treePrivate : oldDataList){
@@ -96,33 +99,42 @@ public class WbsTreePrivateController extends BladeController {
                     //校验数量
                     if(wbsTreeTableList != null && wbsTreeTableList.size() > 0){
                         if(treePrivateTableList != null){
-                            if(treePrivateTableList.size() < wbsTreeTableList.size()){
-                                //小于,说明模板节点存在新增,检查哪些是新增的
-                                Iterator<WbsTree> iterator = wbsTreeTableList.iterator();
-                                while (iterator.hasNext()){
-                                    WbsTree tree = iterator.next();
-                                    for(WbsTreePrivate privateNode : treePrivateTableList){
-                                        if(privateNode.getId().equals(tree.getId())){
-                                            //存在,删除
-                                            iterator.remove();
-                                            break;
+                            //小于,说明模板节点存在新增,检查哪些是新增的
+                            Iterator<WbsTree> iterator = wbsTreeTableList.iterator();
+                            while (iterator.hasNext()){
+                                WbsTree tree = iterator.next();
+
+                                for(WbsTreePrivate privateNode : treePrivateTableList){
+                                    if(privateNode.getId().equals(tree.getId())){
+                                        if(
+                                                (StringUtils.isNotEmpty(privateNode.getFullName(), tree.getFullName()) && !privateNode.getFullName().equals(tree.getFullName()))
+                                                ||
+                                                (StringUtils.isNotEmpty(privateNode.getDeptName(), tree.getDeptName()) && !privateNode.getDeptName().equals(tree.getDeptName()))
+                                        ){
+                                            //名字不同,需要修改
+                                            privateNode.setFullName(tree.getFullName());
+                                            privateNode.setDeptName(tree.getDeptName());
+                                            updateList.add(privateNode);
                                         }
+
+                                        //存在,删除
+                                        iterator.remove();
+                                        break;
                                     }
                                 }
-                                //多出来的,新增
-                                if(wbsTreeTableList.size() > 0){
-                                    for(WbsTree wbsTree : wbsTreeTableList){
-                                        WbsTreePrivate newTreePrivate = new WbsTreePrivate();
-                                        BeanUtils.copyProperties(wbsTree, newTreePrivate);
-                                        newTreePrivate.setWbsType("4");
-                                        newTreePrivate.setProjectId(vo.getProjectId());
-                                        newTreePrivate.setCreateTime(now);
-                                        newTreePrivate.setPKeyId(SnowFlakeUtil.getId());
-
-                                        saveTreePrivateList.add(newTreePrivate);
-                                    }
+                            }
+                            //多出来的,新增
+                            if(wbsTreeTableList.size() > 0){
+                                for(WbsTree wbsTree : wbsTreeTableList){
+                                    WbsTreePrivate newTreePrivate = new WbsTreePrivate();
+                                    BeanUtils.copyProperties(wbsTree, newTreePrivate);
+                                    newTreePrivate.setWbsType("4");
+                                    newTreePrivate.setProjectId(vo.getProjectId());
+                                    newTreePrivate.setCreateTime(now);
+                                    newTreePrivate.setPKeyId(SnowFlakeUtil.getId());
+
+                                    saveTreePrivateList.add(newTreePrivate);
                                 }
-
                             }
                         }
                     }
@@ -156,7 +168,12 @@ public class WbsTreePrivateController extends BladeController {
                 this.projectInfoService.update(Wrappers.<ProjectInfo>lambdaUpdate().set(ProjectInfo::getReferenceLogWbsTemplateId, vo.getWbsId()).eq(ProjectInfo::getId, vo.getProjectId()));
 
                 //保存数据
-                return R.data(this.wbsTreePrivateService.saveBatch(saveTreePrivateList));
+                this.wbsTreePrivateService.saveBatch(saveTreePrivateList);
+            }
+            if(updateList.size() > 0){
+                for(WbsTreePrivate treePrivate : updateList){
+                    this.wbsTreePrivateService.update(Wrappers.<WbsTreePrivate>lambdaUpdate().set(WbsTreePrivate::getDeptName, treePrivate.getDeptName()).set(WbsTreePrivate::getFullName, treePrivate.getFullName()).eq(WbsTreePrivate::getPKeyId, treePrivate.getPKeyId()));
+                }
             }
 
             return R.data(200, true, "保存成功");

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

@@ -42,7 +42,7 @@ public class WbsTreePrivateClientImpl implements WbsTreePrivateClient {
 
     @Override
     public List<WbsTreeContractTreeVOS> queryWbsTreePrivateByProjectIdAndId(String projectId, Long id) {
-        List<WbsTreePrivate> result = this.wbsTreePrivateService.list(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, projectId).eq(WbsTreePrivate::getType, 1).like(WbsTreePrivate::getAncestors, id).eq(WbsTreePrivate::getIsDeleted, 0));
+        List<WbsTreePrivate> result = this.wbsTreePrivateService.list(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, projectId).eq(WbsTreePrivate::getType, 1).like(WbsTreePrivate::getAncestors, id));
         if(result != null && result.size() > 0){
             //转换实体
             List<WbsTreePrivateVO> voList = ForestNodeMerger.merge(JSONArray.parseArray(JSONObject.toJSONString(result), WbsTreePrivateVO.class));