| 
					
				 | 
			
			
				@@ -0,0 +1,57 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package com.usky.fire.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.core.toolkit.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.core.toolkit.Wrappers; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.usky.common.mybatis.core.AbstractCrudService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.usky.fire.domain.DemOnDuty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.usky.fire.mapper.DemOnDutyMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.usky.fire.service.DemOnDutyService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.usky.fire.service.po.UnitBeOnDutyPO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.time.format.DateTimeFormatter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.TreeMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * <p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 值班表 服务实现类 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * </p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @author JCB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @since 2022-11-28 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class DemOnDutyServiceImpl extends AbstractCrudService<DemOnDutyMapper, DemOnDuty> implements DemOnDutyService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<List<UnitBeOnDutyPO>> list(String startTime, String endTime) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<List<UnitBeOnDutyPO>> lists = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<UnitBeOnDutyPO> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        LambdaQueryWrapper<DemOnDuty> queryWrapper = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        queryWrapper.between(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime), DemOnDuty::getDutyTime, startTime, endTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<DemOnDuty> unitBeOnDutyLists = this.list(queryWrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        unitBeOnDutyLists.forEach(stringStringMap -> list.add(enhanceUnitBeOnDutyPo(stringStringMap))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        TreeMap<String, List<UnitBeOnDutyPO>> collect = list.stream().collect(Collectors.groupingBy(UnitBeOnDutyPO::getTime, TreeMap::new, Collectors.toList())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (String s : collect.keySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lists.add(collect.get(s)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return lists; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public UnitBeOnDutyPO enhanceUnitBeOnDutyPo(DemOnDuty unitBeOnDutyMap) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        UnitBeOnDutyPO unitBeOnDutyPo = new UnitBeOnDutyPO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        unitBeOnDutyPo.setName(unitBeOnDutyMap.getPersonName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        unitBeOnDutyPo.setPostName(unitBeOnDutyMap.getPositionName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        unitBeOnDutyPo.setOrganizationName(unitBeOnDutyMap.getOrganizateName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        unitBeOnDutyPo.setOrganizationShort(unitBeOnDutyMap.getOrganizateAbbreviate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        unitBeOnDutyPo.setOrganizationAddress(unitBeOnDutyMap.getOrganizateAddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        unitBeOnDutyPo.setTime(unitBeOnDutyMap.getDutyTime().format(fmt)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return unitBeOnDutyPo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |