@ -41,17 +41,13 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.security.user.LoginUserUtil ;
import com.epmet.commons.tools.utils.* ;
import com.epmet.constant.* ;
import com.epmet.dao.ProjectDao ;
import com.epmet.dao.ProjectOrgRelationDao ;
import com.epmet.dao.ProjectSatisfactionDetailDao ;
import com.epmet.dao.ProjectSatisfactionStatisticsDao ;
import com.epmet.dao.* ;
import com.epmet.dto.* ;
import com.epmet.dto.form.* ;
import com.epmet.dto.result.* ;
import com.epmet.entity.* ;
import com.epmet.excel.ProjectListExportExcel ;
import com.epmet.feign.* ;
import com.epmet.redis.ProjectRedis ;
import com.epmet.resi.group.constant.TopicConstant ;
import com.epmet.resi.group.dto.topic.ResiTopicDTO ;
import com.epmet.resi.group.dto.topic.form.TopicAttachmentFormDTO ;
@ -158,6 +154,8 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
private ProjectSatisfactionDetailDao satisfactionDetailDao ;
@Autowired
private IcEventService icEventService ;
@Autowired
private ProjectStaffDao projectStaffDao ;
private final static String ONE_DAY = "<1" ;
@ -496,6 +494,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
}
//结案记录加入项目进展表
CustomerStaffInfoCacheResult staffInfo = getStaffInfo ( fromDTO . getCustomerId ( ) , fromDTO . getUserId ( ) ) ;
ProjectProcessEntity projectProcessEntity = new ProjectProcessEntity ( ) ;
projectProcessEntity . setProjectId ( fromDTO . getProjectId ( ) ) ;
projectProcessEntity . setCustomerId ( operatorProjectReference . getCustomerId ( ) ) ;
@ -513,6 +512,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
ProjectDTO projectDto = ConvertUtils . sourceToTarget ( projectEntity , ProjectDTO . class ) ;
projectDto . setUpdatedTime ( projectDto . getCreatedTime ( ) ) ;
projectProcessEntity . setCostWorkdays ( getDetentionDays ( projectDto ) ) ;
projectProcessEntity . setStaffName ( staffInfo . getRealName ( ) ) ;
projectProcessService . insert ( projectProcessEntity ) ;
ProjectOrgRelationEntity orientRelation = relationDao . selectByProjectStaffId ( operatorProjectReference . getId ( ) ) ;
@ -698,7 +698,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
log . error ( "com.epmet.service.impl.ProjectServiceImpl.closed,找不到结案工作人员的相关记录,参数:{}" , JSON . toJSONString ( fromDTO ) ) ;
throw new RenException ( "找不到结案工作人员的相关记录" ) ;
}
CustomerStaffInfoCacheResult staffInfo = getStaffInfo ( fromDTO . getCustomerId ( ) , fromDTO . getUserId ( ) ) ;
//结案记录加入项目进展表
ProjectProcessEntity projectProcessEntity = new ProjectProcessEntity ( ) ;
projectProcessEntity . setProjectId ( fromDTO . getProjectId ( ) ) ;
@ -719,6 +719,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
projectProcessEntity . setCostWorkdays ( getDetentionDays ( projectDto ) ) ;
projectProcessEntity . setAssistanceUnitType ( fromDTO . getAssistanceUnitType ( ) ) ;
projectProcessEntity . setAssistanceUnitId ( fromDTO . getAssistanceUnitId ( ) ) ;
projectProcessEntity . setStaffName ( staffInfo . getRealName ( ) ) ;
projectProcessService . insert ( projectProcessEntity ) ;
//保存附件
@ -912,6 +913,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
//结案记录加入项目进展表
CustomerStaffInfoCacheResult staffInfo = getStaffInfo ( sourceProjectStaff . getCustomerId ( ) , fromDTO . getUserId ( ) ) ;
ProjectProcessEntity projectProcessEntity = new ProjectProcessEntity ( ) ;
projectProcessEntity . setProjectId ( fromDTO . getProjectId ( ) ) ;
projectProcessEntity . setCustomerId ( sourceProjectStaff . getCustomerId ( ) ) ;
@ -925,6 +927,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
projectProcessEntity . setPublicReply ( fromDTO . getPublicReply ( ) ) ;
projectProcessEntity . setInternalRemark ( fromDTO . getInternalRemark ( ) ) ;
projectProcessEntity . setStaffId ( fromDTO . getUserId ( ) ) ;
projectProcessEntity . setStaffName ( staffInfo . getRealName ( ) ) ;
projectProcessService . insert ( projectProcessEntity ) ;
//将人员关系添加到项目关联表
@ -1187,6 +1190,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
baseDao . insert ( projectEntity ) ;
//3:项目处理进展表新增数据
CustomerStaffInfoCacheResult staffInfo = getStaffInfo ( issueDTO . getCustomerId ( ) , formDTO . getStaffId ( ) ) ;
ProjectProcessEntity processEntity = new ProjectProcessEntity ( ) ;
processEntity . setProjectId ( projectEntity . getId ( ) ) ;
processEntity . setCustomerId ( issueDTO . getCustomerId ( ) ) ;
@ -1197,6 +1201,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
processEntity . setInternalRemark ( formDTO . getInternalRemark ( ) ) ;
processEntity . setAssistanceUnitId ( formDTO . getAssistanceUnitId ( ) ) ;
processEntity . setAssistanceUnitType ( formDTO . getAssistanceUnitType ( ) ) ;
processEntity . setStaffName ( staffInfo . getRealName ( ) ) ;
agencyDeptGrid . getAgencyList ( ) . forEach ( agency - > {
if ( issueDTO . getOrgId ( ) . equals ( agency . getId ( ) ) ) {
processEntity . setDepartmentName ( agency . getOrganizationName ( ) ) ;
@ -1403,6 +1408,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
}
//处理响应记录加入项目进展表
CustomerStaffInfoCacheResult staffInfo = getStaffInfo ( projectStaff . getCustomerId ( ) , formDTO . getUserId ( ) ) ;
ProjectProcessEntity projectProcessEntity = new ProjectProcessEntity ( ) ;
projectProcessEntity . setProjectId ( formDTO . getProjectId ( ) ) ;
projectProcessEntity . setCustomerId ( projectStaff . getCustomerId ( ) ) ;
@ -1416,6 +1422,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
projectProcessEntity . setPublicReply ( formDTO . getPublicReply ( ) ) ;
projectProcessEntity . setInternalRemark ( formDTO . getInternalRemark ( ) ) ;
projectProcessEntity . setStaffId ( formDTO . getUserId ( ) ) ;
projectProcessEntity . setStaffName ( staffInfo . getRealName ( ) ) ;
projectProcessService . insert ( projectProcessEntity ) ;
//项目节点历时
@ -2115,6 +2122,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
//结案记录加入项目进展表
CustomerStaffInfoCacheResult staffInfo = getStaffInfo ( sourceProjectStaff . getCustomerId ( ) , fromDTO . getUserId ( ) ) ;
ProjectProcessEntity projectProcessEntity = new ProjectProcessEntity ( ) ;
projectProcessEntity . setProjectId ( fromDTO . getProjectId ( ) ) ;
projectProcessEntity . setCustomerId ( sourceProjectStaff . getCustomerId ( ) ) ;
@ -2128,6 +2136,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
projectProcessEntity . setPublicReply ( fromDTO . getPublicReply ( ) ) ;
projectProcessEntity . setInternalRemark ( fromDTO . getInternalRemark ( ) ) ;
projectProcessEntity . setStaffId ( fromDTO . getUserId ( ) ) ;
projectProcessEntity . setStaffName ( staffInfo . getRealName ( ) ) ;
projectProcessService . insert ( projectProcessEntity ) ;
//项目附件表新增数据 sun 2020.12.22
@ -2294,6 +2303,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
}
//处理响应记录加入项目进展表
CustomerStaffInfoCacheResult staffInfo = getStaffInfo ( projectStaff . getCustomerId ( ) , formDTO . getUserId ( ) ) ;
ProjectProcessEntity projectProcessEntity = new ProjectProcessEntity ( ) ;
projectProcessEntity . setProjectId ( formDTO . getProjectId ( ) ) ;
projectProcessEntity . setCustomerId ( projectStaff . getCustomerId ( ) ) ;
@ -2309,6 +2319,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
projectProcessEntity . setStaffId ( formDTO . getUserId ( ) ) ;
projectProcessEntity . setAssistanceUnitId ( formDTO . getAssistanceUnitId ( ) ) ;
projectProcessEntity . setAssistanceUnitType ( formDTO . getAssistanceUnitType ( ) ) ;
projectProcessEntity . setStaffName ( staffInfo . getRealName ( ) ) ;
projectProcessService . insert ( projectProcessEntity ) ;
//项目附件表新增数据 sun 2020.12.22
@ -2429,6 +2440,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
}
ProjectStaffDTO projectStaff = projectStaffService . get ( formDTO . getProjectStaffId ( ) ) ;
//处理响应记录加入项目进展表
CustomerStaffInfoCacheResult staff = getStaffInfo ( projectStaff . getCustomerId ( ) , formDTO . getUserId ( ) ) ;
ProjectProcessEntity projectProcessEntity = new ProjectProcessEntity ( ) ;
projectProcessEntity . setProjectId ( formDTO . getProjectId ( ) ) ;
projectProcessEntity . setCustomerId ( projectStaff . getCustomerId ( ) ) ;
@ -2443,6 +2455,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
projectProcessEntity . setInternalRemark ( formDTO . getInternalRemark ( ) ) ;
projectProcessEntity . setStaffId ( formDTO . getUserId ( ) ) ;
projectProcessEntity . setIsSend ( NumConstant . ONE ) ;
projectProcessEntity . setStaffName ( staff . getRealName ( ) ) ;
projectProcessService . insert ( projectProcessEntity ) ;
//项目附件表新增数据 sun 2020.12.22
@ -3454,4 +3467,100 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
return projectList ;
}
private CustomerStaffInfoCacheResult getStaffInfo ( String customerId , String staffId ) {
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis . getStaffInfo ( customerId , staffId ) ;
if ( null = = staffInfo ) {
throw new EpmetException ( EpmetErrorCode . EPMET_COMMON_OPERATION_FAIL . getCode ( ) , "获取用户信息失败" , "获取用户信息失败" ) ;
}
return staffInfo ;
}
@Override
public PageData < OrgProjectListResultDTO > orgProjectList ( OrgProjectListFormDTO formDTO ) {
//1.整理查询条件
if ( StringUtils . isEmpty ( formDTO . getOrgType ( ) ) ) {
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis . getStaffInfo ( formDTO . getCustomerId ( ) , formDTO . getUserId ( ) ) ;
if ( null = = staffInfo ) {
throw new EpmetException ( "获取工作人员信息失败" ) ;
}
formDTO . setOrgId ( staffInfo . getAgencyId ( ) ) ;
formDTO . setOrgType ( "agency" ) ;
}
if ( StringUtils . isNoneBlank ( formDTO . getMobile ( ) ) ) {
//有手机号筛选条件的选按手机号查找工作人员,在按staffId查项目
GetByRealNamesFormDTO dto = new GetByRealNamesFormDTO ( ) ;
dto . setCustomerId ( formDTO . getCustomerId ( ) ) ;
dto . setMobile ( formDTO . getMobile ( ) ) ;
Result < List < CustomerStaffDTO > > staffResult = epmetUserOpenFeignClient . getByRealNames ( dto ) ;
if ( ! staffResult . success ( ) ) {
throw new RenException ( "获取工作人员基础信息失败......" ) ;
}
if ( null ! = staffResult . getData ( ) & & staffResult . getData ( ) . size ( ) > NumConstant . ZERO ) {
List < String > staffIds = staffResult . getData ( ) . stream ( ) . map ( CustomerStaffDTO : : getUserId ) . collect ( Collectors . toList ( ) ) ;
formDTO . setStaffIds ( staffIds ) ;
}
}
//2.按条件筛选数据 列表/导出查询
PageHelper . startPage ( formDTO . getPageNo ( ) , formDTO . getPageSize ( ) , formDTO . getIsPage ( ) ) ;
List < OrgProjectListResultDTO > list = baseDao . orgProjectList ( formDTO ) ;
PageInfo < OrgProjectListResultDTO > pageInfo = new PageInfo < > ( list ) ;
if ( list . size ( ) < NumConstant . ONE ) {
return new PageData < > ( list , pageInfo . getTotal ( ) ) ;
}
//3.封装数据
//3-1.查询分类信息
IssueProjectCategoryDictListFormDTO dictFormDto = new IssueProjectCategoryDictListFormDTO ( ) ;
dictFormDto . setCustomerId ( formDTO . getCustomerId ( ) ) ;
Result < List < IssueProjectCategoryDictDTO > > categoryRes = govIssueOpenFeignClient . getCategoryList ( dictFormDto ) ;
if ( ! categoryRes . success ( ) | | org . springframework . util . CollectionUtils . isEmpty ( categoryRes . getData ( ) ) ) {
throw new EpmetException ( EpmetErrorCode . EPMET_COMMON_OPERATION_FAIL . getCode ( ) , "获取项目分类名称异常" ) ;
}
Map < String , String > categoryMap = categoryRes . getData ( ) . stream ( ) . collect ( Collectors . toMap ( IssueProjectCategoryDictDTO : : getId , IssueProjectCategoryDictDTO : : getCategoryName ) ) ;
//3-2.封装数据
for ( OrgProjectListResultDTO dto : list ) {
//分类名称
dto . setFirstName ( categoryMap . get ( dto . getFirstId ( ) ) ) ;
dto . setSecondName ( categoryMap . get ( dto . getSecondId ( ) ) ) ;
try {
//工作人员基础信息
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis . getStaffInfo ( formDTO . getCustomerId ( ) , dto . getStaffId ( ) ) ;
if ( null ! = staffInfo ) {
dto . setStaffName ( staffInfo . getRealName ( ) ) ;
dto . setMobile ( staffInfo . getMobile ( ) ) ;
}
//拼接网格名
if ( StringUtils . isNoneBlank ( dto . getGridId ( ) ) ) {
GridInfoCache gridInfo = CustomerOrgRedis . getGridInfo ( dto . getGridId ( ) ) ;
if ( null ! = gridInfo ) {
dto . setGridName ( ( StringUtils . isEmpty ( gridInfo . getAllParentName ( ) ) ? "" : gridInfo . getAllParentName ( ) + "-" ) + gridInfo . getGridNamePath ( ) ) ;
}
} else {
AgencyInfoCache agencyInfo = CustomerOrgRedis . getAgencyInfo ( dto . getAgencyId ( ) ) ;
if ( null ! = agencyInfo ) {
dto . setGridName ( ( StringUtils . isEmpty ( agencyInfo . getAllParentName ( ) ) ? "" : agencyInfo . getAllParentName ( ) + "-" ) + agencyInfo . getOrganizationName ( ) ) ;
}
}
} catch ( Exception e ) {
log . warn ( "获取组织/网格缓存失败" ) ;
}
//图片url拼接
if ( ! org . springframework . util . CollectionUtils . isEmpty ( dto . getUrlList ( ) ) ) {
String imageUrl = StringUtils . join ( dto . getUrlList ( ) . stream ( ) . map ( FileDTO : : getUrl ) . collect ( Collectors . toList ( ) ) , " <br/> " ) ;
dto . setImageUrl ( imageUrl ) ;
}
//判断未结案项目是否涉及需要当前工作人员处理[列表查询需要,导出的不需要这段逻辑]
if ( formDTO . getIsPage ( ) & & "pending" . equals ( dto . getStatusValue ( ) ) ) {
//查询当前工作人员是否存在当前项目的未处理节点
ProjectStaffDTO projectStaff = projectStaffDao . selectLatestByProjectIdAndStaffId ( dto . getProjectId ( ) , formDTO . getUserId ( ) ) ;
if ( null ! = projectStaff ) {
dto . setProcessable ( true ) ;
}
}
}
return new PageData < > ( list , pageInfo . getTotal ( ) ) ;
}
}