Преглед на файлове

增加填报时间上限

seyason преди 2 години
родител
ревизия
2d9b3dd406

+ 5 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -996,5 +996,10 @@ public class ProjectController {
     public HttpRespMsg fixParticipators(Integer companyId, HttpServletRequest request){
         return projectService.fixParticipators(companyId,request);
     }
+
+    @RequestMapping("/removeDuplicateParticipators")
+    public HttpRespMsg removeDuplicateParticipators(Integer companyId, HttpServletRequest request){
+        return projectService.removeDuplicateParticipators(companyId,request);
+    }
 }
 

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java

@@ -121,7 +121,7 @@ public class TaskController {
             List<GroupParticipator> groupParticipatorList = groupParticipatorMapper.selectList(new QueryWrapper<GroupParticipator>().eq("group_id", task.getGroupId()));
             for (TaskExecutor executor : executorList) {
                 if(executor.getExecutorId()!=null){
-                    boolean b = groupParticipatorList.stream().anyMatch(gp -> gp.getUserId().equals(executor.getExecutorId()));
+                    boolean b = groupParticipatorList.stream().anyMatch(gp -> gp.getUserId() != null && gp.getUserId().equals(executor.getExecutorId()));
                     if(!b){
                         GroupParticipator g=new GroupParticipator();
                         g.setGroupId(task.getGroupId());

+ 14 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -1,23 +1,23 @@
 package com.management.platform.entity;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
+import java.math.BigDecimal;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import java.util.List;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.List;
-
 /**
  * <p>
  * 
  * </p>
  *
  * @author Seyason
- * @since 2022-08-24
+ * @since 2022-09-06
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -359,6 +359,13 @@ public class TimeType extends Model<TimeType> {
     @TableField(exist = false)
     private List<User> userList;
 
+    /**
+     * 日报填报时长上限,默认12小时
+     */
+    @TableField("max_report_time")
+    private Float maxReportTime;
+
+
     @Override
     protected Serializable pkVal() {
         return this.companyId;

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java

@@ -186,4 +186,6 @@ public interface ProjectService extends IService<Project> {
     HttpRespMsg batchExchangeIncharger(String projectIds, String inchargerId, HttpServletRequest request);
 
     HttpRespMsg fixParticipators(Integer companyId, HttpServletRequest request);
+
+    HttpRespMsg removeDuplicateParticipators(Integer companyId, HttpServletRequest request);
 }

+ 37 - 12
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -2783,7 +2783,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 //我们只需要第一个sheet
                 XSSFSheet sheet = workbook.getSheetAt(0);
                 //获取全部人员
-                List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()));
+                List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()).eq("is_active", 1));
                 //获取全部供货商分类列表
                 List<ProviderCategory> providerCategoryList = providerCategoryMapper.selectList(new QueryWrapper<ProviderCategory>().eq("company_id", user.getCompanyId()));
                 Company company = companyMapper.selectById(user.getCompanyId());
@@ -2842,7 +2842,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         throw new Exception("项目名称不能为空");
                     }
                     Project project = new Project();
-                    boolean flag=false;
+                    boolean exists=false;
                     if (codeCell != null) {
                         String code = codeCell.getStringCellValue().trim().replaceAll("\\u00a0", "");
                         if (code.equals("项目编号") && rowIndex == 0) {
@@ -2870,7 +2870,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 //                            throw new Exception("项目编号存在重复: " + code);
                                 existCodeList.add(code);
                                 //跳过编号重复的数据
-                                flag=true;
+                                exists=true;
                             }
                         }
                         project.setProjectCode(code);
@@ -2915,7 +2915,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     if (isPublicCell != null && !StringUtils.isEmpty(isPublicCell.getStringCellValue())) {
                         project.setIsPublic("是".equals(isPublicCell.getStringCellValue())?1:0);
                     }
-                    if(flag){
+                    if(exists){
                         Project updateProject = projectMapper.selectList(new QueryWrapper<Project>().eq("project_code", project.getProjectCode()).eq("company_id", user.getCompanyId())).get(0);
                         project.setId(updateProject.getId());
                         projectMapper.updateById(project);
@@ -2948,7 +2948,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }
                     //导入项目参与人,遵守只增不减的原则, 避免误删
                     List<Participation> oldPartList = new ArrayList<>();
-                    if (!flag) {
+                    if (exists) {
                         //更新的项目,检查已经存在的项目参与人
                         oldPartList = participationMapper.selectList(new QueryWrapper<Participation>().eq("project_id", project.getId()));
                     }
@@ -3016,8 +3016,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file));
                 //我们只需要第一个sheet
                 HSSFSheet sheet = workbook.getSheetAt(0);
-                //获取全部人员
-                List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()));
+                //获取全部人员,仅在职人员
+                List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()).eq("is_active", 1));
                 //获取全部供货商分类列表
                 List<ProviderCategory> providerCategoryList = providerCategoryMapper.selectList(new QueryWrapper<ProviderCategory>().eq("company_id", user.getCompanyId()));
                 Company company = companyMapper.selectById(user.getCompanyId());
@@ -3256,7 +3256,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         throw new Exception("项目名称不能为空");
                     }
                     Project project = new Project();
-                    boolean flag=false;
+                    boolean exists=false;
                     if (codeCell != null) {
                         String code = codeCell.getStringCellValue().trim().replaceAll("\\u00a0", "");
                         if (code.equals("项目编号") && rowIndex == 0) {
@@ -3289,7 +3289,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 //                            throw new Exception("项目编号存在重复: " + code);
                                 existCodeList.add(code);
                                 //跳过编号重复的数据
-                                flag=true;
+                                exists=true;
                             }
                         }
                         project.setProjectCode(code);
@@ -3486,7 +3486,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             }
                         }
                     }
-                    if(flag){
+                    if(exists){
                         Project updateProject = projectMapper.selectList(new QueryWrapper<Project>().eq("project_code", project.getProjectCode()).eq("company_id", user.getCompanyId())).get(0);
                         project.setId(updateProject.getId());
                         projectMapper.updateById(project);
@@ -3528,7 +3528,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         if (projectCategorySubCell != null && !StringUtils.isEmpty(projectCategorySubCell.getStringCellValue())) {
                             projectSeparate.setProjectCategorySub(projectCategorySubCell.getStringCellValue());
                         }
-                        if(flag&&check){
+                        if(exists&&check){
                            projectSeparateMapper.updateById(projectSeparate);
                             List<ProjectKeyNodes> nodes = projectKeyNodesMapper.selectList(new QueryWrapper<ProjectKeyNodes>().eq("project_id", id));
                             for (int x = 0; x < projectKeyNodesSettingList.size(); x++) {
@@ -3801,9 +3801,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     importCount++;
                     //导入项目参与人,遵守只增不减的原则, 避免误删
                     List<Participation> oldPartList = new ArrayList<>();
-                    if (!flag) {
+                    if (exists) {
                         //更新的项目,检查已经存在的项目参与人
                         oldPartList = participationMapper.selectList(new QueryWrapper<Participation>().eq("project_id", project.getId()));
+                        System.out.println("获取到已有项目参与人:"+oldPartList.size());
                     }
                     List<Participation> participationList = new ArrayList<>();
                     if(inchargerCell!=null){
@@ -6284,6 +6285,30 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         return msg;
     }
 
+    @Override
+    public HttpRespMsg removeDuplicateParticipators(Integer companyId, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().select("id").eq("company_id", companyId));
+        List<Integer> projectIds = projectList.stream().map(Project::getId).collect(Collectors.toList());
+        List<Participation> partList = participationMapper.selectList(new QueryWrapper<Participation>().in("project_id", projectIds));
+        //排重
+        List<Participation> oneList = new ArrayList<>();
+        List<Participation> duplicateList = new ArrayList<>();
+        partList.forEach(part->{
+            if (oneList.stream().anyMatch(one->one.getUserId().equals(part.getUserId())
+                    && one.getProjectId().equals(part.getProjectId()))) {
+                duplicateList.add(part);
+            } else {
+                oneList.add(part);
+            }
+        });
+        if (duplicateList.size() > 0) {
+            participationService.removeByIds(duplicateList.stream().map(Participation::getId).collect(Collectors.toList()));
+            msg.data = duplicateList.size();
+        }
+        return msg;
+    }
+
 
     private List<Department> getSubDepts(Department dp, List<Department> list) {
         List<Department> collect = list.stream().filter(l -> dp.getDepartmentId().equals(l.getSuperiorId())).collect(Collectors.toList());

+ 3 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -449,7 +449,9 @@ public class TimingTask {
                 });
             }
         });
-
+        if (isDev) {
+            return;
+        }
         List<Map<String, Object>> dingdingUserList = userMapper.getPushDingdingUserList(str, date);
         //钉钉平台的用批量发送, 每分钟5000个
         int minuteSize = 5000;

Файловите разлики са ограничени, защото са твърде много
+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml