jingyuanchao 1 жил өмнө
parent
commit
31192002af

+ 4 - 3
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysWorkTimeController.java

@@ -76,12 +76,13 @@ public class SysWorkTimeController extends BaseController {
     public AjaxResult monthedit(@RequestBody WorkTimeMonthEditNewDto sysWorkTimeSet) {
 
         List<Long> orgIds = sysWorkTimeSet.getOrgIdList();
-        for (Long orgId : orgIds) {
+        /*for (Long orgId : orgIds) {
             sysWorkTimeService.batchnew(orgId, sysWorkTimeSet.getWorkTimeList());
-        }
+        }*/
+        sysWorkTimeService.batchNew(orgIds, sysWorkTimeSet.getWorkTimeList());
         applicationEventPublisher.publishEvent(new WorkTimeChangeEvent(this, orgIds,sysWorkTimeSet.getWorkTimeList()));
 
-        return AjaxResult.success();
+        return AjaxResult.success("作息后台生成中,请稍后查看...");
     }
 
     /**

+ 1 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysWorkTimeSetController.java

@@ -103,7 +103,7 @@ public class SysWorkTimeSetController extends BaseController {
     public AjaxResult add(@RequestBody SysWorkTimeSet sysWorkTimeSet) {
         //return sysWorkTimeSetService.add(sysWorkTimeSet);
         sysWorkTimeSetService.configWorkTimeSet(sysWorkTimeSet);
-        return  AjaxResult.success();
+        return  AjaxResult.success("作息后台生成中,请稍后查看....");
     }
 
     /**

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

@@ -98,6 +98,6 @@ public interface SysWorkTimeMapper extends BaseMapper<SysWorkTime> {
 
     int deleteByOrgIdListAndDateRange(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("list") List<Long> orgIdList);
 
-    void batchInsertByXML(@Param("list") List<SysWorkTime> list);
+    int batchInsertByXML(@Param("list") List<SysWorkTime> list);
     void batchUpdateByXML(@Param("list") List<SysWorkTime> list);
 }

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

@@ -41,6 +41,7 @@ public interface ISysWorkTimeService extends IService<SysWorkTime> {
     List<SysWorkTime> findByOrgAndMonth(SysWorkTime sysWorkTime);
 
     List<SysWorkTime> batchnew(Long orgId, List<SysWorkTime> workTimeDtoList);
+    List<SysWorkTime> batchNew(List<Long> orgIdList, List<SysWorkTime> workTimeDtoList);
 
     boolean existByYmd(Long orgId, Ymd ymd, boolean isEnable);
 

+ 63 - 44
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysWorkTimeServiceImpl.java

@@ -1,41 +1,33 @@
 package com.xunmei.system.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.nacos.shaded.com.google.gson.Gson;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.domain.worktime.domain.SysWorkTime;
 import com.xunmei.common.core.domain.worktime.dto.WorkTimeDto;
-import com.xunmei.common.core.event.WorkTimeChangeEvent;
-import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.Ymd;
-import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
-import com.xunmei.common.core.domain.worktime.domain.SysWorkTime;
 import com.xunmei.system.domain.SysWorkTimeSet;
 import com.xunmei.system.dto.SysWorkTimeDto;
-import com.xunmei.system.dto.WorkTimeMonthEditNewDto;
 import com.xunmei.system.mapper.SysWorkTimeMapper;
 import com.xunmei.system.mapper.SysWorkTimeSetMapper;
 import com.xunmei.system.service.ISysOrgService;
 import com.xunmei.system.service.ISysWorkTimeService;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
@@ -94,41 +86,39 @@ public class SysWorkTimeServiceImpl extends ServiceImpl<SysWorkTimeMapper, SysWo
         //查询条件
         QueryWrapper<SysWorkTime> query = new QueryWrapper<>();
 
-            if (sysWorkTime.getIsEnable() != null) {
-                query.eq("t.is_enable", sysWorkTime.getIsEnable());
-            }
-            if (sysWorkTime.getOrgId() != null && !sysWorkTime.getCheckSub()) {
-                query.eq("t.org_id", sysWorkTime.getOrgId());
-            }
-            if (sysWorkTime.getModifiedName() != null) {
-                query.eq("t.modified_name", sysWorkTime.getModifiedName());
-            }
-            if (sysWorkTime.getOrgType() != null) {
-                query.eq("o.type", sysWorkTime.getOrgType());
-            }
-            //下穿
-            if (sysWorkTime.getCheckSub()) {
-                query.like("o.path", sysWorkTime.getOrgId());
-            } else {
-                query.likeLeft("o.path", sysWorkTime.getOrgId() + "-");
-            }
+        if (sysWorkTime.getIsEnable() != null) {
+            query.eq("t.is_enable", sysWorkTime.getIsEnable());
+        }
+        if (sysWorkTime.getOrgId() != null && !sysWorkTime.getCheckSub()) {
+            query.eq("t.org_id", sysWorkTime.getOrgId());
+        }
+        if (sysWorkTime.getModifiedName() != null) {
+            query.eq("t.modified_name", sysWorkTime.getModifiedName());
+        }
+        if (sysWorkTime.getOrgType() != null) {
+            query.eq("o.type", sysWorkTime.getOrgType());
+        }
+        //下穿
+        if (sysWorkTime.getCheckSub()) {
+            query.like("o.path", sysWorkTime.getOrgId());
+        } else {
+            query.likeLeft("o.path", sysWorkTime.getOrgId() + "-");
+        }
 //            sysWorkTime.setOrgId(null);
 
-            //时间范围查询
-            if (sysWorkTime.getRange() != null && sysWorkTime.getRange().length > 1) {
-                query.between("t.ymd_date", extractDate(sysWorkTime.getRange()[0].toString(), "EEE MMM dd HH:mm:ss zzz yyyy"), extractDate(sysWorkTime.getRange()[1].toString(), "EEE MMM dd HH:mm:ss zzz yyyy"));
-            }
-            query.orderByDesc("ymd_date");
+        //时间范围查询
+        if (sysWorkTime.getRange() != null && sysWorkTime.getRange().length > 1) {
+            query.between("t.ymd_date", extractDate(sysWorkTime.getRange()[0].toString(), "EEE MMM dd HH:mm:ss zzz yyyy"), extractDate(sysWorkTime.getRange()[1].toString(), "EEE MMM dd HH:mm:ss zzz yyyy"));
+        }
+        query.orderByDesc("ymd_date");
 
         //获取数据
-        IPage<SysWorkTimeDto> page1= null;
-            if(sysWorkTime.getNoWorkTime())
-            {
-                page1 = sysWorkTimeMapper.selectNoWorkTimeByPage(page, query,sysWorkTime);
-            }
-            else{
-                page1 = sysWorkTimeMapper.selectByPage(page, query);
-            }
+        IPage<SysWorkTimeDto> page1 = null;
+        if (sysWorkTime.getNoWorkTime()) {
+            page1 = sysWorkTimeMapper.selectNoWorkTimeByPage(page, query, sysWorkTime);
+        } else {
+            page1 = sysWorkTimeMapper.selectByPage(page, query);
+        }
 
         //抓换为TableDataInfo适配前端
         return TableDataInfo.build(page1);
@@ -341,7 +331,7 @@ public class SysWorkTimeServiceImpl extends ServiceImpl<SysWorkTimeMapper, SysWo
         Date updateTime = new Date();
 
         for (SysWorkTime s : workTimeDtoList) {
-            if (s.getIsEnable() == null || s.getYmdDate().compareTo(now)<=0) {
+            if (s.getIsEnable() == null || s.getYmdDate().compareTo(now) <= 0) {
 
             } else {
                 List<SysWorkTime> list = baseMapper.selectList(new LambdaQueryWrapper<SysWorkTime>().eq(SysWorkTime::getOrgId, orgId).eq(SysWorkTime::getYmdDate, s.getYmdDate()));
@@ -362,6 +352,35 @@ public class SysWorkTimeServiceImpl extends ServiceImpl<SysWorkTimeMapper, SysWo
     }
 
     @Override
+    public List<SysWorkTime> batchNew(List<Long> orgIdList, List<SysWorkTime> workTimeDtoList) {
+        if (orgIdList.isEmpty() || workTimeDtoList.isEmpty()) {
+            return workTimeDtoList;
+        }
+        Date now = DateUtil.beginOfDay(new Date());
+        Date updateTime = new Date();
+        final List<SysWorkTime> collect = workTimeDtoList.stream().filter(w -> ObjectUtil.isNotNull(w.getIsEnable()) && w.getYmdDate().compareTo(now) > 0).collect(Collectors.toList());
+        final List<Date> dateList = workTimeDtoList.stream().map(SysWorkTime::getYmdDate).distinct().collect(Collectors.toList());
+        final int delete = baseMapper.delete(new LambdaQueryWrapper<SysWorkTime>().in(SysWorkTime::getOrgId, orgIdList).in(SysWorkTime::getYmdDate, dateList));
+        List<SysWorkTime> list = new ArrayList<>();
+        SysWorkTime workTime=null;
+        for (Long orgId : orgIdList) {
+            for (SysWorkTime s : collect) {
+                workTime=new SysWorkTime();
+                BeanUtils.copyProperties(s,workTime);
+                workTime.setId(String.valueOf(IdWorker.getId()));
+                workTime.setOrgId(orgId);
+                workTime.setIsManual(1L);
+                workTime.setUpdateTime(updateTime);
+                workTime.setModifiedId(SecurityUtils.getUserId());
+                workTime.setModifiedName(SecurityUtils.getUsername());
+                list.add(workTime);
+            }
+        }
+        final int i = baseMapper.batchInsertByXML(list);
+        return workTimeDtoList;
+    }
+
+    @Override
     public boolean existByYmd(Long orgId, Ymd ymd, boolean isEnable) {
         QueryWrapper<SysWorkTime> queryWrapper = new QueryWrapper<>();
         if (ymd.getDay() != null) {
@@ -470,7 +489,7 @@ public class SysWorkTimeServiceImpl extends ServiceImpl<SysWorkTimeMapper, SysWo
                 .ge(SysWorkTime::getYmdDate, workTimeDto.getStartTime())
                 .le(SysWorkTime::getYmdDate, workTimeDto.getEndTime())
                 .in(SysWorkTime::getOrgId, workTimeDto.getOrgIdList())
-                .eq(SysWorkTime::getIsEnable,1L)
+                .eq(SysWorkTime::getIsEnable, 1L)
                 .select(SysWorkTime::getId,
                         SysWorkTime::getIsEnable,
                         SysWorkTime::getYmdDate,