瀏覽代碼

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

jingyuanchao 1 年之前
父節點
當前提交
36fbde0890

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

@@ -1097,6 +1097,7 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
                 org.setOrgPath(sysOrg.getPath());
             }
         }
-        return null;
+        List<SysOrg> sysOrgs = baseMapper.selectOrgs(org);
+        return sysOrgs;
     }
 }

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

@@ -199,7 +199,7 @@ public class SysVersionServiceImpl extends ServiceImpl<SysVersionMapper, SysVers
                 dto.setNewVersion(version.getVersion());
                 dto.setNote(version.getNote());
                 dto.setPackageName(version.getPackageName());
-                dto.setDownloadUrl("/file/file/getFile/"+version.getFileCode());
+                dto.setDownloadUrl("file/file/getFile/"+version.getFileCode());
                 return dto;
             }
         }

+ 84 - 71
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysWorkTimeSetServiceImpl.java

@@ -28,6 +28,7 @@ import com.xunmei.system.util.StreamHelper;
 
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import com.xunmei.system.service.ISysOrgService;
 
@@ -132,10 +133,10 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
             sysWorkTimeSet.setOrgId(null);
             //添加in条件
             query.in("t.org_id", ids);
-        }else{
-            query.eq("t.org_id",sysWorkTimeSet.getOrgId());
+        } else {
+            query.eq("t.org_id", sysWorkTimeSet.getOrgId());
         }
-        if(sysWorkTimeSet.getOrgType()!=null){
+        if (sysWorkTimeSet.getOrgType() != null) {
             query.eq("o.type", sysWorkTimeSet.getOrgType());
         }
         query.orderByDesc
@@ -280,93 +281,104 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
      * 2)定时任务在每年11月15日自动生成下一年的作息。
      * 3)修改作息模版后,自动修改生效日期后的已生成的作息
      * 4)以最新修改为准,包括模版和app单日修改
+     *
      * @param request
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
     public AjaxResult add(SysWorkTimeSet request) {
-        if(ObjectUtil.isNull(request.getEffectiveDate())){
+        if (ObjectUtil.isNull(request.getEffectiveDate())) {
             return error("作息模板的生效日期不能为空");
         }
 
-        if(DateUtil.endOfDay(DateTime.now()).after(request.getEffectiveDate()))
-        {
+        if (DateUtil.endOfDay(DateTime.now()).after(request.getEffectiveDate())) {
             return error("作息模板的生效日期必须大于今天");
         }
 
-        if(CollectionUtils.isEmpty(request.getOrgIds()))
-        {
+        if (CollectionUtils.isEmpty(request.getOrgIds())) {
             return error("作息模板机构不能为空");
         }
 
         List<Long> orgIds = request.getOrgIds();
 
-        for (Long oid : orgIds) {
+       /* for (Long oid : orgIds) {
             List<SysWorkTimeSet> sysWorkTimeSets = baseMapper.selectList(new LambdaQueryWrapper<SysWorkTimeSet>().eq(SysWorkTimeSet::getOrgId, oid));
             //如果id为空表示是新增,需要判断是否存在相同机构相同时间的模板
             if (request.getId() == null && sysWorkTimeSets.size() > 0) {
                 return error("机构'" + orgService.getById(oid).getName() + "'已存在作息模板,一个机构只允许同时存在一个作息模板");
             }
-        }
+        }*/
 //        int year = Calendar.getInstance().get(Calendar.YEAR);
         int year = new DateHelper(request.getEffectiveDate()).getYear();
 
 //        if (CollectionUtils.isNotEmpty(orgIds)) {
-            List<SysWorkTimeSet> sets = new ArrayList<>();
-            SysWorkTimeSet set = null;
-            SysOrg org = null;
-            List<SysWorkTimeSetDayofweek> dayOfWeeks = new ArrayList<>();
-            Set<Long> workTimeSetIds = new HashSet<>();
-            for (Long orgId : orgIds) {
-                if (request.getId() != null) {
-                    set = sysWorkTimeSetMapper.selectById(request.getId());
-                } else {
-                    set = new SysWorkTimeSet();
-                    org = orgService.selectSysOrgById(orgId);
-                }
-                BeanHelper.copyProperties(set, request);
-                set.setOrgId(orgId);
-                set.setYear((long) year);
-                set.setDayOfWeeks(new ArrayList<>());
-                if (set.getId() == null) {
-                    if (org != null) {
-                        set.setOrgName(org.getShortName());
-                    }
-                    set.setCreateTime(new Date());
-                    set.setCreateBy(SecurityUtils.getUsername());
-                    sysWorkTimeSetMapper.insert(set);
+        List<SysWorkTimeSet> sets = new ArrayList<>();
+        SysWorkTimeSet set = null;
+        SysOrg org = null;
+        List<SysWorkTimeSetDayofweek> dayOfWeeks = new ArrayList<>();
+        Set<Long> workTimeSetIds = new HashSet<>();
+        for (Long orgId : orgIds) {
+
+            QueryWrapper<SysWorkTimeSet> qw = new QueryWrapper<>();
+            qw.lambda().eq(SysWorkTimeSet::getOrgId, orgId);
+            SysWorkTimeSet sysWorkTimeSet = sysWorkTimeSetMapper.selectList(qw).get(0);
+            if(sysWorkTimeSet != null){
+                set = sysWorkTimeSet;
+            }else{
+                set = new SysWorkTimeSet();
+                org = orgService.selectSysOrgById(orgId);
+            }
 
-                } else {
-                    set.setUpdateTime(new Date());
-                    set.setUpdateBy(SecurityUtils.getUsername());
-                    sysWorkTimeSetMapper.updateById(set);
+
+            /*if (request.getId() != null) {
+                set = sysWorkTimeSetMapper.selectById(request.getId());
+            } else {
+                set = new SysWorkTimeSet();
+                org = orgService.selectSysOrgById(orgId);
+            }*/
+            BeanHelper.copyProperties(set, request);
+            set.setOrgId(orgId);
+            set.setYear((long) year);
+            set.setDayOfWeeks(new ArrayList<>());
+            set.setUpdateTime(new Date());
+            set.setUpdateBy(SecurityUtils.getUsername());
+            if (set.getId() == null) {
+                if (org != null) {
+                    set.setOrgName(org.getShortName());
                 }
+                set.setCreateTime(new Date());
+                set.setCreateBy(SecurityUtils.getUsername());
+                sysWorkTimeSetMapper.insert(set);
 
-                Long id = set.getId();
-
-                List<SysWorkTimeSetDayofweek> tmp = request.getDayOfWeeks().stream().map(w -> {
-                    SysWorkTimeSetDayofweek dw = new SysWorkTimeSetDayofweek();
-                    BeanUtils.copyProperties(w, dw);
-                    return dw;
-                }).collect(Collectors.toList());
-                tmp.forEach(w -> {
-                    w.setWorkTimeSetId(id);
-                });
-
-                dayOfWeeks.addAll(tmp);
-                set.setDayOfWeeks(dayOfWeeks);
-                sets.add(set);
-                workTimeSetIds.add(id);
-            }
-            //清除可能存在的旧作息数据
-            sysWorkTimeSetDayofweekMapper.delete(new LambdaQueryWrapper<SysWorkTimeSetDayofweek>().in(SysWorkTimeSetDayofweek::getWorkTimeSetId, workTimeSetIds));
-            for (SysWorkTimeSetDayofweek s : dayOfWeeks) {
-                sysWorkTimeSetDayofweekMapper.insert(s);
-            }
-            if (CollectionUtils.isNotEmpty(dayOfWeeks)) {
-                changeOrgWorkTime(sets, request.getEffectiveDate(), orgIds);
+            } else {
+                sysWorkTimeSetMapper.updateById(set);
             }
+
+            Long id = set.getId();
+
+            List<SysWorkTimeSetDayofweek> tmp = request.getDayOfWeeks().stream().map(w -> {
+                SysWorkTimeSetDayofweek dw = new SysWorkTimeSetDayofweek();
+                BeanUtils.copyProperties(w, dw);
+                return dw;
+            }).collect(Collectors.toList());
+            tmp.forEach(w -> {
+                w.setWorkTimeSetId(id);
+            });
+
+            dayOfWeeks.addAll(tmp);
+            set.setDayOfWeeks(dayOfWeeks);
+            sets.add(set);
+            workTimeSetIds.add(id);
+        }
+        //清除可能存在的旧作息数据
+        sysWorkTimeSetDayofweekMapper.delete(new LambdaQueryWrapper<SysWorkTimeSetDayofweek>().in(SysWorkTimeSetDayofweek::getWorkTimeSetId, workTimeSetIds));
+        for (SysWorkTimeSetDayofweek s : dayOfWeeks) {
+            sysWorkTimeSetDayofweekMapper.insert(s);
+        }
+        if (CollectionUtils.isNotEmpty(dayOfWeeks)) {
+            changeOrgWorkTime(sets, request.getEffectiveDate(), orgIds);
+        }
 //        }
         return success();
     }
@@ -464,7 +476,7 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
         }
     }
 
-    private void changeOrgWorkTime(List<SysWorkTimeSet> sets,Date effectiveDate, List<Long> orgIds) {
+    private void changeOrgWorkTime(List<SysWorkTimeSet> sets, Date effectiveDate, List<Long> orgIds) {
         //如果生效年份等于当前年份,那么就重新生成生效日期后当年以及下一年的作息时间
         int effectiveYear = new DateHelper(effectiveDate).getYear();
         int dateNowYear = new DateHelper(new Date()).getYear();
@@ -492,13 +504,13 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
             for (SysWorkTimeSet workTime : sets) {
                 List<SysWorkTime> workTimeEditDtoList = new ArrayList<>();
                 for (DateTime time : dateTimeList) {
-                    Optional<SysWorkTimeSetDayofweek> dayOfWeekSetNew = workTime.getDayOfWeeks().stream().filter(w -> w.getDayOfWeek() == time.dayOfWeek() ).findFirst();
+                    Optional<SysWorkTimeSetDayofweek> dayOfWeekSetNew = workTime.getDayOfWeeks().stream().filter(w -> w.getDayOfWeek() == time.dayOfWeek()).findFirst();
                     SysWorkTimeSetDayofweek dayOfWeekSet = dayOfWeekSetNew.orElse(null);
                     boolean isEnable = ObjectUtil.isNotNull(dayOfWeekSet) && ObjectUtil.isNotNull(dayOfWeekSet.getIsWorkday()) && dayOfWeekSet.getIsWorkday() > 0;
                     SysWorkTime dto = new SysWorkTime();
                     dto.setDate(time);
                     dto.setIsEnable(isEnable ? 1L : 0);
-                    dto.setIsDuty(ObjectUtil.isNotNull(dayOfWeekSet)?dayOfWeekSet.getIsDuty():null);
+                    dto.setIsDuty(ObjectUtil.isNotNull(dayOfWeekSet) ? dayOfWeekSet.getIsDuty() : null);
 
                     if (ObjectUtil.isNull(dayOfWeekSet) || !(dayOfWeekSet.getIsWorkday() > 0)) {
                         Optional<SysWorkTimeSetDayofweek> firstWorkDay = workTime.getDayOfWeeks().stream().filter(f -> f.getIsWorkday() > 0).findFirst();
@@ -699,15 +711,16 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void generateNextYear() {
-        List<DateTime> dateTimeList= getNextYearDateList();
+        List<DateTime> dateTimeList = getNextYearDateList();
         generateWorkTime(dateTimeList);
     }
 
     /**
      * 获取下一月生成作息的日期列表
+     *
      * @return
      */
-    public List<DateTime> getNextMonthDateList(){
+    public List<DateTime> getNextMonthDateList() {
         Calendar calendar = Calendar.getInstance();
         calendar.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
         calendar.set(Calendar.DAY_OF_MONTH, 1);
@@ -722,9 +735,10 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
 
     /**
      * 获取下一年生成作息的日期列表
+     *
      * @return
      */
-    public List<DateTime> getNextYearDateList(){
+    public List<DateTime> getNextYearDateList() {
         Calendar calendar = Calendar.getInstance();
         calendar.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
         calendar.add(Calendar.YEAR, 1);
@@ -738,7 +752,6 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
     }
 
 
-
     @Transactional(rollbackFor = Exception.class)
     public void generateWorkTime(int year, int month) {
         Calendar calendar = Calendar.getInstance();
@@ -824,7 +837,7 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
 //                list1 = workTimeEditDtos;
 //            }
             list1 = workTimeEditDtos;
-            batch(dayMap.getKey(),list1);
+            batch(dayMap.getKey(), list1);
         }
 
     }
@@ -857,7 +870,7 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
                 dto.setDate(time);
                 dto.setOrgId(setMap.getKey());
                 dto.setIsEnable(isEnable ? 1L : 0L);
-                dto.setIsDuty(ObjectUtil.isNotNull(dayOfWeekSet)?dayOfWeekSet.getIsDuty():null);
+                dto.setIsDuty(ObjectUtil.isNotNull(dayOfWeekSet) ? dayOfWeekSet.getIsDuty() : null);
                 if (ObjectUtil.isNull(dayOfWeekSet) || !(dayOfWeekSet.getIsWorkday() > 0)) {
                     Optional<SysWorkTimeSetDayofweek> firstWorkDay = set.getDayOfWeeks().stream().filter(f -> f.getIsWorkday() > 0).findFirst();
                     if (firstWorkDay.isPresent()) {
@@ -879,8 +892,8 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
         Map<Long, List<SysWorkTime>> groupDay = workTimeEditDtoList.stream().collect(Collectors.groupingBy(SysWorkTime::getOrgId));
         //自动生成时覆盖按日维护的的作息,谁后生成或者后修改谁生效, 删除下一年已有的作息
         final LambdaQueryWrapper<SysWorkTime> sysWorkTimeLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        sysWorkTimeLambdaQueryWrapper.ge(SysWorkTime::getYmdDate,dateTimeList.get(0).toString("yyyy-MM-dd"));
-        sysWorkTimeLambdaQueryWrapper.le(SysWorkTime::getYmdDate,dateTimeList.get(dateTimeList.size()-1).toString("yyyy-MM-dd"));
+        sysWorkTimeLambdaQueryWrapper.ge(SysWorkTime::getYmdDate, dateTimeList.get(0).toString("yyyy-MM-dd"));
+        sysWorkTimeLambdaQueryWrapper.le(SysWorkTime::getYmdDate, dateTimeList.get(dateTimeList.size() - 1).toString("yyyy-MM-dd"));
         sysWorkTimeMapper.delete(sysWorkTimeLambdaQueryWrapper);
 
         for (Map.Entry<Long, List<SysWorkTime>> dayMap : groupDay.entrySet()) {

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

@@ -1295,7 +1295,7 @@ and a.org_path LIKE concat(#{orgPath}, '%')
         sort
     </select>
 
-    <select id="selectOrgs">
+    <select id="selectOrgs" resultType="com.xunmei.system.api.domain.SysOrg">
         SELECT
         *
         FROM