| package com.zy.crm.manager.service.impl; | 
|   | 
| import com.baomidou.mybatisplus.plugins.Page; | 
| import com.baomidou.mybatisplus.service.impl.ServiceImpl; | 
| import com.core.common.Cools; | 
| import com.zy.crm.manager.entity.Plan; | 
| import com.zy.crm.manager.mapper.PlanMapper; | 
| import com.zy.crm.manager.service.PlanService; | 
| import org.springframework.stereotype.Service; | 
|   | 
| @Service("planService") | 
| public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements PlanService { | 
|   | 
|     @Override | 
|     public Plan selectByUuid(Long hostId, String uuid) { | 
|         return this.baseMapper.selectByUuid(hostId, uuid); | 
|     } | 
|   | 
|     @Override | 
|     public String getUuid(Long hostId) { | 
|         String uuid = null; | 
|         int times = 0; | 
|         while (Cools.isEmpty(uuid)) { | 
|             if (times > 100) { break; } | 
|             String nextUuid = getNextUuid(hostId); | 
|             if (selectByUuid(hostId, nextUuid) == null) { | 
|                 uuid = nextUuid; | 
|             } | 
|             times ++; | 
|         } | 
|         return uuid; | 
|     } | 
|   | 
|     @Override | 
|     public Page<Plan> getPage(Page<Plan> page, Long hostId, String deptId, Long userId, String condition) { | 
|         return page.setRecords(baseMapper.listByPage(page, hostId, deptId, userId, condition)); | 
|     } | 
|   | 
|     private String getNextUuid(Long hostId) { | 
|         Plan plan = this.baseMapper.selectPlanByNewestUuid(hostId); | 
|         if (plan == null) { | 
|             return "0001"; | 
|         } | 
|         return zerofill(String.valueOf(Integer.parseInt(plan.getUuid()) + 1), 4); | 
|     } | 
|   | 
|     public static String zerofill(String msg, Integer count){ | 
|         if (msg.length() == count){ | 
|             return msg; | 
|         } else if (msg.length() > count){ | 
|             return msg.substring(0, 16); | 
|         } else { | 
|             StringBuilder msgBuilder = new StringBuilder(msg); | 
|             for (int i = 0; i<count-msg.length(); i++){ | 
|                 msgBuilder.insert(0,"0"); | 
|             } | 
|             return msgBuilder.toString(); | 
|         } | 
|     } | 
|   | 
| } |