|  | @@ -277,13 +277,16 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public AjaxResult add(SysWorkTimeSet request) {
 | 
	
		
			
				|  |  | +        if(DateUtil.endOfDay(DateTime.now()).after(request.getEffectiveDate()))
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            return error("作息模板的生效日期必须大于今天");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          List<Long> orgIds = request.getOrgIds();
 | 
	
		
			
				|  |  | -        for (Long oid :
 | 
	
		
			
				|  |  | -                orgIds) {
 | 
	
		
			
				|  |  | -            List<SysWorkTimeSet> sysWorkTimeSets = baseMapper.selectList(new LambdaQueryWrapper<SysWorkTimeSet>().eq(SysWorkTimeSet::getOrgId, oid).eq(SysWorkTimeSet::getEffectiveDate, request.getEffectiveDate()));
 | 
	
		
			
				|  |  | +        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() + "'已存在选择时间的作息模板");
 | 
	
		
			
				|  |  | +                return error("机构'" + orgService.getById(oid).getName() + "'已存在作息模板,一个机构只允许同时存在一个作息模板");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          int year = Calendar.getInstance().get(Calendar.YEAR);
 | 
	
	
		
			
				|  | @@ -372,7 +375,7 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
 | 
	
		
			
				|  |  |              map.put("effectiveDate", effectiveDate);
 | 
	
		
			
				|  |  |              map.put("lastDayOfNextMonth", DateUtil.format(cal.getTime(), "yyyy-MM-dd"));
 | 
	
		
			
				|  |  |              map.put("orgIds", orgIds);
 | 
	
		
			
				|  |  | -            //objectMapper.deleteOrgWorkTimeByMonth(map);
 | 
	
		
			
				|  |  | +            sysWorkTimeMapper.deleteOrgWorkTimeByMonth(map);
 | 
	
		
			
				|  |  |              //获取不需要生成的日期
 | 
	
		
			
				|  |  |              List<SysWorkTime> list = new ArrayList<>();
 | 
	
		
			
				|  |  |              if (checkDataResult != null && checkDataResult == 0) {
 | 
	
	
		
			
				|  | @@ -660,14 +663,15 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
 | 
	
		
			
				|  |  |              List<SysWorkTime> workTimeNewVos = list.stream().filter(w -> w.getOrgId().equals(dayMap.getKey())).collect(Collectors.toList());
 | 
	
		
			
				|  |  |              //去掉workTimeEditDtos中机构与日期在workTimeNewVos中存在的数据
 | 
	
		
			
				|  |  |              List<SysWorkTime> list1 = null;
 | 
	
		
			
				|  |  | -            if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(workTimeNewVos)) {
 | 
	
		
			
				|  |  | -                list1 = workTimeEditDtos.stream().filter(s -> {
 | 
	
		
			
				|  |  | -                    return workTimeNewVos.stream().noneMatch(f -> f.getOrgId().equals(s.getOrgId()) && f.getYmdDate().equals(s.getDate()));
 | 
	
		
			
				|  |  | -                }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                list1 = workTimeEditDtos;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +            //自动生成时覆盖手打维护的作息,谁后生成谁生效
 | 
	
		
			
				|  |  | +//            if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(workTimeNewVos)) {
 | 
	
		
			
				|  |  | +//                list1 = workTimeEditDtos.stream().filter(s -> {
 | 
	
		
			
				|  |  | +//                    return workTimeNewVos.stream().noneMatch(f -> f.getOrgId().equals(s.getOrgId()) && f.getYmdDate().equals(s.getDate()));
 | 
	
		
			
				|  |  | +//                }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +//            } else {
 | 
	
		
			
				|  |  | +//                list1 = workTimeEditDtos;
 | 
	
		
			
				|  |  | +//            }
 | 
	
		
			
				|  |  | +            list1 = workTimeEditDtos;
 | 
	
		
			
				|  |  |              batch(dayMap.getKey(), date, list1);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 |