package com.dingzhuo.energy.basic.data.workforce.service.impl; import com.dingzhuo.energy.basic.data.workforce.domain.RosteringShift; import com.dingzhuo.energy.basic.data.workforce.domain.workForceTreeObject; import com.dingzhuo.energy.basic.data.workforce.mapper.RosteringShiftMapper; import com.dingzhuo.energy.basic.data.workforce.service.IRosteringShiftService; import com.dingzhuo.energy.common.utils.DateUtils; import com.dingzhuo.energy.project.system.domain.SysDept; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; import static org.apache.commons.lang3.StringUtils.equalsAnyIgnoreCase; /** * 排班管理设置Service业务层处理 * * @author liuli * @date 2020-05-12 */ @Service public class RosteringShiftServiceImpl implements IRosteringShiftService { @Autowired private RosteringShiftMapper rosteringShiftMapper; @Override public List treeList() { return rosteringShiftMapper.treeList(); } @Override public List buildModelNodeTree(List modelNodes) { List modelNodeTree = modelNodes.stream() .filter(f -> f.getParentId().toString().equals("0")) .collect(Collectors.toList()); for (SysDept modelNode : modelNodeTree) { List children = modelNodes.stream() .filter(f -> equalsAnyIgnoreCase(f.getParentId().toString(), modelNode.getDeptId().toString())) .collect(Collectors.toList()); buildTree(modelNode, children, modelNodes); } return modelNodeTree.stream().map(workForceTreeObject::new).collect(Collectors.toList()); } private void buildTree(SysDept parent, List children, List modelNodes) { parent.setChildren(children); for (SysDept modelNode : children) { List tmp = modelNodes.stream() .filter(f -> equalsAnyIgnoreCase(f.getParentId().toString(), modelNode.getDeptId().toString())) .collect(Collectors.toList()); if (!tmp.isEmpty()) { buildTree(modelNode, tmp, modelNodes); } } } /** * 查询排班管理设置 * * @param id 排班管理设置ID * @return 排班管理设置 */ @Override public RosteringShift selectRosteringShiftById(String id) { return rosteringShiftMapper.selectRosteringShiftById(id); } /** * 查询排班管理设置列表 * * @param rosteringShift 排班管理设置 * @return 排班管理设置 */ @Override public List selectRosteringShiftList(RosteringShift rosteringShift) { return rosteringShiftMapper.selectRosteringShiftList(rosteringShift); } /** * 新增排班管理设置 * * @param rosteringShift 排班管理设置 * @return 结果 */ @Override public int insertRosteringShift(RosteringShift rosteringShift) { return rosteringShiftMapper.insertRosteringShift(rosteringShift); } /** * 修改排班管理设置 * * @param rosteringShift 排班管理设置 * @return 结果 */ @Override public int updateRosteringShift(RosteringShift rosteringShift) { rosteringShift.setUpdateTime(DateUtils.getNowDate()); return rosteringShiftMapper.updateRosteringShift(rosteringShift); } /** * 批量删除排班管理设置 * * @param ids 需要删除的排班管理设置ID * @return 结果 */ @Override public int deleteRosteringShiftByIds(String[] ids) { return rosteringShiftMapper.deleteRosteringShiftByIds(ids); } /** * 删除排班管理设置信息 * * @param id 排班管理设置ID * @return 结果 */ @Override public int deleteRosteringShiftById(String id) { return rosteringShiftMapper.deleteRosteringShiftById(id); } }