bj 1 mês atrás
pai
commit
2187ce0bdb

+ 2 - 0
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectMemoManagerImpl.java

@@ -205,6 +205,7 @@ public class CostProjectMemoManagerImpl extends BaseManagerImpl<CostProjectMemoD
 					costNotice.setNoticeType("1");
 					costNotice.setNoticeContent(t.getContent());
 					costNotice.setEnterpriseId(projectApproval.getAuditedUnitId());
+					costNotice.setNoticeSource("备忘录");
 					costNotice.setSendTarget(leaderId);
 					noticeList.add(costNotice);
 				}
@@ -219,6 +220,7 @@ public class CostProjectMemoManagerImpl extends BaseManagerImpl<CostProjectMemoD
 						costNotice.setNoticeType("1");
 						costNotice.setNoticeContent(t.getContent());
 						costNotice.setEnterpriseId(projectApproval.getAuditedUnitId());
+						costNotice.setNoticeSource("备忘录");
 						costNotice.setSendTarget(s);
 						noticeList.add(costNotice);
 					}

+ 43 - 0
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectTaskManagerImpl.java

@@ -27,6 +27,7 @@ import com.hotent.uc.manager.UserManager;
 import com.hotent.uc.model.Org;
 import com.hotent.uc.model.User;
 import com.hotent.uc.util.ContextUtil;
+import io.seata.common.util.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -936,6 +937,48 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
 
         Page<CostProjectTask> page = new Page<>(req.getPageNum(), req.getPageSize());
         IPage<CostProjectTask> result = costProjectTaskManager.page(page, queryWrapper);
+        List<CostProjectTask> rootList = result.getRecords();
+        if (rootList == null || rootList.isEmpty()) {
+            return result;
+        }
+        Set<String> allProjectIds = new HashSet<>();
+        rootList.forEach(t -> allProjectIds.add(t.getProjectId()));
+        List<CostProjectApproval> approvalList = costProjectApprovalManager.list(
+                new LambdaQueryWrapper<CostProjectApproval>()
+                        .in(CostProjectApproval::getProjectId, allProjectIds)
+        );
+        Map<String, CostProjectApproval> approvalMap =
+                approvalList.stream().collect(
+                        Collectors.toMap(CostProjectApproval::getProjectId, v -> v)
+                );
+
+        for (CostProjectTask rootTask : rootList) {
+            // 任务状态
+            rootTask.setStatusName(TaskStatusConstant.getStatusNameByCode(rootTask.getStatus()));
+            rootTask.setCurrentNodeName(NodeConstant.getNodeValueByKey(rootTask.getCurrentNode()));
+            rootTask.setWarningStatus(calculateWarningStatus(rootTask));
+            // 找根任务
+            String pid = rootTask.getPid();
+            if(StringUtils.isNotBlank( pid)){
+                CostProjectTask rrootTask = this.getById(pid);
+                if(rrootTask != null){
+                    rootTask.setAuditPeriod(rrootTask.getAuditPeriod());
+                }
+            }
+            // 设置目录
+            CostProjectApproval rootDetail = approvalMap.get(rootTask.getProjectId());
+            if (rootDetail != null) {
+                rootTask.setCatalogId(rootDetail.getCatalogId());
+                if (StringUtil.isNotEmpty(rootDetail.getAreaCode())) {
+                    CostDistrict district = costDistrictManager.getOne(
+                            new LambdaQueryWrapper<CostDistrict>()
+                                    .eq(CostDistrict::getCode, rootDetail.getAreaCode())
+                    );
+                    rootTask.setAreaName(district != null ? district.getName() : "山西省");
+                }
+            }
+        }
+
         return result;
     }
 

+ 1 - 1
assistMg/src/main/resources/mapper/CostProjectMemoMapper.xml

@@ -143,7 +143,7 @@
         cpm.project_id = cpa.project_id
         <where>
 			<if test="userId != null and userId != ''">
-				and (cpa.leader_id = #{userId} or cpa.audit_group like concat('%,',#{userId},',%'))
+				and (cpa.leader_id = #{userId} OR FIND_IN_SET(#{userId}, cpa.audit_group) > 0)
 			</if>
 			<if test=" content != null and content != '' ">
 				AND cpm.content LIKE CONCAT('%', #{content}, '%')