package cn.com.goldenwater.dcproj.service.impl.base; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.constValue.AdCodeLabel; import cn.com.goldenwater.dcproj.constValue.PersTypeEnum; import cn.com.goldenwater.dcproj.dao.AttPersBaseDao; import cn.com.goldenwater.dcproj.dao.RelPersInspgroupDao; import cn.com.goldenwater.dcproj.dto.AttPersGroupDto; import cn.com.goldenwater.dcproj.model.AttPersBase; import cn.com.goldenwater.dcproj.model.BisInspAll; import cn.com.goldenwater.dcproj.model.OlBisInspOrg; import cn.com.goldenwater.dcproj.model.RelPersInspgroup; import cn.com.goldenwater.dcproj.param.AttPersBaseParam; import cn.com.goldenwater.dcproj.service.AttPersBaseService; import cn.com.goldenwater.dcproj.service.BisInspAllService; import cn.com.goldenwater.dcproj.service.OlBisInspOrgService; import cn.com.goldenwater.dcproj.utils.DateUtils; import cn.com.goldenwater.dcproj.utils.TelUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import java.util.List; /** * @author lune * @date 2019-2-18 */ @Service @Transactional(rollbackFor = Exception.class) public class AttPersBaseServiceImpl extends AbstractCrudService implements AttPersBaseService { @Autowired private AttPersBaseDao attPersBaseDao; @Autowired private RelPersInspgroupDao relPersInspgroupDao; @Autowired private BisInspAllService bisInspAllService; public AttPersBaseServiceImpl(AttPersBaseDao attPersBaseDao) { super(attPersBaseDao); this.attPersBaseDao = attPersBaseDao; } @Override public List findPerInGroup(String id) throws Exception { List list = attPersBaseDao.findPerInGroup(id); return list; } @Override public AttPersGroupDto findPerDetailInGroup(String id) throws Exception { AttPersGroupDto att = attPersBaseDao.findPerDetailInGroup(id); return att; } @Override public PageInfo getListByGuidInspGroupIdName(String inspGroupId, String name, int pageIndex, int pageSize) { //设置分页 PageHelper.startPage(pageIndex, pageSize); //处理namelike if (null != name) { name = AdCodeLabel.PRCENT_INIT_DATE + name + AdCodeLabel.PRCENT_INIT_DATE; } List list = attPersBaseDao.getListByGuidInspGroupIdName(inspGroupId, name); return new PageInfo(list); } @Override public PageInfo getListByGuid(String guid, int pageIndex, int pageSize) { //设置分页 PageHelper.startPage(pageIndex, pageSize); AttPersBaseParam attPersBaseParam = new AttPersBaseParam(); attPersBaseParam.setOrgGuid(guid); attPersBaseParam.setStatus(AdCodeLabel.INIT_STATUS); List list = attPersBaseDao.findList(attPersBaseParam); return new PageInfo(list); } @Override public PageInfo getListByGuidNotInspGroupId(String inspGroupId, String name, int pageIndex, int pageSize, String orgName, String guid, String numb, String orgId, String province) { //设置分页 PageHelper.startPage(pageIndex, pageSize); List list = attPersBaseDao.getListByGuidNotInspGroupId(inspGroupId, name, guid, numb, orgId, orgName, province); PageInfo attPersBasePageInfo = new PageInfo(list); for (int i = 0; i < attPersBasePageInfo.getList().size(); i++) { String tel = attPersBasePageInfo.getList().get(i).getMobilenumb() == null ? AdCodeLabel.NULL_INIT_DATE : attPersBasePageInfo.getList().get(i).getMobilenumb().toString(); if (!tel.equals(AdCodeLabel.NULL_INIT_DATE)) { attPersBasePageInfo.getList().get(i).setMobilenumb(TelUtil.getTel(tel)); } //获取人员ID String persId = attPersBasePageInfo.getList().get(i).getGuid(); //获取人员分配的组 String dcWork = ""; List bisInspAlls = bisInspAllService.getPersDcWork(persId); for (BisInspAll bisInspAll : bisInspAlls) { if (bisInspAll.getSttm() == null || bisInspAll.getEntm() == null) { dcWork += " 在组" + bisInspAll.getPnm() + " 中担任:" + getName(bisInspAll.getPertype()) + "\r\n"; } else { dcWork += DateUtils.Date2Str(bisInspAll.getSttm()) + "至" + DateUtils.Date2Str(bisInspAll.getEntm()) + " 在组" + bisInspAll.getPnm() + " 中担任:" + getName(bisInspAll.getPertype()) + "\r\n"; } } if (dcWork.length() > 0) { dcWork = dcWork.substring(0, dcWork.length() - 1); } //拼接组信息 attPersBasePageInfo.getList().get(i).setDcWork(dcWork); } return attPersBasePageInfo; } public String getName(String perType) { String name = ""; if (perType.equals("1")) { name = "组长"; } else if (perType.equals("2")) { name = "组员"; } else if (perType.equals("3")) { name = "专家"; } else if (perType.equals("3")) { name = "联络员"; } return name; } @Autowired private OlBisInspOrgService inspOrgService; @Override public int addManByInspGroupIdAndManId(String manIds, String inspGroupId, String mohurd, String orgId) { OlBisInspOrg olBisInspOrg = inspOrgService.get(orgId); //处理参数 String adCode = olBisInspOrg.getRlcode(); if (null != manIds && manIds.contains(AdCodeLabel.DOUHAO_SPLIT)) { String[] split = manIds.split(AdCodeLabel.DOUHAO_SPLIT); String[] mohs = mohurd == null ? AdCodeLabel.NULL_INIT_DATE.split(AdCodeLabel.DOUHAO_SPLIT) : mohurd.split(AdCodeLabel.DOUHAO_SPLIT); for (int i = 0; i < split.length; i++) { RelPersInspgroup relPersInspgroup = new RelPersInspgroup(); if (StringUtils.isEmpty(mohs[i]) || AdCodeLabel.NULL_INIT_DATE_DESC.equals(mohs[i])) { relPersInspgroup.setInspPersType(AdCodeLabel.PERS_TYPE); } else { relPersInspgroup.setInspPersType(mohs[i]); } relPersInspgroup.setInspGroupId(inspGroupId); relPersInspgroup.setPersId(split[i]); if (!adCode.startsWith(AdCodeLabel.START_PARENT_ADCODE)) { relPersInspgroup.setAdCode(adCode); relPersInspgroup.setOrgId(orgId); } String type = Integer.parseInt(inspGroupId.substring(0, 3)) + ""; relPersInspgroup.setType(type); relPersInspgroupDao.insertRelation(relPersInspgroup); } } else { RelPersInspgroup relPersInspgroup = new RelPersInspgroup(); //1组长2组员 if (StringUtils.isEmpty(mohurd) || AdCodeLabel.NULL_INIT_DATE_DESC.equals(mohurd)) { relPersInspgroup.setInspPersType(AdCodeLabel.PERS_TYPE); } else { relPersInspgroup.setInspPersType(mohurd); } if (!adCode.startsWith(AdCodeLabel.START_PARENT_ADCODE)) { relPersInspgroup.setAdCode(adCode); relPersInspgroup.setOrgId(orgId); } relPersInspgroup.setInspGroupId(inspGroupId); relPersInspgroup.setPersId(manIds); String type = Integer.parseInt(inspGroupId.substring(0, 3)) + ""; relPersInspgroup.setType(type); relPersInspgroupDao.insertRelation(relPersInspgroup); } return 0; } @Override public AttPersBase getPers(String persId) { return attPersBaseDao.getPers(persId); } @Override public PageInfo getListByInspGroupId(String inspGroupId, int pageNum, int pageSize, String isAll, String persName, String province) { PageHelper.startPage(pageNum, pageSize); List list = attPersBaseDao.getByInspGroupId(inspGroupId, isAll, persName, province); PageInfo attPersBasePageInfo = new PageInfo(list); for (int i = 0; i < attPersBasePageInfo.getList().size(); i++) { String tel = attPersBasePageInfo.getList().get(i).getMobilenumb() == null ? AdCodeLabel.NULL_INIT_DATE : attPersBasePageInfo.getList().get(i).getMobilenumb().toString(); if (!tel.equals(AdCodeLabel.NULL_INIT_DATE)) { if(org.apache.commons.lang3.StringUtils.isEmpty(attPersBasePageInfo.getList().get(i).getCallnumber()) ){ attPersBasePageInfo.getList().get(i).setCallnumber(tel); } } } return attPersBasePageInfo; } @Override public List listByInspGroupId(String inspGroupId, String isAll, String persName, String province) { List list = attPersBaseDao.getByInspGroupId(inspGroupId, isAll, persName, province); for (AttPersBase attPersBase : list) { String tel = attPersBase.getMobilenumb() == null ? AdCodeLabel.NULL_INIT_DATE : attPersBase.getMobilenumb(); if (!tel.equals(AdCodeLabel.NULL_INIT_DATE)) { attPersBase.setMobilenumb(TelUtil.getTel(tel)); } } return list; } @Override public List getExpertListByInspGroupId(String inspGroupId, String province) { return attPersBaseDao.getExpertListByInspGroupId(inspGroupId, province); } }