@ -24,6 +24,7 @@ import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.commons.tools.constant.FieldConstant ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.commons.tools.constant.NumConstant ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.commons.tools.convert.DateConverter ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.commons.tools.enums.InterfaceLogBusinessTypeEnum ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.commons.tools.exception.RenException ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -44,15 +45,20 @@ import com.elink.esua.epdc.constant.*; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.constants.MenuCodeConstant ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.dto.* ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.dto.events.BatchHandleImagesDTO ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.dto.events.EventRelationshipIdDTO ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.dto.events.form.GroupFormDTO ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.dto.events.result.EventAppDetailResultDTO ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.dto.form.SmsNoticeFormDTO ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.dto.issue.result.EditProgressResultDTO ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.dto.issue.result.IssueProgressResultDTO ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.dto.item.* ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.dto.item.form.* ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.dto.item.result.* ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.enums.ItemGridPlatformHandleStatusEnum ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.enums.ItemHandleCategoryEnum ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.constant.ProcessProgressConstant ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.gird.shibei.api.ShiBeiCityGridApi ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.gird.shibei.constant.CommonConstants ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.gird.shibei.contants.ApiConstants ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -66,6 +72,7 @@ import com.elink.esua.epdc.gird.shibei.util.XstreamUtil; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.async.IssueOverseeResultsTask ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.async.NewsTask ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.events.dao.ImgDao ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.events.entity.EpdcEventsEntity ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.events.entity.ImgEntity ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.events.service.EpdcEventsService ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.events.service.ImgService ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -74,6 +81,9 @@ import com.elink.esua.epdc.modules.feign.ContentSecurityFeignClient; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.feign.UserFeignClient ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.interfacelog.entity.InterfaceLogEntity ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.interfacelog.service.InterfaceLogService ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.issue.entity.IssueEntity ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.issue.entity.IssueHandleEntity ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.issue.service.IssueHandleService ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.issue.service.IssueService ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.item.dao.GridPlatformHandleLogDao ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  com.elink.esua.epdc.modules.item.dao.ItemDao ;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -168,6 +178,9 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    @Autowired  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    private  ContentSecurityFeignClient  contentSecurityFeign ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    @Autowired  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    private  IssueHandleService  issueHandleService ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    @Override  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    public  PageData < ItemDTO >  page ( Map < String ,  Object >  params )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        IPage < ItemEntity >  page  =  baseDao . selectPage (  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -1592,4 +1605,208 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        return  new  Result ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    @Override  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    public  List < EditProgressResultDTO >  getProcessProgress ( String  id )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        // 获取项目基本信息
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        ItemEntity  entity  =  this . selectById ( id ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        // 获取项目处理进度
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        List < EditProgressResultDTO >  result  =  baseDao . selectListOfEditItemHandleProgressByWork ( id ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        // 项目处理表中第一条数据(创建时间,升序),为 议题转项目
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        this . firstDataHandleType ( result ,  ProcessProgressConstant . ISSUE_PROJECT ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        // 获取项目评价满意度
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        if  ( null  ! =  entity . getEvaluationTime ( ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            EditProgressResultDTO  itemEvaluation  =  this . packageItemEvaluation ( entity ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            // PC 前端,el-rate 组件,是从1开始计数。所以这里 +1 方便显示。
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            itemEvaluation . setEvaluationScore ( itemEvaluation . getEvaluationScore ( )  +  NumConstant . ONE ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            result . add ( itemEvaluation ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            result . sort ( Comparator . comparing ( EditProgressResultDTO : : getCreatedTime ) . reversed ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        // 获取议题处理进度
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        List < EditProgressResultDTO >  issueList  =  issueService . listEditIssueProgress ( entity . getIssueId ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        // 议题处理表中第一条数据(创建时间,升序),为 事件审核通过,即转议题
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        this . firstDataHandleType ( issueList ,  ProcessProgressConstant . EVENT_ISSUE ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . addAll ( issueList ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        // 事件信息
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        EditProgressResultDTO  eventInfo  =  this . packageEventInfo ( entity . getEventId ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . add ( eventInfo ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        return  result ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    private  EditProgressResultDTO  packageItemEvaluation ( ItemEntity  entity )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        EditProgressResultDTO  result  =  new  EditProgressResultDTO ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . setHandleType ( ProcessProgressConstant . PROJECT_EVALUATION ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . setCreatedTime ( entity . getEvaluationTime ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . setAdvice ( entity . getEvaluationContent ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . setEvaluationScore ( entity . getEvaluationScore ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . setState ( entity . getItemState ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        return  result ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    private  void  firstDataHandleType ( List < EditProgressResultDTO >  list ,  String  typeName )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        for  ( int  i  =  NumConstant . ZERO ;  i  <  list . size ( ) ;  i + + )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            if  ( i  = =  list . size ( )  -  NumConstant . ONE  )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                list . get ( i ) . setHandleType ( typeName ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / * *  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     *  组装事件信息  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     *  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     *  @param  eventId  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     *  @return  com . elink . esua . epdc . dto . issue . result . EditProgressResultDTO  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     *  @Author  zhangyong  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     *  @Date  17 : 09  2022 - 01 - 10  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     * * /  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    private  EditProgressResultDTO  packageEventInfo ( String  eventId )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        EditProgressResultDTO  result  =  new  EditProgressResultDTO ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        Result < EventAppDetailResultDTO >  event  =  issueService . getEventDetail ( eventId ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        DateConverter  converter  =  new  DateConverter ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . setCreatedTime ( converter . parseDate ( event . getData ( ) . getDistributeTime ( ) ,  DateUtils . DATE_TIME_PATTERN ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . setAdvice ( event . getData ( ) . getAdvice ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . setEventContent ( event . getData ( ) . getContent ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . setHandleType ( ProcessProgressConstant . EVENT ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . setEventId ( eventId ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        return  result ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / * *  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     *  组装要新增的图片信息  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     *  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     *  @param  referenceId ,  imgType ,  images  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     *  @return  com . elink . esua . epdc . dto . events . BatchHandleImagesDTO  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     *  @Author  zhangyong  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     *  @Date  15 : 41  2022 - 01 - 12  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     * * /  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    private  BatchHandleImagesDTO  packageImagesInfo ( String  referenceId ,  String  imgType ,  List < ImagesDTO >  images )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        BatchHandleImagesDTO  result  =  new  BatchHandleImagesDTO ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . setReferenceId ( referenceId ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . setImgType ( imgType ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        List < String >  urls  =  new  ArrayList < > ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        for  ( ImagesDTO  image  :  images )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            urls . add ( image . getUrl ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        result . setImages ( urls ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        return  result ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    @Override  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    @Transactional ( rollbackFor  =  Exception . class )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    public  Result  editProcessProgressList ( List < EditProgressResultDTO >  formDto )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        if  ( null  = =  formDto  | |  NumConstant . ZERO  = =  formDto . size ( ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            return  new  Result ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        EditProgressResultDTO  projectEvaluation  =  null ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        List < ItemHandleProcessEntity >  itemHandleProcessEntities  =  new  ArrayList < > ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        List < IssueHandleEntity >  issueHandleEntities  =  new  ArrayList < > ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        EpdcEventsEntity  eventEntity  =  new  EpdcEventsEntity ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        // 图片批量处理
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        List < BatchHandleImagesDTO >  batchHandleImages  =  new  ArrayList < > ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        List < ItemDeptEntity >  itemDeptEntities  =  new  ArrayList < > ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        Date  issueToProjectTime  =  null ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        Date  eventToIssueTime  =  null ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        Date  distributeTime  =  null ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        String  eventId  =  "" ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        for  ( EditProgressResultDTO  dto  :  formDto )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            // 0、如果是 项目满意度评价,需要修改 epdc_item 表中评价相关字段
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            if  ( ProcessProgressConstant . PROJECT_EVALUATION . equals ( dto . getHandleType ( ) ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                projectEvaluation  =  dto ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  else  if  ( ProcessProgressConstant . PROJECT . equals ( dto . getHandleType ( ) )  | |  ProcessProgressConstant . ISSUE_PROJECT . equals ( dto . getHandleType ( ) ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                // 1、组装 项目处理进展表 信息
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                ItemHandleProcessEntity  entity  =  new  ItemHandleProcessEntity ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                entity . setCreatedTime ( dto . getCreatedTime ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                entity . setHandleAdvice ( dto . getAdvice ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                entity . setOutHandleAdvice ( dto . getOutAdvice ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                entity . setId ( dto . getId ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                itemHandleProcessEntities . add ( entity ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                if  ( ProcessProgressConstant . ISSUE_PROJECT . equals ( dto . getHandleType ( ) ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    issueToProjectTime  =  dto . getCreatedTime ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                // 组装 项目图片 信息
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                batchHandleImages . add ( this . packageImagesInfo ( dto . getId ( ) ,  ImageConstant . TYPE_IMAGE_ITEM_HANDLE ,  dto . getImages ( ) ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                batchHandleImages . add ( this . packageImagesInfo ( dto . getId ( ) ,  ImageConstant . TYPE_IMAGE_ITEM_OUT_HANDLE ,  dto . getOutImages ( ) ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                // 如果是吹哨,还要处理 项目部门关系表
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                if  ( NumConstant . ZERO  = =  dto . getState ( )  & &  null  ! =  dto . getItemDeptDTOS ( )  & &  dto . getItemDeptDTOS ( ) . size ( )  >  NumConstant . ZERO )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    ItemDeptEntity  itemDeptEntity  =  new  ItemDeptEntity ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    itemDeptEntity . setId ( dto . getItemDeptDTOS ( ) . get ( NumConstant . ZERO ) . getId ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    itemDeptEntity . setCreatedTime ( dto . getCreatedTime ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    itemDeptEntities . add ( ( itemDeptEntity ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  else  if  ( ProcessProgressConstant . ISSUE . equals ( dto . getHandleType ( ) )  | |  ProcessProgressConstant . EVENT_ISSUE . equals ( dto . getHandleType ( ) ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                // 2、组装 议题处理进展 信息
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                IssueHandleEntity  entity  =  new  IssueHandleEntity ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                entity . setCreatedTime ( dto . getCreatedTime ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                entity . setAdvice ( dto . getAdvice ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                entity . setId ( dto . getId ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                issueHandleEntities . add ( entity ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                if  ( ProcessProgressConstant . EVENT_ISSUE . equals ( dto . getHandleType ( ) ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    eventToIssueTime  =  dto . getCreatedTime ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                // 组装 议题图片 信息
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                batchHandleImages . add ( this . packageImagesInfo ( dto . getId ( ) ,  ImageConstant . TYPE_IMAGE_BIZ_ISSUE_HANDLE ,  dto . getImages ( ) ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  else  if  ( ProcessProgressConstant . EVENT . equals ( dto . getHandleType ( ) ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                // 3、组装 事件表 信息
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                eventEntity . setCreatedTime ( dto . getCreatedTime ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                eventEntity . setAdvice ( dto . getAdvice ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                eventEntity . setId ( dto . getEventId ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                distributeTime  =  dto . getCreatedTime ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                eventId  =  dto . getEventId ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        EventRelationshipIdDTO  relationshipId  =  epdcEventsService . getEventRelationshipId ( eventId ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        if  ( null  = =  issueToProjectTime  | |  null  = =  eventToIssueTime  | |  null  = =  distributeTime )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            return  new  Result ( ) . error ( "编辑失败,请联系管理员!" ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        // 4、处理图片
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        imgService . modifyBatchImagesByReferenceIdAndImgType ( batchHandleImages ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        for  ( BatchHandleImagesDTO  insertImage  :  batchHandleImages )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            imgService . saveImages ( insertImage . getImages ( ) ,  insertImage . getReferenceId ( ) ,  insertImage . getImgType ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        // 5、处理项目相关表
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        itemHandleProcessService . updateBatchById ( itemHandleProcessEntities ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        if  ( NumConstant . ZERO  <  itemDeptEntities . size ( ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            itemDeptService . updateBatchById ( itemDeptEntities ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        ItemEntity  itemEntity  =  new  ItemEntity ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        itemEntity . setCreatedTime ( issueToProjectTime ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        itemEntity . setLastHandleTime ( formDto . get ( NumConstant . ZERO ) . getCreatedTime ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        itemEntity . setDistributeTime ( distributeTime ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        itemEntity . setId ( relationshipId . getItemId ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        if  ( null  ! =  projectEvaluation )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            if  ( NumConstant . TEN  = =  formDto . get ( NumConstant . ZERO ) . getState ( ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                // 如果最后一条记录项目状态为 已结案 且 存在满意度评价,则说明最后一条记录为 满意度评价
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                // 此时最后一次处理时间为 取第二条记录
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                itemEntity . setLastHandleTime ( formDto . get ( NumConstant . ONE ) . getCreatedTime ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            itemEntity . setEvaluationContent ( projectEvaluation . getAdvice ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            itemEntity . setEvaluationTime ( projectEvaluation . getCreatedTime ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            // 为了方便 PC 前端,el-rate 组件显示。所以返回 EvaluationScore 时,在原有基础上 +1 了,此时存入数据库需要 -1。
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            itemEntity . setEvaluationScore ( projectEvaluation . getEvaluationScore ( )  -  NumConstant . ONE ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        baseDao . updateById ( itemEntity ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        // 6、处理议题相关表
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        issueHandleService . updateBatchById ( issueHandleEntities ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        IssueEntity  issueEntity  =  new  IssueEntity ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        issueEntity . setCreatedTime ( eventToIssueTime ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        issueEntity . setDistributeTime ( distributeTime ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        issueEntity . setId ( relationshipId . getIssueId ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        issueService . updateById ( issueEntity ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        // 7、处理事件表
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        epdcEventsService . updateById ( eventEntity ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        return  new  Result ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}