package com.goafanti.organization.service.impl; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import com.goafanti.common.dao.DepartmentMapper; import com.goafanti.common.model.Department; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.goafanti.core.mybatis.page.Pagination; import com.goafanti.core.shiro.token.TokenManager; import com.goafanti.organization.bo.OrganizationListOut; import com.goafanti.organization.service.OrganizationService; import com.goafanti.admin.bo.AdminListBo; import com.goafanti.common.dao.TOrderMidMapper; import com.goafanti.common.utils.StringUtils; import com.goafanti.core.mybatis.BaseMybatisDao; @Service public class OrganizationServiceImpl extends BaseMybatisDao implements OrganizationService { @Autowired private DepartmentMapper departmentMapper; @Autowired private TOrderMidMapper tOrderMidMapper; @Override public Pagination listOrganizationManagement(OrganizationListOut olo, Integer pageNo, Integer pageSize) { /*olo.setCreateId(TokenManager.getAdminId());*/ Map params =disposeParams(olo); @SuppressWarnings("unchecked") Pagination p=(Pagination)findPage("selectOrganizationList","selectOrganizationCount",params,pageNo,pageSize); return p; } private Map disposeParams(OrganizationListOut olo){ Map params = new HashMap(); if(StringUtils.isNotBlank(olo.getId())) params.put("id", olo.getId()); if(StringUtils.isNotBlank(olo.getCreateId())) params.put("createId", olo.getCreateId()); if(StringUtils.isNotBlank(olo.getCreateTime())) params.put("createTime", olo.getCreateTime()); if(StringUtils.isNotBlank(olo.getUpdateTime())) params.put("updateTime", olo.getUpdateTime()); if(StringUtils.isNotBlank(olo.getDeletedSign())) params.put("deletedSign", olo.getDeletedSign()); if(StringUtils.isNotBlank(olo.getName())) params.put("name", olo.getName()); if(StringUtils.isNotBlank(olo.getType())) params.put("type", olo.getType()); if(StringUtils.isNotBlank(olo.getManagerId())) params.put("managerId", olo.getManagerId()); if(StringUtils.isNotBlank(olo.getDepNo())) params.put("depNo", olo.getDepNo()); if(StringUtils.isNotBlank(olo.getSuperId())) params.put("superId", olo.getSuperId()); if(StringUtils.isNotBlank(olo.getRemarks())) params.put("remarks", olo.getRemarks()); if(StringUtils.isNotBlank(olo.getStatus())) params.put("status", olo.getStatus()); return params; } @Override public List selectSuperId(Integer i) { List depList=departmentMapper.selectSuperId(i); return depList; } /** * XXIn form 提交 ,bo包中 * xxOut 输出 bo包中 * domain 类 model中 * */ @Override public int addOrganization( String name, String managerId, String type, String superId, String remarks,String sdepNo ,Integer count,Integer workingHoursType,Integer hideSign) { String id = UUID.randomUUID().toString(); Date now = new Date(); Department dep=new Department(); dep.setId(id); String createId =departmentMapper.selectAdminNameById(TokenManager.getAdminId()); dep.setCreateId(createId); dep.setCreateTime(now); dep.setUpdateTime(now); dep.setDeletedSign(0); dep.setName(name); dep.setType(type); dep.setManagerId(managerId); dep.setDepNo(countDepNo(sdepNo,count)); // superId=departmentMapper.selectIdByName(superId); dep.setSuperId(superId); dep.setRemarks(remarks); dep.setStatus("0"); dep.setWorkingHoursType(workingHoursType); departmentMapper.insertSelective(dep); return 1; } @Override public List selectName(String name) { List list=departmentMapper.selectName(name); return list; } @Override public OrganizationListOut selectAllById(String id) { OrganizationListOut olo=departmentMapper.selectAllById(id); olo.setSuperId(departmentMapper.selectNameById(olo.getSuperId())); return olo; } @Override public int deleteById(String id) { departmentMapper.deleteById(id); return 1; } @Override public int updateOrganization(String name, String type, String managerId, String superId, String status,Integer province, String remarks,String id,String sdepNo,Integer count,String abbreviation,String financeId,Integer workingHoursType,Integer hideSign) { String deps = countDepNo(sdepNo,count); Date now=new Date(); Department dep=new Department(); dep.setName(name); dep.setType(type); dep.setUpdateTime(now); dep.setManagerId(managerId); dep.setDepNo(deps); dep.setSuperId(superId); dep.setStatus(status); dep.setRemarks(remarks); dep.setId(id); dep.setAbbreviation(abbreviation); dep.setFinanceId(financeId); dep.setProvince(province); dep.setHideSign(hideSign); dep.setWorkingHoursType(workingHoursType); tOrderMidMapper.updateFinanceId(id,financeId); int x=departmentMapper.updateByPrimaryKeySelective(dep); updateLowerLevelNo(dep.getId(),dep.getDepNo()); return x; } private String countDepNo(String sdepNo, Integer count) { String dep=null; if(count<10){ dep=sdepNo+"0"+count; String sid=departmentMapper.selectIdByDepNo(dep); while(sid!=null){ count=(count+1)%100; if(count>=10){ dep=sdepNo+count; }else{ dep=sdepNo+"0"+count; } sid=departmentMapper.selectIdByDepNo(dep); } }else if(count>=10){ dep=sdepNo+count; String sid=departmentMapper.selectIdByDepNo(dep); while(sid!=null){ count=(count+1)%100; dep=sdepNo+count; sid=departmentMapper.selectIdByDepNo(dep); } } return dep; } private void updateLowerLevelNo(String id,String depNo) { List Nos =departmentMapper.selectIDNBySuperId(id); int i=1; for (OrganizationListOut o : Nos) { if(i<10){ String dep=depNo+"0"+i; if(i>=10){ dep=depNo+i; }else{ dep=depNo+"0"+i; } o.setDepNo(dep); } else if(i>=10){ String dep=depNo+i; dep=depNo+i; o.setDepNo(dep); } departmentMapper.updateByNumber(o); updateLowerLevelNo(o.getId(),o.getDepNo()); i++; } } }