|
|
@ -21,32 +21,37 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|
|
|
import com.epmet.commons.tools.constant.FieldConstant; |
|
|
|
import com.epmet.commons.tools.constant.NumConstant; |
|
|
|
import com.epmet.commons.tools.exception.RenException; |
|
|
|
import com.epmet.commons.tools.page.PageData; |
|
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
|
import com.epmet.commons.tools.utils.Result; |
|
|
|
import com.epmet.constant.ProjectConstant; |
|
|
|
import com.epmet.dao.ProjectProcessDao; |
|
|
|
import com.epmet.dao.ProjectStaffDao; |
|
|
|
import com.epmet.dto.CustomerAgencyDTO; |
|
|
|
import com.epmet.dto.ProjectProcessDTO; |
|
|
|
import com.epmet.dto.form.ProcessListFormDTO; |
|
|
|
import com.epmet.dto.form.ReturnListFromDTO; |
|
|
|
import com.epmet.dto.form.StaffsInAgencyFromDTO; |
|
|
|
import com.epmet.dto.form.*; |
|
|
|
import com.epmet.dto.result.AgencyDeptGridResultDTO; |
|
|
|
import com.epmet.dto.result.ProcesslistResultDTO; |
|
|
|
import com.epmet.dto.result.ReturnListResultDTO; |
|
|
|
import com.epmet.dto.result.StaffInfoResultDTO; |
|
|
|
import com.epmet.entity.ProjectEntity; |
|
|
|
import com.epmet.entity.ProjectProcessEntity; |
|
|
|
import com.epmet.entity.ProjectStaffEntity; |
|
|
|
import com.epmet.feign.EpmetUserFeignClient; |
|
|
|
import com.epmet.feign.GovOrgFeignClient; |
|
|
|
import com.epmet.redis.ProjectProcessRedis; |
|
|
|
import com.epmet.service.ProjectProcessService; |
|
|
|
import com.epmet.service.ProjectService; |
|
|
|
import com.epmet.service.ProjectStaffService; |
|
|
|
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.*; |
|
|
|
import java.util.concurrent.atomic.AtomicReference; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
@ -68,6 +73,10 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao |
|
|
|
private EpmetUserFeignClient epmetUserFeignClient; |
|
|
|
@Autowired |
|
|
|
private ProjectService projectService; |
|
|
|
@Autowired |
|
|
|
private ProjectProcessDao projectProcessDao; |
|
|
|
@Autowired |
|
|
|
private ProjectStaffService projectStaffService; |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageData<ProjectProcessDTO> page(Map<String, Object> params) { |
|
|
@ -158,4 +167,82 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao |
|
|
|
return resultList; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @param formDTO |
|
|
|
* @return |
|
|
|
* @Author sun |
|
|
|
* @Description 项目跟踪-转其他部门 |
|
|
|
**/ |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void transfer(TransferFormDTO formDTO) { |
|
|
|
//1:更新项目人员关联表数据状态为已处理
|
|
|
|
ProjectStaffEntity staffEntity = projectStaffDao.selectById(formDTO.getProjectStaffId()); |
|
|
|
if (null == staffEntity) { |
|
|
|
throw new RenException(ProjectConstant.SELECT_PROJECTSTAFF_EXCEPTION); |
|
|
|
} |
|
|
|
staffEntity.setId(formDTO.getProjectStaffId()); |
|
|
|
staffEntity.setIsHandle(ProjectConstant.HANDLE); |
|
|
|
if (projectStaffDao.updateById(staffEntity) < NumConstant.ONE) { |
|
|
|
throw new RenException(ProjectConstant.UPDATE_PROJECTSTAFF_EXCEPTION); |
|
|
|
} |
|
|
|
//2:项目处理进展列表新增数据
|
|
|
|
ProjectProcessEntity processEntity = ConvertUtils.sourceToTarget(formDTO, ProjectProcessEntity.class); |
|
|
|
processEntity.setDepartmentName(staffEntity.getDepartmentName()); |
|
|
|
processEntity.setStaffId(staffEntity.getStaffId()); |
|
|
|
processEntity.setOperation(ProjectConstant.OPERATION_TRANSFER); |
|
|
|
processEntity.setOperationName(ProjectConstant.OPERATION_TRANSFER_NAME); |
|
|
|
projectProcessDao.insert(processEntity); |
|
|
|
//3:项目人员关联表新增部门流转数据
|
|
|
|
List<TickStaffFormDTO> staffList = formDTO.getStaffList(); |
|
|
|
if (null == staffList || staffList.size() < NumConstant.ONE) { |
|
|
|
throw new RenException(ProjectConstant.DATe_EXCEPTION); |
|
|
|
} |
|
|
|
//3.1:调用gov-org服务,获取所有勾选人员对应的组织信息、部门信息、网格信息用于对处理部门和ORG_ID_PATH字段的赋值
|
|
|
|
List<String> agencyIdList = staffList.stream().map(TickStaffFormDTO::getAgencyId).collect(Collectors.toList()); |
|
|
|
agencyIdList = new ArrayList<String>(new LinkedHashSet<>(agencyIdList)); |
|
|
|
List<String> deptIdList = staffList.stream().map(TickStaffFormDTO::getDepartmentId).collect(Collectors.toList()); |
|
|
|
deptIdList = new ArrayList<String>(new LinkedHashSet<>(deptIdList)); |
|
|
|
List<String> gridIdList = staffList.stream().map(TickStaffFormDTO::getGridId).collect(Collectors.toList()); |
|
|
|
gridIdList = new ArrayList<String>(new LinkedHashSet<>(gridIdList)); |
|
|
|
AgencyDeptGridFormDTO agencyDeptGridFormDTO = new AgencyDeptGridFormDTO(); |
|
|
|
agencyDeptGridFormDTO.setAgencyIdList(agencyIdList); |
|
|
|
agencyDeptGridFormDTO.setDeptIdList(deptIdList); |
|
|
|
agencyDeptGridFormDTO.setGridIdList(gridIdList); |
|
|
|
Result<AgencyDeptGridResultDTO> resultDTO = govOrgFeignClient.getAgencyDeptGridList(agencyDeptGridFormDTO); |
|
|
|
AgencyDeptGridResultDTO agencyDeptGrid = resultDTO.getData(); |
|
|
|
//3.2:批量新增项目人员关联表数据
|
|
|
|
List<ProjectStaffEntity> entityList = new ArrayList<>(); |
|
|
|
staffList.forEach(ts->{ |
|
|
|
ProjectStaffEntity entity = ConvertUtils.sourceToTarget(ts, ProjectStaffEntity.class); |
|
|
|
entity.setOrgId(ts.getAgencyId()); |
|
|
|
entity.setProjectId(formDTO.getProjectId()); |
|
|
|
entity.setProcessId(processEntity.getId()); |
|
|
|
entity.setIsHandle(ProjectConstant.UNHANDLED); |
|
|
|
agencyDeptGrid.getAgencyList().forEach(agency->{ |
|
|
|
if (ts.getAgencyId().equals(agency.getId())) { |
|
|
|
entity.setCustomerId(agency.getCustomerId()); |
|
|
|
entity.setOrgIdPath(agency.getPids()+":"+agency.getId()); |
|
|
|
entity.setDepartmentName(agency.getOrganizationName()); |
|
|
|
} |
|
|
|
}); |
|
|
|
if (StringUtils.isNotBlank(ts.getDepartmentId())) { |
|
|
|
agencyDeptGrid.getDeptList().forEach(dept -> { |
|
|
|
if (ts.getDepartmentId().equals(dept.getId())) { |
|
|
|
entity.setDepartmentName(entity.getDepartmentName() + "-" + dept.getDepartmentName()); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(ts.getGridId())) { |
|
|
|
agencyDeptGrid.getGridList().forEach(grid -> { |
|
|
|
if (ts.getGridId().equals(grid.getId())) { |
|
|
|
entity.setDepartmentName(entity.getDepartmentName() + "-" + grid.getGridName()); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
entityList.add(entity); |
|
|
|
}); |
|
|
|
projectStaffService.insertBatch(entityList); |
|
|
|
} |
|
|
|
|
|
|
|
} |