package cn.com.goldenwater.dcproj.service.impl.ducha; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.dao.*; import cn.com.goldenwater.dcproj.dto.BisInsNtfctnDto; import cn.com.goldenwater.dcproj.dto.NtfctnAndDvdwkDto; import cn.com.goldenwater.dcproj.dto.NtfctnDvdwkDto; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.*; import cn.com.goldenwater.dcproj.service.BisInsNtfctnService; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.service.OlBisInspOrgService; import cn.com.goldenwater.id.util.UuidUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author lhc * @date 2019-4-30 */ @Service @Transactional(rollbackFor = Exception.class) public class BisInsNtfctnServiceImpl extends AbstractCrudService implements BisInsNtfctnService { @Autowired private BisInsNtfctnDao bisInsNtfctnDao; @Autowired private BisInspAllRlationPersDao bisInspAllRlationPersDao; @Autowired private BisInspRecvUnitDao bisInspRecvUnitDao; @Autowired private GwComFileDao gwComFileDao; @Autowired private BisInspDvdwkDao bisInspDvdwkDao; @Autowired private BisInspAllDao bisInspAllDao; @Autowired private AttInspTypeDao attInspTypeDao; @Autowired private BisInspOrgDao bisInspOrgDao; @Autowired private OlBisInspOrgService olBisInspOrgService; public BisInsNtfctnServiceImpl(BisInsNtfctnDao bisInsNtfctnDao) { super(bisInsNtfctnDao); this.bisInsNtfctnDao = bisInsNtfctnDao; } @Override public BisInsNtfctn add(BisInsNtfctn bisInsNtfctn) { String uuid = UuidUtil.uuid(); // 生成uuid bisInsNtfctn.setId(uuid); bisInsNtfctn.setFlagValid(SplitValue.Flag_Valid); bisInsNtfctn.setIntm(new Date()); if (bisInsNtfctn.getPesrid() != null) {//获取人员的机构id BisInspAllRlationPers bisInspAllRlationPers = bisInspAllRlationPersDao.get(bisInsNtfctn.getPesrid()); bisInsNtfctn.setOrgId(bisInspAllRlationPers.getOrgId()); } bisInsNtfctnDao.insert(bisInsNtfctn);//添加督查通知 if (StringUtils.isNotBlank(bisInsNtfctn.getRecvOrgId())) { if (bisInsNtfctn.getRecvOrgId().contains(SplitValue.DOUHAO_SPLIT)) { String[] split = bisInsNtfctn.getRecvOrgId().split(SplitValue.DOUHAO_SPLIT); for (String s : split) { BisInspRecvUnit bisInspRecvUnit = new BisInspRecvUnit(); bisInspRecvUnit.setId(UuidUtil.uuid()); bisInspRecvUnit.setOrgId(s); bisInspRecvUnit.setFlagChk("0"); bisInspRecvUnit.setRecvType("RECV"); bisInspRecvUnit.setNtfctnId(uuid); bisInspRecvUnit.setFlagValid(SplitValue.Flag_Valid); bisInspRecvUnitDao.insert(bisInspRecvUnit); } } else { BisInspRecvUnit bisInspRecvUnit = new BisInspRecvUnit(); bisInspRecvUnit.setId(UuidUtil.uuid()); bisInspRecvUnit.setOrgId(bisInsNtfctn.getRecvOrgId()); bisInspRecvUnit.setFlagChk("0"); bisInspRecvUnit.setRecvType("RECV"); bisInspRecvUnit.setNtfctnId(uuid); bisInspRecvUnit.setFlagValid(SplitValue.Flag_Valid); bisInspRecvUnitDao.insert(bisInspRecvUnit); } } if (StringUtils.isNotBlank(bisInsNtfctn.getCopyOrgId())) { if (bisInsNtfctn.getCopyOrgId().contains(SplitValue.DOUHAO_SPLIT)) { String[] split = bisInsNtfctn.getCopyOrgId().split(SplitValue.DOUHAO_SPLIT); for (String s : split) { BisInspRecvUnit bisInspRecvUnit = new BisInspRecvUnit(); bisInspRecvUnit.setId(UuidUtil.uuid()); bisInspRecvUnit.setOrgId(s); bisInspRecvUnit.setFlagChk("0"); bisInspRecvUnit.setRecvType("COPY"); bisInspRecvUnit.setNtfctnId(uuid); bisInspRecvUnit.setFlagValid(SplitValue.Flag_Valid); bisInspRecvUnitDao.insert(bisInspRecvUnit); } } else { BisInspRecvUnit bisInspRecvUnit = new BisInspRecvUnit(); bisInspRecvUnit.setId(UuidUtil.uuid()); bisInspRecvUnit.setOrgId(bisInsNtfctn.getCopyOrgId()); bisInspRecvUnit.setFlagChk("0"); bisInspRecvUnit.setRecvType("COPY"); bisInspRecvUnit.setNtfctnId(uuid); bisInspRecvUnit.setFlagValid("1"); bisInspRecvUnitDao.insert(bisInspRecvUnit); } } return bisInsNtfctn; } @Override public List queryNtfctn(BisInsNtfctnParam bisInsNtfctnParam) { List bisInsNtfctnDtoList = bisInsNtfctnDao.queryNtfctn(bisInsNtfctnParam); if (bisInsNtfctnDtoList.size() > 0) { //获取接收单位 for (BisInsNtfctnDto bisInsNtfctnDto : bisInsNtfctnDtoList) { List bisInspRecvUnitList = bisInspRecvUnitDao.findListByNtfctnId(bisInsNtfctnDto.getId(),bisInsNtfctnParam.getOrgId()); bisInsNtfctnDto.setBisInspRecvUnitList(bisInspRecvUnitList); List gwComFileList = gwComFileDao.findFileByBiz(bisInsNtfctnDto.getId()); bisInsNtfctnDto.setGwComFileList(gwComFileList); } } return bisInsNtfctnDtoList; } @Override public int updateNtfctnAndRecv(BisInsNtfctn bisInsNtfctn) { this.bisInsNtfctnDao.update(bisInsNtfctn); bisInsNtfctn = bisInsNtfctnDao.get(bisInsNtfctn.getId()); String groupId = bisInsNtfctn.getInspType(); String year = String.valueOf(bisInsNtfctn.getPlanYr()); if(SplitValue.Flag_Valid.equals(bisInsNtfctn.getSendState())){ String orgIds = "027,029,041,042"; this.setGroupAndSysUsers(groupId,year,orgIds); } if (StringUtils.isBlank(bisInsNtfctn.getRecvOrgId())) { String recvUnit = bisInspRecvUnitDao.getRecvUnit("RECV",bisInsNtfctn.getId()); bisInsNtfctn.setRecvOrgId(recvUnit); } if (StringUtils.isBlank(bisInsNtfctn.getCopyOrgId())) { String recvUnit = bisInspRecvUnitDao.getRecvUnit("COPY",bisInsNtfctn.getId()); bisInsNtfctn.setCopyOrgId(recvUnit); } if (StringUtils.isNotBlank(bisInsNtfctn.getRecvOrgId())) { BisInspRecvUnitParam bisInspRecvUnitParam = new BisInspRecvUnitParam(); bisInspRecvUnitParam.setNtfctnId(bisInsNtfctn.getId()); bisInspRecvUnitParam.setRecvType("RECV"); this.bisInspRecvUnitDao.deleteBy(bisInspRecvUnitParam); if (bisInsNtfctn.getRecvOrgId().contains(",")) { String[] split = bisInsNtfctn.getRecvOrgId().split(","); for (String s : split) { BisInspRecvUnit bisInspRecvUnit = new BisInspRecvUnit(); bisInspRecvUnit.setId(UuidUtil.uuid()); bisInspRecvUnit.setOrgId(s); bisInspRecvUnit.setFlagChk("0"); bisInspRecvUnit.setRecvType("RECV"); bisInspRecvUnit.setNtfctnId(bisInsNtfctn.getId()); bisInspRecvUnit.setFlagValid(SplitValue.Flag_Valid); bisInspRecvUnitDao.insert(bisInspRecvUnit); groupId = bisInsNtfctn.getInspType() + s; String orgIds = s; this.setGroupAndSysUsers(groupId,year,orgIds); } } else { BisInspRecvUnit bisInspRecvUnit = new BisInspRecvUnit(); bisInspRecvUnit.setId(UuidUtil.uuid()); bisInspRecvUnit.setOrgId(bisInsNtfctn.getRecvOrgId()); bisInspRecvUnit.setFlagChk("0"); bisInspRecvUnit.setRecvType("RECV"); bisInspRecvUnit.setNtfctnId(bisInsNtfctn.getId()); bisInspRecvUnit.setFlagValid(SplitValue.Flag_Valid); bisInspRecvUnitDao.insert(bisInspRecvUnit); groupId = bisInsNtfctn.getInspType() + bisInsNtfctn.getRecvOrgId(); String orgIds = bisInsNtfctn.getRecvOrgId(); this.setGroupAndSysUsers(groupId,year,orgIds); } } if (StringUtils.isNotBlank(bisInsNtfctn.getCopyOrgId())) { BisInspRecvUnitParam bisInspRecvUnitParam = new BisInspRecvUnitParam(); bisInspRecvUnitParam.setNtfctnId(bisInsNtfctn.getId()); bisInspRecvUnitParam.setRecvType("COPY"); this.bisInspRecvUnitDao.deleteBy(bisInspRecvUnitParam); if (bisInsNtfctn.getCopyOrgId().contains(SplitValue.DOUHAO_SPLIT)) { String[] split = bisInsNtfctn.getCopyOrgId().split(SplitValue.DOUHAO_SPLIT); for (String s : split) { BisInspRecvUnit bisInspRecvUnit = new BisInspRecvUnit(); bisInspRecvUnit.setId(UuidUtil.uuid()); bisInspRecvUnit.setOrgId(s); bisInspRecvUnit.setFlagChk("0"); bisInspRecvUnit.setRecvType("COPY"); bisInspRecvUnit.setNtfctnId(bisInsNtfctn.getId()); bisInspRecvUnit.setFlagValid("1"); bisInspRecvUnitDao.insert(bisInspRecvUnit); } } else { BisInspRecvUnit bisInspRecvUnit = new BisInspRecvUnit(); bisInspRecvUnit.setId(UuidUtil.uuid()); bisInspRecvUnit.setOrgId(bisInsNtfctn.getCopyOrgId()); bisInspRecvUnit.setFlagChk("0"); bisInspRecvUnit.setRecvType("COPY"); bisInspRecvUnit.setNtfctnId(bisInsNtfctn.getId()); bisInspRecvUnit.setFlagValid("1"); bisInspRecvUnitDao.insert(bisInspRecvUnit); } } return 0; } @Override public NtfctnAndDvdwkDto queryNtfctnById(String id, String orgId) { NtfctnAndDvdwkDto ntfctnAndDvdwkDto = this.bisInsNtfctnDao.getNtfcById(id); BisInspDvdwkParam bisInspDvdwkParam = new BisInspDvdwkParam(); bisInspDvdwkParam.setSchmId(id); //获取工作方案分工 List bisInspDvdwkList = this.bisInspDvdwkDao.findList(bisInspDvdwkParam); if(bisInspDvdwkList.size()>0) { ntfctnAndDvdwkDto.setBisInspDvdwkList(bisInspDvdwkList); } //获取接收单位 List bisInspRecvUnitList = bisInspRecvUnitDao.findListByNtfctnId(id,orgId); if(bisInspRecvUnitList.size()>0){ ntfctnAndDvdwkDto.setBisInspRecvUnitList(bisInspRecvUnitList); } List gwComFileList = gwComFileDao.findFileByBiz(id); if(gwComFileList.size()>0) { ntfctnAndDvdwkDto.setGwComFileList(gwComFileList); } return ntfctnAndDvdwkDto; } @Override public PageInfo queryNtfctnAndDvdwk(BisInsNtfctnParam bisInsNtfctnParam) { PageHelper.startPage(bisInsNtfctnParam); List list = this.bisInsNtfctnDao.queryNtfctnAndDvdwk(bisInsNtfctnParam); PageInfo pageInfo = new PageInfo(list); return pageInfo; } public void setGroupAndSysUsers(String groupId,String year, String orgIds){ BisInspAll bisInspAll = bisInspAllDao.get(groupId); if(bisInspAll==null){ bisInspAll = new BisInspAll(); if(groupId.length()==3){ bisInspAll.setId(groupId); bisInspAll.setPid("0"); AttInspType attInspType = attInspTypeDao.get(groupId); bisInspAll.setPnm(attInspType.getName()); bisInspAll.setInspYear(year); bisInspAllDao.insert(bisInspAll); }else if(groupId.length()==6){ if(orgIds.contains(SplitValue.DOUHAO_SPLIT)){ String[] orgIdList = orgIds.split(SplitValue.DOUHAO_SPLIT); for (String orgId:orgIdList) { BisInspOrg bisInspOrg = bisInspOrgDao.get(orgId); bisInspAll = new BisInspAll(); bisInspAll.setId(groupId); bisInspAll.setPid("0"); if(bisInspOrg!=null){ bisInspAll.setPnm(bisInspOrg.getOrgNm()); } bisInspAll.setInspYear(year); bisInspAllDao.insert(bisInspAll); } }else { BisInspOrg bisInspOrg = bisInspOrgDao.get(orgIds); bisInspAll = new BisInspAll(); bisInspAll.setId(groupId); bisInspAll.setPid("0"); if(bisInspOrg!=null){ bisInspAll.setPnm(bisInspOrg.getOrgNm()); } bisInspAll.setInspYear(year); bisInspAllDao.insert(bisInspAll); } } } Map bisInspAllRlationPersParam = new HashMap<>(10); bisInspAllRlationPersParam.put("orgIds",orgIds); bisInspAllRlationPersParam.put("persTypes","1,2"); List> list = bisInspAllRlationPersDao.getSysUsers(bisInspAllRlationPersParam); for (Map pers:list) { String persId = String.valueOf(pers.get("GUID")); String orgId=String.valueOf(pers.get("ORG_ID")); //查询是否已经建立关系 String adCode=olBisInspOrgService.getProvince(orgId); BisInspAllRlation bisInspAllRlation = bisInspAllRlationPersDao.getRelationData(persId, groupId,orgId,adCode); if (bisInspAllRlation == null) { String type=Integer.parseInt(groupId.substring(0,3))+""; bisInspAllRlationPersDao.insertRelation(persId, groupId,orgId,adCode,type); } } } }