Kaynağa Gözat

Merge remote-tracking branch 'origin/V0.0.4' into V0.0.4

ouyang 1 yıl önce
ebeveyn
işleme
1e8d71f9c5
15 değiştirilmiş dosya ile 143 ekleme ve 58 silme
  1. 12 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/TaskCreatingServiceImplBase.java
  2. 5 5
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java
  3. 5 5
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java
  4. 0 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/service/impl/CoreEvaluateTaskServiceImpl.java
  5. 2 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/ApiPlanController.java
  6. 5 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/gx/service/ResumptionServiceImpl.java
  7. 2 13
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/task/ResumptionTaskBusiness.java
  8. 7 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/service/impl/CoreMonitoringRetrievalTaskBuilderServiceImpl.java
  9. 25 11
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/job/SafetyCheckJobBusiness.java
  10. 28 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserController.java
  11. 1 1
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysUserMapper.java
  12. 6 3
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysUserService.java
  13. 1 2
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserServiceImpl.java
  14. 15 10
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/util/SecurityUserExport.java
  15. 29 0
      soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

+ 12 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/TaskCreatingServiceImplBase.java

@@ -179,6 +179,17 @@ public abstract class TaskCreatingServiceImplBase<M extends BaseMapper<T>, T> ex
 //    }
 
     /**
+     * 返回机构是否需要使用作息
+     * @param org
+     * @return
+     */
+    protected boolean needUsedWorkTime(SysOrg org){
+        List< Integer> orgTypes= Arrays.asList(OrgTypeEnum.YINGYE_WANGDIAN.getCode());
+
+        return  orgTypes.contains(org.getType());
+    }
+
+    /**
      * 获取机构某个周期的作息
      *
      * @param now
@@ -361,7 +372,7 @@ public abstract class TaskCreatingServiceImplBase<M extends BaseMapper<T>, T> ex
      * @param frequency
      * @param start
      * @param end
-     * @param workTimes,则认为全是营业
+     * @param workTimes,为null则认为全是营业
      * @return
      */
     protected Map<Short, StartEndTime> splitTaskTime(Short frequency, CycleCommonEnum cycle, Date start, Date end, List<SysWorkTime> workTimes) {

+ 5 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java

@@ -422,11 +422,11 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         );
         //生成任务时,只有特定类型的机构类型才需要判断作息
         final List<Integer> orgTypeList = Arrays.asList(
-                OrgTypeEnum.YINGYE_WANGDIAN.getCode(),
-                OrgTypeEnum.LIHANG_ZIZHU_YINGHANG.getCode(),
-                OrgTypeEnum.ZHONGXIN_YEWUKU.getCode(),
-                OrgTypeEnum.BAOGUAN_XAINGKU.getCode(),
-                OrgTypeEnum.WANGDIAN_YEWUKU.getCode()
+                OrgTypeEnum.YINGYE_WANGDIAN.getCode()
+//                OrgTypeEnum.LIHANG_ZIZHU_YINGHANG.getCode(),
+//                OrgTypeEnum.ZHONGXIN_YEWUKU.getCode(),
+//                OrgTypeEnum.BAOGUAN_XAINGKU.getCode(),
+//                OrgTypeEnum.WANGDIAN_YEWUKU.getCode()
         );
         for (SysOrg org : orgList) {
             int x = 0;

+ 5 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -481,11 +481,11 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         );
         //生成任务时,只有特定类型的机构类型才需要判断作息
         final List<Integer> orgTypeList = Arrays.asList(
-                OrgTypeEnum.YINGYE_WANGDIAN.getCode(),
-                OrgTypeEnum.LIHANG_ZIZHU_YINGHANG.getCode(),
-                OrgTypeEnum.ZHONGXIN_YEWUKU.getCode(),
-                OrgTypeEnum.BAOGUAN_XAINGKU.getCode(),
-                OrgTypeEnum.WANGDIAN_YEWUKU.getCode()
+                OrgTypeEnum.YINGYE_WANGDIAN.getCode()
+//                OrgTypeEnum.LIHANG_ZIZHU_YINGHANG.getCode(),
+//                OrgTypeEnum.ZHONGXIN_YEWUKU.getCode(),
+//                OrgTypeEnum.BAOGUAN_XAINGKU.getCode(),
+//                OrgTypeEnum.WANGDIAN_YEWUKU.getCode()
         );
         for (SysOrg org : orgList) {
             int x = 0;

+ 0 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/service/impl/CoreEvaluateTaskServiceImpl.java

@@ -64,9 +64,6 @@ public class CoreEvaluateTaskServiceImpl extends ServiceImpl<CoreEvaluateTaskMap
 
     @Override
     public TableDataInfo<CoreEvaluateTaskVO> selectPage(EvaluateTaskDTO evaluateTaskDTO) {
-        EvaluateTaskStatisticsDTO evaluateTaskStatisticsDTO = new EvaluateTaskStatisticsDTO();
-        BeanUtils.copyProperties(evaluateTaskDTO, evaluateTaskStatisticsDTO);
-        statistics(evaluateTaskStatisticsDTO);
         Page<CoreEvaluateTaskVO> page;
         //分页
         if (evaluateTaskDTO.getPageNum() != null && evaluateTaskDTO.getPageSize() != null) {

+ 2 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/ApiPlanController.java

@@ -186,10 +186,10 @@ public class ApiPlanController {
         return AjaxResult.success();
     }
 
-    @ApiOperation(value = "撤回后下发")
+    @ApiOperation(value = "下发子计划")
     @GetMapping(value = "/distributeCheHui/{id}")
 //    @RequiresPermissions("core:plan:findById")
-    public AjaxResult distributeCheHui(@PathVariable Long id) {
+    public AjaxResult distributeChild(@PathVariable Long id) {
         AppPlan planOld =appPlanService.getById(id);
         AppPlan planNew = appPlanService.distributeCheHui(id);
         //撤回后下发,不重新生成任务

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

@@ -2,11 +2,13 @@ package com.xunmei.core.resumption.gx.service;
 
 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.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.exception.ServiceException;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.question.QuestionSrcType;
@@ -182,6 +184,9 @@ public class ResumptionServiceImpl implements ResumptionService {
                 appResumptionDataMapper.insert(data);
 
                 if (taskDetailVo.getSubType() == 2 && ObjectUtil.equal(point.getResValue(), 1)) {
+                    if(ObjectUtil.isNull(point.getRectificationDeadline()) || !NumberUtil.isNumber(point.getRectificationDeadline())){
+                        throw new ServiceException("整改期限为空或不是有效的数值");
+                    }
                     SysOrg org = remoteOrgService.selectSysOrgById(sysResumption.getOrgId(), SecurityConstants.INNER);
                     Question question = Question.builder()
                             .srcTaskId(taskId)

+ 2 - 13
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/task/ResumptionTaskBusiness.java

@@ -120,21 +120,10 @@ public class ResumptionTaskBusiness extends TaskCreatingServiceImplBase<Resumpti
             CycleCommonEnum cycleCommonEnum = CycleCommonEnum.getEnum(appPlan.getPlanCycle());
             DateRange range = DateUtils.getStartAndEnd(date, cycleCommonEnum);
             Map<Long, List<SysWorkTime>> workTimes = orgDutyOrWorkTimes(new Date(), cycleCommonEnum, orgs.stream().map(SysOrg::getId).collect(Collectors.toList()));
-//            if (ObjectUtil.equal(appPlan.getPlanExec(), 5)) {
-//                workTimes = orgDutyTimes(new Date(), cycleCommonEnum, orgs.stream().map(SysOrg::getId).collect(Collectors.toList()));
-//            } else {
-//                workTimes = orgWorkingTimes(new Date(), cycleCommonEnum, orgs.stream().map(SysOrg::getId).collect(Collectors.toList()));
-//            }
 
             for (SysOrg org : orgs) {
-//                Long orgId = org.getId();
-//                if (!workTimes.containsKey(orgId) || ObjectUtil.isNull(workTimes.get(orgId)) || CollectionUtils.isEmpty(workTimes.get(orgId))) {
-//                    continue;
-//                }
-
                 List<Resumption> tasks;
                 if (ObjectUtil.equal(CycleCommonEnum.DAILY.getCode(), appPlan.getPlanCycle())) {
-//                    SysWorkTime workTime = workTimes.get(orgId).get(0);
                     tasks = buildResumptions(appPlan, org, null, new Date(), workTimes);
                 } else {
                     tasks = buildResumptions(appPlan, org, range.getStartTime(), range.getEndTime(), null, workTimes);
@@ -393,7 +382,7 @@ public class ResumptionTaskBusiness extends TaskCreatingServiceImplBase<Resumpti
     private List<Resumption> buildResumptions(AppPlan appPlan, SysOrg execOrg, List<Short> executedOrders, Date date, Map<Long, List<SysWorkTime>> workTimes) {
         DateTime planstartTime = null;
         DateTime planendTime = null;
-        if (!ObjectUtil.equal(execOrg.getType(), OrgTypeEnum.YINGYE_WANGDIAN.getCode())) {
+        if (!needUsedWorkTime(execOrg)) {
             //非营业网点的机构,与作息无关
             planstartTime = DateUtil.beginOfDay(date);
             planendTime = DateUtil.endOfDay(date);
@@ -497,7 +486,7 @@ public class ResumptionTaskBusiness extends TaskCreatingServiceImplBase<Resumpti
             count = Short.parseShort(appPlan.getCount());
         }
 
-        if (ObjectUtil.equal(execOrg.getType(), OrgTypeEnum.YINGYE_WANGDIAN.getCode())) {
+        if (needUsedWorkTime(execOrg)) {
             if (!allWorkTimes.containsKey(execOrg.getId()) || CollectionUtils.isEmpty(allWorkTimes.get(execOrg.getId()))) {
                 return new ArrayList<>();
             }

+ 7 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/service/impl/CoreMonitoringRetrievalTaskBuilderServiceImpl.java

@@ -13,6 +13,7 @@ import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.DateRange;
 import com.xunmei.common.core.domain.retrieval.domain.CoreMonitoringRetrievalTask;
 import com.xunmei.common.core.domain.retrieval.vo.*;
+import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.enums.RetrievalTaskCycle;
 import com.xunmei.common.core.enums.edu.EduTrainingPlanCycleEnum;
 import com.xunmei.common.core.event.WorkTimeChangeEvent;
@@ -393,7 +394,11 @@ public class CoreMonitoringRetrievalTaskBuilderServiceImpl extends ServiceImpl<C
         Map<Integer, DateRange> workingDateRanges = new HashMap<>();
         for (Integer key : dateRanges.keySet()) {
             DateRange dateRange1 = dateRanges.get(key);
-            boolean flag = checkWorkTime(dateRange1.getStartTime(), dateRange1.getEndTime(), sysOrg.getId());
+            boolean flag = true;
+            if (ObjectUtil.equal(sysOrg.getType(), OrgTypeEnum.YINGYE_WANGDIAN.getCode())) {
+                flag = checkWorkTime(dateRange1.getStartTime(), dateRange1.getEndTime(), sysOrg.getId());
+            }
+
             if (flag == true && dateRange1.getEndTime().after(new Date())) {
                 workingDateRanges.put(idx, dateRange1);
                 idx++;
@@ -565,7 +570,7 @@ public class CoreMonitoringRetrievalTaskBuilderServiceImpl extends ServiceImpl<C
                     }
                 }
                 Optional<SysOrg> hsOrg = hsOrgs.stream().filter(hs -> s.getPath().startsWith(hs.getPath())).findFirst();
-                if(!hsOrg.isPresent()){
+                if (!hsOrg.isPresent()) {
                     continue;
                 }
                 //计划的机构id不是当前机构的直属父机构,不生成任务,计划的机构类型不是当前机构的机构类型不生成任务

+ 25 - 11
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/job/SafetyCheckJobBusiness.java

@@ -12,6 +12,7 @@ import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.DateRange;
 import com.xunmei.common.core.domain.worktime.domain.SysWorkTime;
 import com.xunmei.common.core.enums.CycleCommonEnum;
+import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.IDHelper;
@@ -34,6 +35,7 @@ import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.lang.reflect.Array;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -130,6 +132,7 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
         return workTimeService.getWorkTime(map, SecurityConstants.INNER);
     }
 
+
     /**
      * 有周期计划生成任务
      *
@@ -247,9 +250,9 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
                     checkOrgs.add(org);
                 }
 
-                List<Integer> orgTypes = checkOrgTypes.stream().filter(t -> ObjectUtil.notEqual(t,execOrgType)).collect(Collectors.toList());
-                if(CollectionUtil.isNotEmpty(orgTypes)){
-                    List<SysOrg>  checkOrgsTmp = orgService.findByOrgTypesAndParent(new FindOrgTypes(orgTypes, org.getPath()), SecurityConstants.INNER);
+                List<Integer> orgTypes = checkOrgTypes.stream().filter(t -> ObjectUtil.notEqual(t, execOrgType)).collect(Collectors.toList());
+                if (CollectionUtil.isNotEmpty(orgTypes)) {
+                    List<SysOrg> checkOrgsTmp = orgService.findByOrgTypesAndParent(new FindOrgTypes(orgTypes, org.getPath()), SecurityConstants.INNER);
                     checkOrgs.addAll(checkOrgsTmp);
                 }
             } else {
@@ -348,9 +351,9 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
                     checkOrgs.add(org);
                 }
 
-                List<Integer> orgTypes = checkOrgTypes.stream().filter(t -> ObjectUtil.notEqual(t,execOrgType)).collect(Collectors.toList());
-                if(CollectionUtil.isNotEmpty(orgTypes)){
-                    List<SysOrg>  checkOrgsTmp = orgService.findByOrgTypesAndParent(new FindOrgTypes(orgTypes, org.getPath()), SecurityConstants.INNER);
+                List<Integer> orgTypes = checkOrgTypes.stream().filter(t -> ObjectUtil.notEqual(t, execOrgType)).collect(Collectors.toList());
+                if (CollectionUtil.isNotEmpty(orgTypes)) {
+                    List<SysOrg> checkOrgsTmp = orgService.findByOrgTypesAndParent(new FindOrgTypes(orgTypes, org.getPath()), SecurityConstants.INNER);
                     checkOrgs.addAll(checkOrgsTmp);
                 }
             } else {
@@ -409,14 +412,25 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
                 code = CycleCommonEnum.getEnum(Math.toIntExact(plan.getPlanCycle()) + 2);
                 dateRange = DateUtils.getStartAndEnd(new Date(), code);
             }
-            //获取当前受检机构当前周期营业中的作息
-            List<SysWorkTime> workTimes = getWorkTime(dateRange.getStartTime(), dateRange.getEndTime(), org.getId());
             //配合履职次数为short类型
             short coun = Short.parseShort(plan.getCount().toString());
+            //获取当前受检机构当前周期营业中的作息
+            Map<Short, StartEndTime> rangeMap = null;
+            if (needUsedWorkTime(org)) {
+                List<SysWorkTime> workTimes = getWorkTime(dateRange.getStartTime(), dateRange.getEndTime(), org.getId());
+                if (CollectionUtil.isEmpty(workTimes)) {
+                    continue;
+                }
+                rangeMap = splitTaskTime(coun, CycleCommonEnum.getEnum(cycleCode),
+                        dateRange.getStartTime(), dateRange.getEndTime(), workTimes);
+            } else {
+                rangeMap = splitTaskTime(coun, CycleCommonEnum.getEnum(cycleCode),
+                        dateRange.getStartTime(), dateRange.getEndTime(), null);
+            }
+
             //划分时间
-            Map<Short, StartEndTime> rangeMap = splitTaskTime(coun, CycleCommonEnum.getEnum(cycleCode),
-                    dateRange.getStartTime(), dateRange.getEndTime(), workTimes);
-            short cou=1;
+
+            short cou = 1;
             for (short i = 1; i <= coun; i++) {
                 //如果不存在当前次数的时间划分结果
                 if (!rangeMap.containsKey(i)) {

+ 28 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserController.java

@@ -29,6 +29,7 @@ import com.xunmei.system.domain.vo.UserRoleVo;
 import com.xunmei.system.api.dto.SysPlanOrgDTO;
 import com.xunmei.system.mapper.SysOrgMapper;
 import com.xunmei.system.service.*;
+import com.xunmei.system.util.SecurityUserExport;
 import com.xunmei.system.util.UserExport;
 import com.xunmei.system.util.UserImport;
 import io.swagger.annotations.ApiOperation;
@@ -535,6 +536,33 @@ public class SysUserController extends BaseController {
     @RequiresPermissions("system:user:exportSecurity")
     @PostMapping("/exportSecurity")
     public void exportSecurity(SysUser user, HttpServletResponse response) {
+        List<SecurityUserExport> securityUserExports = userService.downSecurityUser();
+        if (ObjectUtil.isEmpty(securityUserExports)) {
+            throw new RuntimeException("导出数据为空!");
+        }
+        AtomicInteger xh = new AtomicInteger();
+        xh.getAndIncrement();
+        securityUserExports.forEach(e -> {
+
+            e.setXh(String.valueOf(xh.getAndIncrement()));
+        });
+        if (securityUserExports.size() > 10000) {
+            throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
+        }
+        try {
+            // 设置响应头
+            response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("用户数据", "utf-8"));
+            response.setContentType("application/octet-stream;charset=UTF-8");
+            response.setCharacterEncoding("utf-8");
+            // 数据导出
+            EasyExcel.write(response.getOutputStream(), SecurityUserExport.class)
+                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("用户数据").doWrite(securityUserExports);
+        } catch (Exception e) {
+            // 重置response
+            response.reset();
+            response.setContentType("application/json");
+            response.setCharacterEncoding("utf-8");
+        }
 
     }
     /**

+ 1 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysUserMapper.java

@@ -159,7 +159,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
     List<SysUser> selectUserListByRoleAndOrg(@Param("sysRoleOrgDTO") SysPlanOrgDTO sysRoleOrgDTO);
 
     List<UserExport> select(@Param("info") SysUser user);
-   // List<SecurityUserExport>selectSecurityUser();
+    List<SecurityUserExport>selectSecurityUser();
 
     List<String> selectCountByNames(@Param("names")List<String> names);
 }

+ 6 - 3
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysUserService.java

@@ -29,10 +29,11 @@ public interface ISysUserService extends IService<SysUser> {
 
     /**
      * 用户选择窗口查询用户分页列表
+     *
      * @param user
      * @return
      */
-    TableDataInfo<SysUser>  userSelectorList(SysUser user);
+    TableDataInfo<SysUser> userSelectorList(SysUser user);
 
     List<SysUser> selectSyncUserList(SysUser user);
 
@@ -235,8 +236,10 @@ public interface ISysUserService extends IService<SysUser> {
     List<SysUser> selectAllUser(String userName);
 
     List<UserExport> down(SysUser user);
-List<SecurityUserExport> downSecurityUser();
+
+    List<SecurityUserExport> downSecurityUser();
+
     List<String> selectCountByNames(List<String> names);
 
-    List<SysUser>  selectUserListData(SysUser user);
+    List<SysUser> selectUserListData(SysUser user);
 }

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

@@ -696,8 +696,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Override
     public List<SecurityUserExport> downSecurityUser() {
         SysOrg sysOrg = sysOrgMapper.selectById(SecurityUtils.getLoginUser().getOrgId());
-
-        return null;
+        return userMapper.selectSecurityUser();
     }
 
     @Override

+ 15 - 10
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/util/SecurityUserExport.java

@@ -1,11 +1,13 @@
 package com.xunmei.system.util;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import com.alibaba.excel.annotation.write.style.ContentRowHeight;
 import com.alibaba.excel.annotation.write.style.HeadRowHeight;
 import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.util.Date;
 
@@ -19,6 +21,9 @@ import java.util.Date;
 @HeadRowHeight(16) //表头行高
 @ContentRowHeight(16) //数据行高
 public class SecurityUserExport {
+
+    @ExcelIgnore
+    private Long orgId;
     @ExcelProperty(value = "序号", index = 0)
     @TableField(exist = false)
     private String xh;
@@ -40,24 +45,24 @@ public class SecurityUserExport {
     private String nowDuties;
     @ExcelProperty(value = "是否专职(专职是指专职做安全保卫部门相应岗位工作,不再兼任其他岗位或部门工作)", index = 9)
     private String isFullTime;
-    @ExcelProperty(value = "用工形式", index = 9)
+    @ExcelProperty(value = "用工形式", index = 10)
     private String workType;
-    @ExcelProperty(value = "现任职时间", index = 10)
+    @ExcelProperty(value = "现任职时间", index = 11)
     private Date entryTime;
-    @ExcelProperty(value = "工作年限", index = 11)
+    @ExcelProperty(value = "工作年限", index = 12)
     private String workDuration;
-    @ExcelProperty(value = "最高学历", index = 12)
+    @ExcelProperty(value = "最高学历", index = 13)
     private String highestEducation;
-    @ExcelProperty(value = "取得方式", index = 13)
+    @ExcelProperty(value = "取得方式", index = 14)
     private String educationType;
-    @ExcelProperty(value = "初级以上(含初级)相关专业技术职业资格", index = 14)
+    @ExcelProperty(value = "初级以上(含初级)相关专业技术职业资格", index = 15)
     private String professionalQualifications;
-    @ExcelProperty(value = "持证上岗考试通过情况", index = 15)
-    private String certificateWork;
     @ExcelProperty(value = "持证上岗考试通过情况", index = 16)
+    private String certificateWork;
+    @ExcelProperty(value = "持证上岗考试通过情况", index = 17)
     private String certificateFailReason;
-    @ExcelProperty(value = "分管领导姓名", index = 17)
+    @ExcelProperty(value = "分管领导姓名", index = 18)
     private String responsibilitiesLeaderName;
-    @ExcelProperty(value = "分管领导职务", index = 18)
+    @ExcelProperty(value = "分管领导职务", index = 19)
     private String responsibilitiesLeaderDuties;
 }

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

@@ -706,4 +706,33 @@
             #{name}
         </foreach>
     </select>
+    <select id="selectSecurityUser" resultType="com.xunmei.system.util.SecurityUserExport">
+        SELECT
+            c.id AS orgId,
+            c.short_name AS orgName,
+            b.`name` AS name,
+            b.gender AS gender,
+            b.card AS card,
+            TIMESTAMPDIFF( YEAR, a.born_time, NOW() ) AS age,
+            a.dept_id AS departmentName,
+            a.duties AS nowDuties,
+            a.is_full_time AS isFullTime,
+            a.work_type AS workType,
+            a.entry_time AS entryTime,
+            TIMESTAMPDIFF( MONTH, a.work_time, NOW() ) AS workDuration,
+            a.highest_education AS highestEducation,
+            a.education_type AS educationType,
+            a.professional_qualifications AS professionalQualifications,
+            a.certificate_work AS certificateWork,
+            a.certificate_fail_reason AS certificateFailReason,
+            a.responsibilities_leader_name AS responsibilitiesLeaderName,
+            a.responsibilities_leader_duties AS responsibilitiesLeaderDuties
+        FROM
+            sys_user_information a
+                LEFT JOIN sys_user b ON a.user_id = b.id
+                LEFT JOIN sys_org c ON c.id = b.org_id
+        WHERE
+            b.deleted = 0
+
+    </select>
 </mapper>