Browse Source

app驾驶舱;用户管理列表使用机构简称

jiawuxian 1 year ago
parent
commit
f25303d2e6
25 changed files with 358 additions and 52 deletions
  1. 10 0
      project_data/sql/0.0.3/soc/soc.sql
  2. 90 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/controller/AppCockpitController.java
  3. 2 10
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/controller/WebCockpitController.java
  4. 18 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/dto/app/AppTaskRankingDto.java
  5. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/dto/web/TaskStatisticDto.java
  6. 3 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/mapper/CockpitMapper.java
  7. 22 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/AppCockpitService.java
  8. 5 8
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/CockpitService.java
  9. 85 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/impl/AppCockpitServiceImpl.java
  10. 4 10
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/impl/CockpitServiceImpl.java
  11. 24 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/app/AppBaseInfoVo.java
  12. 14 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/app/AppGa38Vo.java
  13. 16 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/app/AppTaskRankingVo.java
  14. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/web/OrgGA38StatisticVo.java
  15. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/web/QuestionStatisticVo.java
  16. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/web/TaskStatisticVo.java
  17. 2 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/domain/AppPlan.java
  18. 10 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/gx/service/ResumptionServiceImpl.java
  19. 7 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/AppPlanService.java
  20. 32 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppPlanServiceImpl.java
  21. 0 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/task/ResumptionTaskBusiness.java
  22. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/ICoreSafecheckPlanService.java
  23. 7 7
      soc-modules/soc-modules-core/src/main/resources/mapper/board/CockpitMapper.xml
  24. 1 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserServiceImpl.java
  25. 1 1
      soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

+ 10 - 0
project_data/sql/0.0.3/soc/soc.sql

@@ -573,6 +573,16 @@ END IF;
             add drill_category_name varchar(125) null comment '演练类型名称' after drill_category;
     END IF;
 
+    -- 调阅计划加所属机构
+    IF NOT EXISTS(SELECT *
+                  FROM information_schema.columns
+                  WHERE table_schema = DATABASE()
+                    AND table_name = 'core_resumption_plan'
+                    AND column_name = 'task_has_completed') THEN
+		ALTER TABLE `core_resumption_plan` 
+			ADD COLUMN `task_has_completed` int NULL COMMENT '1:表示有已完成的任务';
+    END IF;
+
 
     END ??
 DELIMITER;

+ 90 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/controller/AppCockpitController.java

@@ -0,0 +1,90 @@
+package com.xunmei.core.board.controller;
+
+
+import com.xunmei.common.core.web.controller.BaseController;
+import com.xunmei.common.core.web.domain.AjaxResult;
+import com.xunmei.core.board.dto.app.AppTaskRankingDto;
+import com.xunmei.core.board.dto.web.TaskStatisticDto;
+import com.xunmei.core.board.service.CockpitService;
+import com.xunmei.core.board.vo.app.AppBaseInfoVo;
+import com.xunmei.core.board.vo.app.AppGa38Vo;
+import com.xunmei.core.board.vo.app.AppTaskRankingVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * 驾驶舱
+ *
+ * @author xunmei
+ * @date 2023-09-06
+ */
+@Api(tags = {"驾驶舱"})
+@RestController
+@RequestMapping("/cockpit/app")
+//@RequiresPermissions("core:cockpit")
+public class AppCockpitController extends BaseController {
+    @Resource
+    CockpitService cockpitService;
+
+    /**
+     * 履职排名
+     */
+    @ApiOperation(value = "履职排名")
+    @GetMapping("/taskranking")
+    public AjaxResult taskRanking(AppTaskRankingDto dto) {
+        List<AppTaskRankingVo> vos = new ArrayList<>();
+        AppTaskRankingVo vo=  new AppTaskRankingVo();
+        vo.setOrgName("机构名称");
+        vo.setRate(0.456434354D);
+        vos.add(vo);
+        return success(vos);
+    }
+
+
+    /**
+     * 基础信息
+     */
+    @ApiOperation(value = "基础信息")
+    @GetMapping("/baseInfo")
+    public AjaxResult baseInfo() {
+        AppBaseInfoVo vo=new AppBaseInfoVo();
+        vo.setGa38Info(new HashMap<>());
+        vo.getGa38Info().put("GA38-2021",new AppGa38Vo());
+        vo.getGa38Info().put("GA38-2015",new AppGa38Vo());
+
+        vo.setBusinessStoreInfo(new HashMap<>());
+        vo.getBusinessStoreInfo().put("一类库",50);
+        vo.getBusinessStoreInfo().put("二类库",50);
+        vo.getBusinessStoreInfo().put("三类库",50);
+        vo.getBusinessStoreInfo().put("四类库",50);
+
+        vo.setBankPropertyRight(new HashMap<>());
+        vo.getBankPropertyRight().put("自有",100);
+        vo.getBankPropertyRight().put("租赁",100);
+        vo.getBankPropertyRight().put("部分自有+部分租赁",100);
+
+        vo.setSecurityPeopleInfo(new HashMap<>());
+        vo.getSecurityPeopleInfo().put("未配备",40);
+        vo.getSecurityPeopleInfo().put("已配备",40);
+        vo.getSecurityPeopleInfo().put("内部人员",40);
+        vo.getSecurityPeopleInfo().put("外部人员",40);
+        return success(vo);
+    }
+
+    /**
+     * 统计近期下级视频调阅情况
+     */
+    @ApiOperation(value = "统计近期下级视频调阅情况")
+    @GetMapping("/overview")
+    public AjaxResult overview() {
+        return success();
+    }
+}

+ 2 - 10
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/controller/CockpitController.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/controller/WebCockpitController.java

@@ -1,23 +1,15 @@
 package com.xunmei.core.board.controller;
 
 
-import com.xunmei.common.core.domain.drill.dto.CoreDrillDictionaryPageDto;
-import com.xunmei.common.core.domain.drill.vo.CoreDrillDictionaryPageVo;
 import com.xunmei.common.core.web.controller.BaseController;
 import com.xunmei.common.core.web.domain.AjaxResult;
-import com.xunmei.common.core.web.page.TableDataInfo;
-import com.xunmei.common.security.annotation.RequiresPermissions;
-import com.xunmei.core.board.dto.TaskStatisticDto;
+import com.xunmei.core.board.dto.web.TaskStatisticDto;
 import com.xunmei.core.board.service.CockpitService;
-import com.xunmei.core.board.vo.OrgGA38StatisticVo;
-import com.xunmei.core.board.vo.TaskStatisticVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.List;
 
 /**
  * 驾驶舱
@@ -29,7 +21,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/cockpit")
 //@RequiresPermissions("core:cockpit")
-public class CockpitController extends BaseController {
+public class WebCockpitController extends BaseController {
     @Resource
     CockpitService cockpitService;
 

+ 18 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/dto/app/AppTaskRankingDto.java

@@ -0,0 +1,18 @@
+package com.xunmei.core.board.dto.app;
+
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 任务排名条件
+ */
+@Data
+public class AppTaskRankingDto {
+    @ApiModelProperty("0:升序,1:降序")
+    public  int desc;
+
+    @ApiModelProperty("月份")
+    public Date month;
+}

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/dto/TaskStatisticDto.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/dto/web/TaskStatisticDto.java

@@ -1,4 +1,4 @@
-package com.xunmei.core.board.dto;
+package com.xunmei.core.board.dto.web;
 
 import jdk.nashorn.internal.runtime.arrays.IntElements;
 import lombok.Data;

+ 3 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/mapper/CockpitMapper.java

@@ -1,10 +1,9 @@
 package com.xunmei.core.board.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.xunmei.core.board.dto.TaskStatisticDto;
-import com.xunmei.core.board.vo.OrgGA38StatisticVo;
-import com.xunmei.core.board.vo.QuestionStatisticVo;
-import com.xunmei.core.board.vo.TaskStatisticVo;
+import com.xunmei.core.board.vo.web.OrgGA38StatisticVo;
+import com.xunmei.core.board.vo.web.QuestionStatisticVo;
+import com.xunmei.core.board.vo.web.TaskStatisticVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;

+ 22 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/AppCockpitService.java

@@ -0,0 +1,22 @@
+package com.xunmei.core.board.service;
+
+import com.xunmei.core.board.dto.app.AppTaskRankingDto;
+import com.xunmei.core.board.vo.app.AppBaseInfoVo;
+import com.xunmei.core.board.vo.app.AppTaskRankingVo;
+
+import java.util.List;
+
+public interface AppCockpitService {
+    /**
+     * 履职排名
+     * @param dto
+     * @return
+     */
+    List<AppTaskRankingVo> taskRanking(AppTaskRankingDto dto);
+
+    /**
+     * 基础信息
+     * @return
+     */
+    AppBaseInfoVo baseInfo() ;
+}

+ 5 - 8
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/CockpitService.java

@@ -1,13 +1,10 @@
 package com.xunmei.core.board.service;
 
-import com.xunmei.core.board.dto.TaskStatisticDto;
-import com.xunmei.core.board.vo.OrgGA38StatisticVo;
-import com.xunmei.core.board.vo.QuestionStatisticVo;
-import com.xunmei.core.board.vo.TaskStatisticVo;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.GetMapping;
-
-import java.util.ArrayList;
+import com.xunmei.core.board.dto.web.TaskStatisticDto;
+import com.xunmei.core.board.vo.web.OrgGA38StatisticVo;
+import com.xunmei.core.board.vo.web.QuestionStatisticVo;
+import com.xunmei.core.board.vo.web.TaskStatisticVo;
+
 import java.util.List;
 
 public interface CockpitService {

+ 85 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/impl/AppCockpitServiceImpl.java

@@ -0,0 +1,85 @@
+package com.xunmei.core.board.service.impl;
+
+
+import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.domain.DateRange;
+import com.xunmei.common.core.enums.CycleCommonEnum;
+import com.xunmei.common.core.utils.DateUtils;
+import com.xunmei.common.security.utils.SecurityUtils;
+import com.xunmei.core.board.dto.app.AppTaskRankingDto;
+import com.xunmei.core.board.mapper.CockpitMapper;
+import com.xunmei.core.board.service.AppCockpitService;
+import com.xunmei.core.board.vo.app.AppBaseInfoVo;
+import com.xunmei.core.board.vo.app.AppTaskRankingVo;
+import com.xunmei.core.board.vo.web.TaskStatisticVo;
+import com.xunmei.system.api.RemoteOrgService;
+import com.xunmei.system.api.domain.SysOrg;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class AppCockpitServiceImpl implements AppCockpitService {
+    @Resource
+    private CockpitMapper cockpitMapper;
+
+    @Resource
+    RemoteOrgService remoteOrgService;
+
+    @Override
+    public List<AppTaskRankingVo> taskRanking(AppTaskRankingDto dto) {
+        DateRange range = DateUtils.getStartAndEnd(dto.getMonth(), CycleCommonEnum.MONTHLY);
+        SysOrg org = remoteOrgService.selectOrgById(SecurityUtils.getLoginUser().getOrgId(), SecurityConstants.INNER);
+        String orgPath = org.getPath();
+        List<TaskStatisticVo> list = cockpitMapper.resumption(range.getStartTime(), range.getEndTime(), orgPath);
+
+        List<SysOrg> children = remoteOrgService.selectOrgTreeListByCurOrgId(org.getId(), SecurityConstants.INNER);
+
+        List<TaskStatisticVo> childrenStatistic = new ArrayList<>();
+        for (SysOrg child : children) {
+            TaskStatisticVo childVo = new TaskStatisticVo();
+            childrenStatistic.add(childVo);
+
+            for (TaskStatisticVo orgItem : list) {
+                if (orgItem.getOrgPath().startsWith(child.getPath())) {
+                    childVo.setTaskTotal(childVo.getTaskTotal() + orgItem.getTaskTotal());
+                    childVo.setCompletedCount(childVo.getCompletedCount() + orgItem.getCompletedCount());
+                }
+            }
+        }
+
+        List<AppTaskRankingVo> r = new ArrayList<>();
+        childrenStatistic.forEach(i -> {
+            AppTaskRankingVo vo = new AppTaskRankingVo();
+            vo.setOrgName(i.getOrgName());
+            if (ObjectUtil.equal(i.getTaskTotal(), 0F)) {
+                vo.setRate(1);
+            } else {
+                vo.setRate(i.getCompletedCount() / i.getTaskTotal());
+            }
+        });
+        r.sort(new Comparator<AppTaskRankingVo>() {
+            @Override
+            public int compare(AppTaskRankingVo o1, AppTaskRankingVo o2) {
+                if (ObjectUtil.equal(dto.getDesc(), 1)) {
+                    return (NumberUtil.compare(o1.getRate(), o2.getRate())) * -1;
+                } else {
+                    return (NumberUtil.compare(o1.getRate(), o2.getRate()));
+                }
+            }
+        });
+
+        return r;
+    }
+
+    @Override
+    public AppBaseInfoVo baseInfo() {
+        return null;
+    }
+}

+ 4 - 10
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/impl/CockpitServiceImpl.java

@@ -1,23 +1,19 @@
 package com.xunmei.core.board.service.impl;
 
-import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.exception.ServiceException;
-import com.xunmei.core.board.dto.TaskStatisticDto;
+import com.xunmei.core.board.dto.web.TaskStatisticDto;
 import com.xunmei.core.board.enums.PeriodEnum;
 import com.xunmei.core.board.mapper.CockpitMapper;
 import com.xunmei.core.board.service.CockpitService;
-import com.xunmei.core.board.vo.OrgGA38StatisticVo;
-import com.xunmei.core.board.vo.QuestionStatisticVo;
-import com.xunmei.core.board.vo.TaskStatisticVo;
+import com.xunmei.core.board.vo.web.OrgGA38StatisticVo;
+import com.xunmei.core.board.vo.web.QuestionStatisticVo;
+import com.xunmei.core.board.vo.web.TaskStatisticVo;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
-import io.reactivex.rxjava3.core.Single;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -25,8 +21,6 @@ import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Date;
-import java.util.function.Function;
-import java.util.stream.Collectors;
 
 @Service
 public class CockpitServiceImpl implements CockpitService {

+ 24 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/app/AppBaseInfoVo.java

@@ -0,0 +1,24 @@
+package com.xunmei.core.board.vo.app;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Map;
+
+/**
+ * 基础信息
+ */
+@Data
+public class AppBaseInfoVo {
+    @ApiModelProperty("GA38达标情况")
+    private Map<String,AppGa38Vo> ga38Info;
+
+    @ApiModelProperty("业务库")
+    private Map<String,Integer> businessStoreInfo;
+
+    @ApiModelProperty("营业网点产权信息")
+    private Map<String,Integer> bankPropertyRight;
+
+    @ApiModelProperty("安保人员配备情况")
+    private Map<String,Integer> securityPeopleInfo;
+}

+ 14 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/app/AppGa38Vo.java

@@ -0,0 +1,14 @@
+package com.xunmei.core.board.vo.app;
+
+
+import lombok.Data;
+
+/**
+ * app驾驶舱机构GA38达标情况
+ */
+@Data
+public class AppGa38Vo{
+    private  Integer total;
+
+    private double rate;
+}

+ 16 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/app/AppTaskRankingVo.java

@@ -0,0 +1,16 @@
+package com.xunmei.core.board.vo.app;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * APP驾驶舱履职排名条目
+ */
+@Data
+public class AppTaskRankingVo {
+    @ApiModelProperty("机构名称")
+    private String orgName;
+
+    @ApiModelProperty("百分比。小于1")
+    private float rate;
+}

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/OrgGA38StatisticVo.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/web/OrgGA38StatisticVo.java

@@ -1,4 +1,4 @@
-package com.xunmei.core.board.vo;
+package com.xunmei.core.board.vo.web;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Data;

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/QuestionStatisticVo.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/web/QuestionStatisticVo.java

@@ -1,4 +1,4 @@
-package com.xunmei.core.board.vo;
+package com.xunmei.core.board.vo.web;
 
 import lombok.Data;
 

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/TaskStatisticVo.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/web/TaskStatisticVo.java

@@ -1,4 +1,4 @@
-package com.xunmei.core.board.vo;
+package com.xunmei.core.board.vo.web;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Data;

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/domain/AppPlan.java

@@ -168,6 +168,8 @@ public class AppPlan extends Model<AppPlan> implements Serializable {
     @TableLogic(value = "0", delval = "1")
     @ApiModelProperty(value = "是否删除 1是 0否")
     private int deleted;
+    @ApiModelProperty(value = "1:表示有已完成的任务")
+    private Integer taskHasCompleted;
 //    public static ObjectDataClass planTo(AppPlan appPlan) {
 //        ObjectDataClass objectDataClass = new ObjectDataClass();
 //        objectDataClass.setId(appPlan.getId());

+ 10 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/gx/service/ResumptionServiceImpl.java

@@ -14,13 +14,16 @@ import com.xunmei.core.question.service.IQuestionService;
 import com.xunmei.core.resumption.domain.*;
 import com.xunmei.core.resumption.gx.vo.*;
 import com.xunmei.core.resumption.mapper.*;
+import com.xunmei.core.resumption.service.AppPlanService;
 import com.xunmei.core.resumption.vo.ResumptionTaskNewDto;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.TransactionManager;
 import org.springframework.transaction.annotation.Transactional;
+import sun.nio.ch.ThreadPool;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -49,6 +52,9 @@ public class ResumptionServiceImpl implements ResumptionService {
     @Autowired
     private IQuestionService questionService;
 
+    @Autowired
+    private AppPlanService appPlanService;
+
     @Override
     public Map<String, List<ResumptionTaskListVo>> getTaskList(ResumptionTaskNewDto dto) {
 
@@ -121,7 +127,9 @@ public class ResumptionServiceImpl implements ResumptionService {
         int quarter = dateTime.getQuarter();
         //获取履职任务
         Resumption sysResumption = resumptionMapper.findOneByTaskIdAndDate(taskId, year, quarter);
-        Long orgId = sysResumption.getOrgId();
+        if (ObjectUtil.equal(taskDetailVo.getSubType(), 2)) {
+            appPlanService.updatePlanCompletedState(sysResumption.getPlanId(),1);
+        }
 
         sysResumption.setUpdateBy(SecurityUtils.getUsername());
         sysResumption.setSubmitorId(SecurityUtils.getUserId());
@@ -308,7 +316,7 @@ public class ResumptionServiceImpl implements ResumptionService {
                 } else {
                     for (ResumptionNFCVo nfcVo : orgAllNFCs) {
                         if (nfcVo.getAreaId().equals(resumptionPlanVo.getAreaId()) &&
-                                (ObjectUtil.isNull(resumptionPlanVo.getCheckId()) || ObjectUtil.equal(nfcVo.getCheckId(),resumptionPlanVo.getCheckId()))) {
+                                (ObjectUtil.isNull(resumptionPlanVo.getCheckId()) || ObjectUtil.equal(nfcVo.getCheckId(), resumptionPlanVo.getCheckId()))) {
                             nfcVo.setPointScan(resumptionPlanVo.getPointScan());
                             usedNFCID.add(nfcVo.getNfcId());
                         }

+ 7 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/AppPlanService.java

@@ -88,4 +88,11 @@ public interface AppPlanService extends IService<AppPlan> {
 
     int distributeCheHui(Long id);
     AjaxResult buildResumptionPdf(Long id);
+
+    /**
+     * 更新计划及父计划的任务是否有已完成标志。
+     * @param planId
+     * @param state
+     */
+    void updatePlanCompletedState(Long planId,Integer state);
 }

+ 32 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppPlanServiceImpl.java

@@ -16,6 +16,7 @@ import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTask;
 import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTaskToUser;
 import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskDetailVo;
+import com.xunmei.common.core.exception.ServiceException;
 import com.xunmei.common.core.exception.SystemException;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.web.domain.AjaxResult;
@@ -47,6 +48,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -803,7 +805,8 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
         }
         return vos;
     }
-    public List<ResumptionPdf> getResult(Map<Long, List<AppResumptionDataInfoVo>> bef){
+
+    public List<ResumptionPdf> getResult(Map<Long, List<AppResumptionDataInfoVo>> bef) {
         List<ResumptionPdf> befs = new ArrayList<>();
         for (Long l :
                 bef.keySet()) {
@@ -812,16 +815,41 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
             int result = 0;
             for (AppResumptionDataInfoVo vo :
                     bef.get(l)) {
-                pointName=vo.getPointName();
+                pointName = vo.getPointName();
                 result += vo.getResValue();
                 submitName.append(vo.getSubmitName());
             }
-            ResumptionPdf tem= new ResumptionPdf();
+            ResumptionPdf tem = new ResumptionPdf();
             tem.setPointName(pointName);
             tem.setSubmitName(String.valueOf(submitName));
-            tem.setResValue(result>0?1:0);
+            tem.setResValue(result > 0 ? 1 : 0);
             befs.add(tem);
         }
         return befs;
     }
+
+    /**
+     * 更新计划及父计划的任务是否有已完成标志。
+     *
+     * @param planId
+     * @param state
+     */
+    @Override
+    @Async
+    public void updatePlanCompletedState(Long planId, Integer state) {
+        if (ObjectUtil.notEqual(state, 1) && ObjectUtil.notEqual(state, 0) && ObjectUtil.isNotNull(state)) {
+            throw new ServiceException("state参数值无效");
+        }
+
+        LambdaUpdateWrapper<AppPlan> wrapper = new LambdaUpdateWrapper();
+        wrapper.eq(AppPlan::getId, planId)
+                .eq(AppPlan::getTaskHasCompleted, state)
+                .set(AppPlan::getTaskHasCompleted, state);
+        if (ObjectUtil.isNull(state)) {
+            wrapper.isNull(AppPlan::getTaskHasCompleted);
+        } else {
+            wrapper.eq(AppPlan::getTaskHasCompleted, state);
+        }
+        baseMapper.update(null, wrapper);
+    }
 }

+ 0 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/task/ResumptionTaskBusiness.java

@@ -195,7 +195,6 @@ public class ResumptionTaskBusiness extends TaskCreatingServiceImplBase<Resumpti
         }
 
         buildTask(null, appPlans, workDate);
-
     }
 
 

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/ICoreSafecheckPlanService.java

@@ -46,7 +46,7 @@ public interface ICoreSafecheckPlanService extends IService<CoreSafecheckPlan> {
      * @return 结果
      */
     int updateCoreSafecheckPlan(CoreSafecheckPlan coreSafecheckPlan);
-    public void childrenPlan(Long id);
+    void childrenPlan(Long id);
     /**
      * 批量删除常规安全检查计划
      *

+ 7 - 7
soc-modules/soc-modules-core/src/main/resources/mapper/board/CockpitMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xunmei.core.board.mapper.CockpitMapper">
-    <select id="resumption" resultType="com.xunmei.core.board.vo.TaskStatisticVo">
+    <select id="resumption" resultType="com.xunmei.core.board.vo.web.TaskStatisticVo">
         SELECT
         org_id,
          org_path,
@@ -15,7 +15,7 @@
         and org_path like concat(#{orgPath},'%')
         GROUP BY org_id,org_path
     </select>
-    <select id="safetyCheck" resultType="com.xunmei.core.board.vo.TaskStatisticVo">
+    <select id="safetyCheck" resultType="com.xunmei.core.board.vo.web.TaskStatisticVo">
         SELECT
         org_id,
         org_path,
@@ -30,7 +30,7 @@
         GROUP BY
         org_id,org_path
     </select>
-    <select id="monitor" resultType="com.xunmei.core.board.vo.TaskStatisticVo">
+    <select id="monitor" resultType="com.xunmei.core.board.vo.web.TaskStatisticVo">
         SELECT
         org_id,
         org_path,
@@ -45,7 +45,7 @@
         GROUP BY
         org_id,org_path
     </select>
-    <select id="edu" resultType="com.xunmei.core.board.vo.TaskStatisticVo">
+    <select id="edu" resultType="com.xunmei.core.board.vo.web.TaskStatisticVo">
         SELECT
         org_id,
         org_path,
@@ -60,7 +60,7 @@
         GROUP BY
         org_id,org_path
     </select>
-    <select id="drill" resultType="com.xunmei.core.board.vo.TaskStatisticVo">
+    <select id="drill" resultType="com.xunmei.core.board.vo.web.TaskStatisticVo">
         SELECT
         org_id,
         org_path,
@@ -75,7 +75,7 @@
         GROUP BY
         org_id,org_path
     </select>
-    <select id="orgGA38" resultType="com.xunmei.core.board.vo.OrgGA38StatisticVo">
+    <select id="orgGA38" resultType="com.xunmei.core.board.vo.web.OrgGA38StatisticVo">
         SELECT o.id                                           as org_id,
                o.path                                         as org_path,
                o.short_name                                   as org_name,
@@ -86,7 +86,7 @@
           and o.deleted = 0
           and o.path like concat((select path from sys_org where id = #{orgId}), '%')
     </select>
-    <select id="question" resultType="com.xunmei.core.board.vo.QuestionStatisticVo">
+    <select id="question" resultType="com.xunmei.core.board.vo.web.QuestionStatisticVo">
         SELECT count(0) as total,
                sum(case confirm_status when 0 then 1 else 0 end) as unconfirm,
                sum(case confirm_status when 1 then 1 else 0 end) as auditing,

+ 1 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserServiceImpl.java

@@ -148,6 +148,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             user.setParentOrgIds(r.getOrgIdList());
         }
         user.setDeleted(0);
+        user.setIsLock("0");
         Page<SysUser> page;
         //分页
         if (user.getPageNum() != null && user.getPageSize() != null) {

+ 1 - 1
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -430,7 +430,7 @@
         u.deleted,
         u.last_ip,
         u.last_time,
-        o.NAME AS org_name,
+        o.short_NAME AS org_name,
         o.path AS org_path,
         u.image,
         u.card,