|
|
@ -1,6 +1,8 @@ |
|
|
|
package com.epmet.service.impl; |
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
import com.alibaba.fastjson.JSONArray; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker; |
|
|
|
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|
|
@ -36,18 +38,31 @@ import com.epmet.enums.ProjectOriginEnum; |
|
|
|
import com.epmet.feign.*; |
|
|
|
import com.epmet.resi.group.constant.TopicConstant; |
|
|
|
import com.epmet.service.*; |
|
|
|
import com.epmet.utils.IcEventReportUtils; |
|
|
|
import com.epmet.utils.ReportCityManageData; |
|
|
|
import com.github.pagehelper.PageHelper; |
|
|
|
import com.github.pagehelper.PageInfo; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.commons.collections4.MapUtils; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.apache.http.HttpEntity; |
|
|
|
import org.apache.http.client.config.RequestConfig; |
|
|
|
import org.apache.http.client.methods.CloseableHttpResponse; |
|
|
|
import org.apache.http.client.methods.HttpGet; |
|
|
|
import org.apache.http.client.methods.HttpPost; |
|
|
|
import org.apache.http.entity.mime.MultipartEntityBuilder; |
|
|
|
import org.apache.http.impl.client.CloseableHttpClient; |
|
|
|
import org.apache.http.impl.client.HttpClients; |
|
|
|
import org.apache.http.util.EntityUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.util.CollectionUtils; |
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.nio.charset.StandardCharsets; |
|
|
|
import java.util.*; |
|
|
|
import java.util.concurrent.atomic.AtomicReference; |
|
|
|
import java.util.function.Function; |
|
|
@ -102,7 +117,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
private LoginUserUtil loginUserUtil; |
|
|
|
|
|
|
|
|
|
|
|
public CustomerStaffInfoCacheResult getStaffInfo(String customerId,String staffId){ |
|
|
|
public CustomerStaffInfoCacheResult getStaffInfo(String customerId, String staffId) { |
|
|
|
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, staffId); |
|
|
|
if (null == staffInfo) { |
|
|
|
throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", staffId)); |
|
|
@ -112,7 +127,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageData<IcEventListResultDTO> list(IcEventListFormDTO formDTO) { |
|
|
|
if(StringUtils.isBlank(formDTO.getAgencyId())){ |
|
|
|
if (StringUtils.isBlank(formDTO.getAgencyId())) { |
|
|
|
//获取当前工作人员缓存信息
|
|
|
|
CustomerStaffInfoCacheResult staffInfo = getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); |
|
|
|
formDTO.setAgencyId(staffInfo.getAgencyId()); |
|
|
@ -159,10 +174,10 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
} |
|
|
|
} |
|
|
|
//每个事件对应的图片数据
|
|
|
|
if(!CollectionUtils.isEmpty(dto.getAttachmentList())){ |
|
|
|
if (!CollectionUtils.isEmpty(dto.getAttachmentList())) { |
|
|
|
List<String> imageList = new ArrayList<>(); |
|
|
|
List<IcEventListResultDTO.Attachment> voiceList = new ArrayList<>(); |
|
|
|
for(IcEventListResultDTO.Attachment file: dto.getAttachmentList()){ |
|
|
|
for (IcEventListResultDTO.Attachment file : dto.getAttachmentList()) { |
|
|
|
if ("image".equals(file.getType())) { |
|
|
|
imageList.add(file.getUrl()); |
|
|
|
} else if ("voice".equals(file.getType())) { |
|
|
@ -187,6 +202,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
|
|
|
|
/** |
|
|
|
* 事件管理-新增 |
|
|
|
* |
|
|
|
* @param formDTO |
|
|
|
*/ |
|
|
|
@Override |
|
|
@ -203,7 +219,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
//1-1.判断是否勾选处理方式,勾选了则分类不能为空
|
|
|
|
//勾选了立项或转需求或已完成时分类必须传
|
|
|
|
if (((StringUtils.isNotBlank(formDTO.getOperationType()) && "1".equals(formDTO.getOperationType())) |
|
|
|
|| (StringUtils.isNotBlank(formDTO.getStatus()) && "closed_case".equals(formDTO.getStatus()))) && CollectionUtils.isEmpty(formDTO.getCategoryList())) { |
|
|
|
|| (StringUtils.isNotBlank(formDTO.getStatus()) && "closed_case".equals(formDTO.getStatus()))) && CollectionUtils.isEmpty(formDTO.getCategoryList())) { |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "事件分类不能为空"); |
|
|
|
} |
|
|
|
//1-2.判断勾选已完成则处理方式不能选择立项或转需求
|
|
|
@ -249,7 +265,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
|
|
|
|
//事件Id
|
|
|
|
String icEventId = IdWorker.getIdStr(); |
|
|
|
Date nowTime=new Date(); |
|
|
|
Date nowTime = new Date(); |
|
|
|
//事件表红点,回复、立项、转服务、办结展示红点【0不展示 1展示】
|
|
|
|
int redDot = NumConstant.ZERO; |
|
|
|
String operationType = ""; |
|
|
@ -284,10 +300,10 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
formDTO.setOperationId(recIdResult.getData().getDemandRecId()); |
|
|
|
} |
|
|
|
//2-3.转议题
|
|
|
|
if(StringUtils.isNotBlank(formDTO.getOperationType()) && NumConstant.THREE_STR.equals(formDTO.getOperationType())){ |
|
|
|
if (StringUtils.isNotBlank(formDTO.getOperationType()) && NumConstant.THREE_STR.equals(formDTO.getOperationType())) { |
|
|
|
operationType = NumConstant.THREE_STR; |
|
|
|
//调用issue服务转议题
|
|
|
|
PublishIssueFormDTO issueFormDTO=new PublishIssueFormDTO(); |
|
|
|
PublishIssueFormDTO issueFormDTO = new PublishIssueFormDTO(); |
|
|
|
issueFormDTO.setIssueStatus("voting"); |
|
|
|
issueFormDTO.setAddress(formDTO.getAddress()); |
|
|
|
issueFormDTO.setLatitude(formDTO.getLatitude()); |
|
|
@ -306,7 +322,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
issueFormDTO.setUpdatedTime(nowTime); |
|
|
|
issueFormDTO.setDecidedTime(nowTime); |
|
|
|
issueFormDTO.setEventReportUserName(formDTO.getName()); |
|
|
|
Result<IssueDTO> issueRes=govIssueOpenFeignClient.publishIssue(issueFormDTO); |
|
|
|
Result<IssueDTO> issueRes = govIssueOpenFeignClient.publishIssue(issueFormDTO); |
|
|
|
if (!issueRes.success() || null == issueRes.getData()) { |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "事件转议题异常,返参:" + JSON.toJSONString(issueRes), "事件转议题异常"); |
|
|
|
} |
|
|
@ -321,7 +337,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
entity.setGridPids(gridInfo.getPids()); |
|
|
|
entity.setLatestOperatedTime(nowTime); |
|
|
|
entity.setAuditStatus(TopicConstant.AUTO_PASSED); |
|
|
|
if("closed_case".equals(formDTO.getStatus())){ |
|
|
|
if ("closed_case".equals(formDTO.getStatus())) { |
|
|
|
entity.setCloseCaseTime(new Date()); |
|
|
|
} |
|
|
|
//insert(entity);
|
|
|
@ -348,7 +364,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
if (!CollectionUtils.isEmpty(formDTO.getCategoryList())) { |
|
|
|
CategoryTagResultDTO category = queryCategory(formDTO.getCustomerId(), formDTO.getCategoryList()); |
|
|
|
IcEventCategoryEntity categoryEntity = null; |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()){ |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()) { |
|
|
|
if (ca.getId().equals(formDTO.getCategoryList().get(NumConstant.ZERO))) { |
|
|
|
categoryEntity = new IcEventCategoryEntity(); |
|
|
|
categoryEntity.setCustomerId(formDTO.getCustomerId()); |
|
|
@ -369,7 +385,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
Date date = new Date(); |
|
|
|
//3-5.回复数据保存
|
|
|
|
if (StringUtils.isNotBlank(formDTO.getContent())) { |
|
|
|
if(StringUtils.isEmpty(operationType)){ |
|
|
|
if (StringUtils.isEmpty(operationType)) { |
|
|
|
operationType = NumConstant.ZERO_STR; |
|
|
|
} |
|
|
|
redDot = NumConstant.ONE; |
|
|
@ -452,6 +468,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
|
|
|
|
/** |
|
|
|
* 事件管理-批量删除事件 |
|
|
|
* |
|
|
|
* @param ids |
|
|
|
*/ |
|
|
|
@Override |
|
|
@ -460,37 +477,37 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
//已立项、已转服务的事件删除时,同时删除关联的服务和项目
|
|
|
|
for (String id : ids) { |
|
|
|
IcEventEntity entity = baseDao.selectById(id); |
|
|
|
if (null == entity){ |
|
|
|
if (null == entity) { |
|
|
|
// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"数据不存在","数据不存在");
|
|
|
|
continue; |
|
|
|
} |
|
|
|
//1:已转项目 2:已转需求
|
|
|
|
if (NumConstant.ONE_STR.equals(entity.getOperationType())){ |
|
|
|
if (NumConstant.ONE_STR.equals(entity.getOperationType())) { |
|
|
|
ProjectService projectService = SpringContextUtils.getBean(ProjectService.class); |
|
|
|
Integer effectRow = projectService.deleteByOriginId(entity.getId(), ProjectOriginEnum.IC_EVENT.getCode()); |
|
|
|
log.info("delete project effectRow:{},eventId:{}", effectRow, id); |
|
|
|
} else if (NumConstant.TWO_STR.equals(entity.getOperationType())){ |
|
|
|
} else if (NumConstant.TWO_STR.equals(entity.getOperationType())) { |
|
|
|
Result<Integer> effectRow = epmetHeartOpenFeignClient.deleteUserDemandByOriginId(entity.getId(), ProjectOriginEnum.IC_EVENT.getCode()); |
|
|
|
// log.info("delete userDemand result:{},eventId:{}", effectRow, id);
|
|
|
|
} else if(NumConstant.THREE_STR.equals(entity.getOperationType())){ |
|
|
|
} else if (NumConstant.THREE_STR.equals(entity.getOperationType())) { |
|
|
|
DelIssueFormDTO delIssueFormDTO = new DelIssueFormDTO(); |
|
|
|
delIssueFormDTO.setCustomerId(loginUserUtil.getLoginUserCustomerId()); |
|
|
|
delIssueFormDTO.setUserId(loginUserUtil.getLoginUserId()); |
|
|
|
delIssueFormDTO.setIssueIds(Arrays.asList(entity.getOperationId())); |
|
|
|
// 删除议题, 议题转了项目的,再单独去删除项目
|
|
|
|
Result<List<String>> delIssueRes = govIssueOpenFeignClient.deleteIssueInternal(delIssueFormDTO); |
|
|
|
if(delIssueRes.success()&&!CollectionUtils.isEmpty(delIssueRes.getData())){ |
|
|
|
if (delIssueRes.success() && !CollectionUtils.isEmpty(delIssueRes.getData())) { |
|
|
|
// 议题被转了项目,需要删除项目
|
|
|
|
SpringContextUtils.getBean(ProjectService.class).deleteByOriginId(delIssueRes.getData().get(0), ProjectOriginEnum.ISSUE.getCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
LambdaUpdateWrapper<IcEventEntity> wrapper = new LambdaUpdateWrapper(); |
|
|
|
wrapper.eq(IcEventEntity::getId,id).set(IcEventEntity::getUpdatedTime,new Date()) |
|
|
|
.set(IcEventEntity::getUpdatedBy,loginUserUtil.getLoginUserId()) |
|
|
|
.set(IcEventEntity::getDelFlag,NumConstant.ONE_STR); |
|
|
|
baseDao.update(null,wrapper); |
|
|
|
wrapper.eq(IcEventEntity::getId, id).set(IcEventEntity::getUpdatedTime, new Date()) |
|
|
|
.set(IcEventEntity::getUpdatedBy, loginUserUtil.getLoginUserId()) |
|
|
|
.set(IcEventEntity::getDelFlag, NumConstant.ONE_STR); |
|
|
|
baseDao.update(null, wrapper); |
|
|
|
//把事件分类ic_event_category也删除了吧,以免后面数据分析用到这个表
|
|
|
|
icEventCategoryService.delInsert(id,null); |
|
|
|
icEventCategoryService.delInsert(id, null); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -727,6 +744,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询家属 |
|
|
|
* |
|
|
|
* @param idCard |
|
|
|
* @return |
|
|
|
*/ |
|
|
@ -780,7 +798,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "当前事件不允许回复"); |
|
|
|
} |
|
|
|
//2.修改事件数据
|
|
|
|
if (StringUtils.isNotBlank(formDTO.getOperationType()) && StringUtils.isNotBlank(formDTO.getStatus()) && "closed_case".equals(formDTO.getStatus())){ |
|
|
|
if (StringUtils.isNotBlank(formDTO.getOperationType()) && StringUtils.isNotBlank(formDTO.getStatus()) && "closed_case".equals(formDTO.getStatus())) { |
|
|
|
entity.setStatus(formDTO.getStatus()); |
|
|
|
entity.setCloseCaseTime(new Date()); |
|
|
|
entity.setDifficultPoint("0"); |
|
|
@ -809,7 +827,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
categoryList.add(formDTO.getCategoryId()); |
|
|
|
CategoryTagResultDTO category = queryCategory(formDTO.getCustomerId(), categoryList); |
|
|
|
IcEventCategoryEntity categoryEntity = null; |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()){ |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()) { |
|
|
|
if (ca.getId().equals(formDTO.getCategoryId())) { |
|
|
|
categoryEntity = new IcEventCategoryEntity(); |
|
|
|
categoryEntity.setCustomerId(formDTO.getCustomerId()); |
|
|
@ -895,7 +913,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
categoryList.add(categoryId); |
|
|
|
CategoryTagResultDTO category = queryCategory(formDTO.getCustomerId(), categoryList); |
|
|
|
IcEventCategoryEntity categoryEntity = null; |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()){ |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()) { |
|
|
|
if (ca.getId().equals(categoryId)) { |
|
|
|
categoryEntity = new IcEventCategoryEntity(); |
|
|
|
categoryEntity.setCustomerId(formDTO.getCustomerId()); |
|
|
@ -978,7 +996,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
categoryList.add(formDTO.getCategoryId()); |
|
|
|
CategoryTagResultDTO category = queryCategory(formDTO.getCustomerId(), categoryList); |
|
|
|
IcEventCategoryEntity categoryEntity = null; |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()){ |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()) { |
|
|
|
if (ca.getId().equals(formDTO.getCategoryId())) { |
|
|
|
categoryEntity = new IcEventCategoryEntity(); |
|
|
|
categoryEntity.setCustomerId(formDTO.getCustomerId()); |
|
|
@ -1107,8 +1125,8 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
IcEventListResultDTO resultDTO = new IcEventListResultDTO(); |
|
|
|
//1.获取事件基本信息
|
|
|
|
List<IcEventListResultDTO> list = baseDao.icEventList(formDTO); |
|
|
|
if(CollectionUtils.isEmpty(list)){ |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"事件不存在","事件已删除"); |
|
|
|
if (CollectionUtils.isEmpty(list)) { |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "事件不存在", "事件已删除"); |
|
|
|
} |
|
|
|
resultDTO = list.get(0); |
|
|
|
//查询网格名称(组织-网格)
|
|
|
@ -1129,7 +1147,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
resultDTO.setSourceTypeName(statusMap.get(resultDTO.getSourceType())); |
|
|
|
} |
|
|
|
//每个事件对应的图片数据
|
|
|
|
if(!CollectionUtils.isEmpty(resultDTO.getAttachmentList())){ |
|
|
|
if (!CollectionUtils.isEmpty(resultDTO.getAttachmentList())) { |
|
|
|
List<String> imageList = new ArrayList<>(); |
|
|
|
List<IcEventListResultDTO.Attachment> voiceList = new ArrayList<>(); |
|
|
|
resultDTO.getAttachmentList().forEach(file -> { |
|
|
@ -1144,11 +1162,11 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
} |
|
|
|
|
|
|
|
//分类信息
|
|
|
|
if(StringUtils.isNotBlank(resultDTO.getCategoryId())){ |
|
|
|
if (StringUtils.isNotBlank(resultDTO.getCategoryId())) { |
|
|
|
List<String> categoryList = new ArrayList<>(); |
|
|
|
categoryList.add(resultDTO.getCategoryId()); |
|
|
|
CategoryTagResultDTO category = queryCategory(formDTO.getCustomerId(), categoryList); |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()){ |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()) { |
|
|
|
if (ca.getId().equals(resultDTO.getCategoryId())) { |
|
|
|
resultDTO.setParentCategoryId(ca.getPid()); |
|
|
|
resultDTO.setCategoryId(ca.getId()); |
|
|
@ -1176,7 +1194,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
if (null == gridInfoCache) { |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "网格信息查询异常"); |
|
|
|
} |
|
|
|
IcEventAnalysisOrgResDTO grid = ConvertUtils.sourceToTarget(formDTO,IcEventAnalysisOrgResDTO.class); |
|
|
|
IcEventAnalysisOrgResDTO grid = ConvertUtils.sourceToTarget(formDTO, IcEventAnalysisOrgResDTO.class); |
|
|
|
grid.setOrgName(gridInfoCache.getGridName()); |
|
|
|
grid.setTotal(baseDao.selectOrgTotal(formDTO)); |
|
|
|
list.add(grid); |
|
|
@ -1190,7 +1208,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
IcEventAnalysisOrgResDTO resultDto = ConvertUtils.sourceToTarget(org, IcEventAnalysisOrgResDTO.class); |
|
|
|
formDTO.setOrgId(org.getOrgId()); |
|
|
|
formDTO.setOrgType(org.getOrgType()); |
|
|
|
if("agency".equals(org.getOrgType())){ |
|
|
|
if ("agency".equals(org.getOrgType())) { |
|
|
|
String purePids = org.getPids(); |
|
|
|
if ("0".equals(purePids) || StringUtils.isBlank(purePids)) { |
|
|
|
formDTO.setGridPids(org.getOrgId()); |
|
|
@ -1206,6 +1224,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
|
|
|
|
/** |
|
|
|
* Desc: 定时任务自动评价 |
|
|
|
* |
|
|
|
* @param formDTO |
|
|
|
* @author zxc |
|
|
|
* @date 2022/5/18 16:35 |
|
|
@ -1213,14 +1232,14 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
@Override |
|
|
|
public void autoEvaluation(AutoEvaluationFormDTO formDTO) { |
|
|
|
List<String> customerIds = new ArrayList<>(); |
|
|
|
if (StringUtils.isBlank(formDTO.getCustomerId())){ |
|
|
|
if (StringUtils.isBlank(formDTO.getCustomerId())) { |
|
|
|
Result<List<CustomerDTO>> allCustomerList = crmOpenFeignClient.getAllCustomerList(); |
|
|
|
if (!allCustomerList.success()){ |
|
|
|
if (!allCustomerList.success()) { |
|
|
|
throw new EpmetException("查询所有客户失败"); |
|
|
|
} |
|
|
|
List<CustomerDTO> data = allCustomerList.getData(); |
|
|
|
customerIds.addAll(data.stream().map(m -> m.getId()).collect(Collectors.toList())); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
customerIds.add(formDTO.getCustomerId()); |
|
|
|
} |
|
|
|
customerIds.forEach(c -> { |
|
|
@ -1230,24 +1249,25 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
|
|
|
|
/** |
|
|
|
* Desc: 处理未评价的icEvent |
|
|
|
* |
|
|
|
* @param customerId |
|
|
|
* @author zxc |
|
|
|
* @date 2022/5/18 16:52 |
|
|
|
*/ |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void autoEvaluationDispose(String customerId){ |
|
|
|
public void autoEvaluationDispose(String customerId) { |
|
|
|
Integer no = NumConstant.ONE; |
|
|
|
Integer size = NumConstant.ONE_HUNDRED; |
|
|
|
List<String> ids = new ArrayList<>(); |
|
|
|
do { |
|
|
|
int start = (no - NumConstant.ONE) * size; |
|
|
|
ids = baseDao.getAutoEvaluationIds(customerId,start,size); |
|
|
|
ids = baseDao.getAutoEvaluationIds(customerId, start, size); |
|
|
|
// 批量更新
|
|
|
|
if (!CollectionUtils.isEmpty(ids)){ |
|
|
|
if (!CollectionUtils.isEmpty(ids)) { |
|
|
|
baseDao.updateAutoEvaluation(ids); |
|
|
|
} |
|
|
|
no++; |
|
|
|
}while (ids.size() == size); |
|
|
|
} while (ids.size() == size); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -1260,7 +1280,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
//1.查询事件基础信息
|
|
|
|
IcEventEntity entity = baseDao.selectById(formDTO.getIcEventId()); |
|
|
|
if (null == entity) { |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "事件不存在","事件不存在"); |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "事件不存在", "事件不存在"); |
|
|
|
} |
|
|
|
// operationType 0:已回复 1:已转项目 2:已转需求3:转议题
|
|
|
|
//2.判断查询事件项目进展或需求进展信息或者议题进展
|
|
|
@ -1281,15 +1301,15 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
IssueIdFormDTO issueIdFormDTO = new IssueIdFormDTO(); |
|
|
|
issueIdFormDTO.setIssueId(entity.getOperationId()); |
|
|
|
Result<IssueAdvanceResDTO> issueProcessRes = govIssueOpenFeignClient.queryIssueProcess(issueIdFormDTO); |
|
|
|
if(!issueProcessRes.success()||CollectionUtils.isEmpty(issueProcessRes.getData().getProcessList())){ |
|
|
|
if (!issueProcessRes.success() || CollectionUtils.isEmpty(issueProcessRes.getData().getProcessList())) { |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "事件已转议题,议题处理进展查询异常", "事件已转议题,议题处理进展查询异常"); |
|
|
|
} |
|
|
|
IssueAdvanceResDTO issueAdvanceResDTO=issueProcessRes.getData(); |
|
|
|
IssueAdvanceResDTO issueAdvanceResDTO = issueProcessRes.getData(); |
|
|
|
//如果议题已转项目,先放项目的处理进展
|
|
|
|
if("shift_project".equals(issueAdvanceResDTO.getIssueStatus())){ |
|
|
|
if ("shift_project".equals(issueAdvanceResDTO.getIssueStatus())) { |
|
|
|
//根据议题id查询项目
|
|
|
|
List<ProjectEntity> projectEntityList=SpringContextUtils.getBean(ProjectService.class).getByOriginId(issueAdvanceResDTO.getIssueId()); |
|
|
|
if(!CollectionUtils.isEmpty(projectEntityList)){ |
|
|
|
List<ProjectEntity> projectEntityList = SpringContextUtils.getBean(ProjectService.class).getByOriginId(issueAdvanceResDTO.getIssueId()); |
|
|
|
if (!CollectionUtils.isEmpty(projectEntityList)) { |
|
|
|
// 项目进展
|
|
|
|
ProcessListV2FormDTO processListV2FormDTO = new ProcessListV2FormDTO(); |
|
|
|
processListV2FormDTO.setProjectId(projectEntityList.get(0).getId()); |
|
|
@ -1299,8 +1319,8 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
resultList.addAll(projectList); |
|
|
|
} |
|
|
|
} |
|
|
|
for(ProcessListResultDTOBak issueProcess:issueAdvanceResDTO.getProcessList()){ |
|
|
|
IcEventProcessListResultDTO eventProcess=new IcEventProcessListResultDTO(); |
|
|
|
for (ProcessListResultDTOBak issueProcess : issueAdvanceResDTO.getProcessList()) { |
|
|
|
IcEventProcessListResultDTO eventProcess = new IcEventProcessListResultDTO(); |
|
|
|
eventProcess.setDepartmentName(issueProcess.getDepartmentName()); |
|
|
|
eventProcess.setProcessId(issueProcess.getProcessId()); |
|
|
|
eventProcess.setProcessName(issueProcess.getProcessName()); |
|
|
@ -1320,7 +1340,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
|
|
|
|
/** |
|
|
|
* @Author sun |
|
|
|
* @Description 需求完成/项目结案时 修改事件数据 |
|
|
|
* @Description 需求完成/项目结案时 修改事件数据 |
|
|
|
* 议题关闭时,如果议题来源于事件,也会调用此方法 |
|
|
|
**/ |
|
|
|
@Override |
|
|
@ -1352,7 +1372,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
logEntity.setServiceParty(formDTO.getServiceParty()); |
|
|
|
logEntity.setActualServiceTime(formDTO.getActualServiceTime()); |
|
|
|
icEventOperationLogService.insert(logEntity); |
|
|
|
}else if("project".equals(formDTO.getType())){ |
|
|
|
} else if ("project".equals(formDTO.getType())) { |
|
|
|
IcEventOperationLogEntity logEntity = new IcEventOperationLogEntity(); |
|
|
|
logEntity.setIcEventId(formDTO.getIcEventId()); |
|
|
|
logEntity.setCustomerId(formDTO.getCustomerId()); |
|
|
@ -1364,7 +1384,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
logEntity.setServiceParty(formDTO.getServiceParty()); |
|
|
|
logEntity.setActualServiceTime(formDTO.getActualServiceTime()); |
|
|
|
icEventOperationLogService.insert(logEntity); |
|
|
|
}else if("issue".equals(formDTO.getType())){ |
|
|
|
} else if ("issue".equals(formDTO.getType())) { |
|
|
|
IcEventOperationLogEntity logEntity = new IcEventOperationLogEntity(); |
|
|
|
logEntity.setIcEventId(formDTO.getIcEventId()); |
|
|
|
logEntity.setCustomerId(formDTO.getCustomerId()); |
|
|
@ -1379,7 +1399,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
} |
|
|
|
|
|
|
|
//4.判断来源居民端的事件,需求、项目结案时给居民推送站内信
|
|
|
|
if("0".equals(entity.getSourceType())){ |
|
|
|
if ("0".equals(entity.getSourceType())) { |
|
|
|
List<UserMessageFormDTO> msgList = new ArrayList<>(); |
|
|
|
UserMessageFormDTO messageFormDTO = new UserMessageFormDTO(); |
|
|
|
messageFormDTO.setCustomerId(formDTO.getCustomerId()); |
|
|
@ -1402,6 +1422,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
|
|
|
|
/** |
|
|
|
* Desc: 新增【随手拍、讲】 |
|
|
|
* |
|
|
|
* @param formDTO |
|
|
|
* @author zxc |
|
|
|
* @date 2022/5/19 13:38 |
|
|
@ -1411,13 +1432,13 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
public void addEventFromResi(AddEventFromResiFormDTO formDTO) { |
|
|
|
// 判断是否注册居民
|
|
|
|
Result<Boolean> isResiFlag = userOpenFeignClient.getIsResiFlag(formDTO.getUserId()); |
|
|
|
if (!isResiFlag.success()){ |
|
|
|
if (!isResiFlag.success()) { |
|
|
|
throw new EpmetException("查询是否注册居民失败..."); |
|
|
|
} |
|
|
|
if (!isResiFlag.getData()){ |
|
|
|
if (!isResiFlag.getData()) { |
|
|
|
throw new EpmetException(EpmetErrorCode.NOT_REGEIST_RESI.getCode()); |
|
|
|
} |
|
|
|
if(StringUtils.isBlank(formDTO.getContent()) && CollectionUtils.isEmpty(formDTO.getVoiceList())) { |
|
|
|
if (StringUtils.isBlank(formDTO.getContent()) && CollectionUtils.isEmpty(formDTO.getVoiceList())) { |
|
|
|
//话题内容和语音不能同时为空
|
|
|
|
log.error("事件内容和语音不能同时为空"); |
|
|
|
throw new RenException(EpmetErrorCode.RESI_EVENT_SUBMIT.getCode(), EpmetErrorCode.RESI_EVENT_SUBMIT.getMsg()); |
|
|
@ -1427,20 +1448,20 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
} |
|
|
|
resiEventService.scanContent(formDTO.getContent(), formDTO.getAttachmentList()); |
|
|
|
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(formDTO.getGridId()); |
|
|
|
if (null == gridInfo){ |
|
|
|
throw new EpmetException("未查询到此网格信息"+formDTO.getGridId()); |
|
|
|
if (null == gridInfo) { |
|
|
|
throw new EpmetException("未查询到此网格信息" + formDTO.getGridId()); |
|
|
|
} |
|
|
|
IcEventEntity entity = ConvertUtils.sourceToTarget(formDTO,IcEventEntity.class); |
|
|
|
IcEventEntity entity = ConvertUtils.sourceToTarget(formDTO, IcEventEntity.class); |
|
|
|
entity.setAgencyId(gridInfo.getPid()); |
|
|
|
entity.setGridPids(gridInfo.getPids()); |
|
|
|
Result<List<UserBaseInfoResultDTO>> userResult = userOpenFeignClient.queryUserBaseInfo(Arrays.asList(formDTO.getUserId())); |
|
|
|
if (!userResult.success() && CollectionUtils.isEmpty(userResult.getData())){ |
|
|
|
throw new EpmetException("查询用户信息失败"+formDTO.getUserId()); |
|
|
|
if (!userResult.success() && CollectionUtils.isEmpty(userResult.getData())) { |
|
|
|
throw new EpmetException("查询用户信息失败" + formDTO.getUserId()); |
|
|
|
} |
|
|
|
entity.setReportUserId(formDTO.getUserId()); |
|
|
|
AtomicReference<String> userShowName = new AtomicReference<>(""); |
|
|
|
userResult.getData().forEach(u -> { |
|
|
|
if (u.getUserId().equals(formDTO.getUserId())){ |
|
|
|
if (u.getUserId().equals(formDTO.getUserId())) { |
|
|
|
entity.setName(u.getRealName()); |
|
|
|
entity.setMobile(u.getMobile()); |
|
|
|
entity.setIdCard(u.getIdNum()); |
|
|
@ -1463,12 +1484,12 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
//3-2.附件数据保存
|
|
|
|
List<IcEventAttachmentEntity> attachmentEntityList = new ArrayList<>(); |
|
|
|
if (!CollectionUtils.isEmpty(formDTO.getAttachmentList())) { |
|
|
|
disposeAttachment(formDTO.getAttachmentList(), attachmentEntityList,entity.getId(),formDTO.getCustomerId(),formDTO.getUserId()); |
|
|
|
disposeAttachment(formDTO.getAttachmentList(), attachmentEntityList, entity.getId(), formDTO.getCustomerId(), formDTO.getUserId()); |
|
|
|
} |
|
|
|
if (!CollectionUtils.isEmpty(formDTO.getVoiceList())) { |
|
|
|
disposeAttachment(formDTO.getVoiceList(), attachmentEntityList,entity.getId(),formDTO.getCustomerId(),formDTO.getUserId()); |
|
|
|
disposeAttachment(formDTO.getVoiceList(), attachmentEntityList, entity.getId(), formDTO.getCustomerId(), formDTO.getUserId()); |
|
|
|
} |
|
|
|
if (!CollectionUtils.isEmpty(attachmentEntityList)){ |
|
|
|
if (!CollectionUtils.isEmpty(attachmentEntityList)) { |
|
|
|
icEventAttachmentService.insertBatch(attachmentEntityList); |
|
|
|
} |
|
|
|
// 站内信发送给社区每个工作人员
|
|
|
@ -1477,6 +1498,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
|
|
|
|
/** |
|
|
|
* Desc: 给工作人员发送站内信 |
|
|
|
* |
|
|
|
* @param agencyId |
|
|
|
* @param customerId |
|
|
|
* @param showName |
|
|
@ -1484,15 +1506,15 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
* @author zxc |
|
|
|
* @date 2022/5/20 10:22 |
|
|
|
*/ |
|
|
|
public void disposeMessage(String agencyId,String customerId,String showName,String icEventId){ |
|
|
|
public void disposeMessage(String agencyId, String customerId, String showName, String icEventId) { |
|
|
|
// 查询组织下的所有工作人员
|
|
|
|
AgencyIdFormDTO formDTO = new AgencyIdFormDTO(); |
|
|
|
formDTO.setAgencyId(agencyId); |
|
|
|
Result<List<String>> agencyStaffsResult = govOrgOpenFeignClient.getAgencyStaffs(formDTO); |
|
|
|
if (!agencyStaffsResult.success()){ |
|
|
|
if (!agencyStaffsResult.success()) { |
|
|
|
throw new EpmetException("查询组织下工作人员失败..."); |
|
|
|
} |
|
|
|
if (!CollectionUtils.isEmpty(agencyStaffsResult.getData())){ |
|
|
|
if (!CollectionUtils.isEmpty(agencyStaffsResult.getData())) { |
|
|
|
List<UserMessageFormDTO> msgList = new ArrayList<>(); |
|
|
|
agencyStaffsResult.getData().forEach(u -> { |
|
|
|
UserMessageFormDTO msg = new UserMessageFormDTO(); |
|
|
@ -1504,7 +1526,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
msg.setMessageType(UserMessageTypeConstant.IC_EVENT); |
|
|
|
msg.setReadFlag(ReadFlagConstant.UN_READ); |
|
|
|
msg.setTitle("您有一条事件消息"); |
|
|
|
msg.setMessageContent(showName+"上报一条事件,请查看。"); |
|
|
|
msg.setMessageContent(showName + "上报一条事件,请查看。"); |
|
|
|
msgList.add(msg); |
|
|
|
}); |
|
|
|
messageOpenFeignClient.saveUserMessageList(msgList); |
|
|
@ -1513,6 +1535,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
|
|
|
|
/** |
|
|
|
* Desc: 附件处理 |
|
|
|
* |
|
|
|
* @param list |
|
|
|
* @param attachmentEntityList |
|
|
|
* @param id |
|
|
@ -1521,7 +1544,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
* @author zxc |
|
|
|
* @date 2022/5/20 09:50 |
|
|
|
*/ |
|
|
|
public void disposeAttachment(List<FileCommonDTO> list,List<IcEventAttachmentEntity> attachmentEntityList,String id,String customerId,String userId){ |
|
|
|
public void disposeAttachment(List<FileCommonDTO> list, List<IcEventAttachmentEntity> attachmentEntityList, String id, String customerId, String userId) { |
|
|
|
int sort = NumConstant.ZERO; |
|
|
|
for (FileCommonDTO a : list) { |
|
|
|
IcEventAttachmentEntity attachment = new IcEventAttachmentEntity(); |
|
|
@ -1571,16 +1594,16 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
} |
|
|
|
|
|
|
|
//分类信息
|
|
|
|
if(StringUtils.isNotBlank(dto.getCategoryId())){ |
|
|
|
if (StringUtils.isNotBlank(dto.getCategoryId())) { |
|
|
|
List<String> categoryList = new ArrayList<>(); |
|
|
|
categoryList.add(dto.getCategoryId()); |
|
|
|
CategoryTagResultDTO category = queryCategory(formDTO.getCustomerId(), categoryList); |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()){ |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()) { |
|
|
|
if (ca.getId().equals(dto.getCategoryId())) { |
|
|
|
if(StringUtils.isNotBlank(ca.getParentCategoryName())){ |
|
|
|
if (StringUtils.isNotBlank(ca.getParentCategoryName())) { |
|
|
|
//大类-子类
|
|
|
|
dto.setCategoryName(ca.getParentCategoryName().concat(StrConstant.HYPHEN).concat(ca.getCategoryName())); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
dto.setCategoryName(ca.getCategoryName()); |
|
|
|
} |
|
|
|
} |
|
|
@ -1602,7 +1625,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void removeRed(String userId, String icEventId) { |
|
|
|
baseDao.updateRedDot(userId,icEventId); |
|
|
|
baseDao.updateRedDot(userId, icEventId); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -1613,7 +1636,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
@Override |
|
|
|
public void resiReply(ResiReplyIcEventFormDTO formDTO) { |
|
|
|
//1.查询事件数据 判断是否允许回复
|
|
|
|
IcEventEntity entity=checkReply(formDTO.getIcEventId()); |
|
|
|
IcEventEntity entity = checkReply(formDTO.getIcEventId()); |
|
|
|
entity.setLatestOperatedTime(new Date()); |
|
|
|
//居民端的红点置为不显示
|
|
|
|
entity.setRedDot(NumConstant.ZERO); |
|
|
@ -1628,9 +1651,9 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
replyEntity.setFromUserId(formDTO.getUserId()); |
|
|
|
replyEntity.setContent(formDTO.getContent()); |
|
|
|
// 查询当前用户的显示昵称 应该是xxx街道-姓/女士or先生 如果没有街道和姓,显示的微信昵称
|
|
|
|
List<String> userIdList =new ArrayList<>(); |
|
|
|
List<String> userIdList = new ArrayList<>(); |
|
|
|
userIdList.add(formDTO.getUserId()); |
|
|
|
Result<List<UserBaseInfoResultDTO>> userResult=userOpenFeignClient.queryUserBaseInfo(userIdList); |
|
|
|
Result<List<UserBaseInfoResultDTO>> userResult = userOpenFeignClient.queryUserBaseInfo(userIdList); |
|
|
|
if (!userResult.success() || CollectionUtils.isEmpty(userResult.getData())) { |
|
|
|
throw new RenException("查询当前用户信息异常"); |
|
|
|
} |
|
|
@ -1638,25 +1661,25 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
icEventReplyService.insert(replyEntity); |
|
|
|
|
|
|
|
//3.新增操作记录数据
|
|
|
|
IcEventOperationLogEntity logEntity =ConvertUtils.sourceToTarget(formDTO,IcEventOperationLogEntity.class); |
|
|
|
IcEventOperationLogEntity logEntity = ConvertUtils.sourceToTarget(formDTO, IcEventOperationLogEntity.class); |
|
|
|
logEntity.setUserIdentity(EventConstant.RESI_USER); |
|
|
|
logEntity.setActionCode(ResiEventAction.REPLY.getCode()); |
|
|
|
logEntity.setActionDesc(ResiEventAction.REPLY.getDesc()); |
|
|
|
logEntity.setOperateTime(new Date()); |
|
|
|
icEventOperationLogService.insert(logEntity); |
|
|
|
// 4.给工作端社区的人发送消息:山东路168号-张先生对事件进行了新的回复,请查看
|
|
|
|
noticeStaffResiReply(entity.getAgencyId(),entity.getCustomerId(),replyEntity.getUserShowName(),entity.getId()); |
|
|
|
noticeStaffResiReply(entity.getAgencyId(), entity.getCustomerId(), replyEntity.getUserShowName(), entity.getId()); |
|
|
|
} |
|
|
|
|
|
|
|
public void noticeStaffResiReply(String agencyId,String customerId,String showName,String icEventId){ |
|
|
|
public void noticeStaffResiReply(String agencyId, String customerId, String showName, String icEventId) { |
|
|
|
// 查询组织下的所有工作人员
|
|
|
|
AgencyIdFormDTO formDTO = new AgencyIdFormDTO(); |
|
|
|
formDTO.setAgencyId(agencyId); |
|
|
|
Result<List<String>> agencyStaffsResult = govOrgOpenFeignClient.getAgencyStaffs(formDTO); |
|
|
|
if (!agencyStaffsResult.success()){ |
|
|
|
if (!agencyStaffsResult.success()) { |
|
|
|
throw new EpmetException("查询组织下工作人员失败..."); |
|
|
|
} |
|
|
|
if (!CollectionUtils.isEmpty(agencyStaffsResult.getData())){ |
|
|
|
if (!CollectionUtils.isEmpty(agencyStaffsResult.getData())) { |
|
|
|
List<UserMessageFormDTO> msgList = new ArrayList<>(); |
|
|
|
agencyStaffsResult.getData().forEach(u -> { |
|
|
|
UserMessageFormDTO msg = new UserMessageFormDTO(); |
|
|
@ -1668,7 +1691,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
msg.setMessageType(UserMessageTypeConstant.IC_EVENT); |
|
|
|
msg.setReadFlag(ReadFlagConstant.UN_READ); |
|
|
|
msg.setTitle("您有一条事件消息"); |
|
|
|
msg.setMessageContent(showName+"对事件进行了新的回复,请查看。"); |
|
|
|
msg.setMessageContent(showName + "对事件进行了新的回复,请查看。"); |
|
|
|
msgList.add(msg); |
|
|
|
}); |
|
|
|
messageOpenFeignClient.saveUserMessageList(msgList); |
|
|
@ -1687,8 +1710,8 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
// <if test="userId != null and userId != '' ">
|
|
|
|
// AND ie.REPORT_USER_ID = #{userId}
|
|
|
|
// </if>
|
|
|
|
List<MyReportIcEvResDTO> list=baseDao.selectMyReport(formDTO); |
|
|
|
if(CollectionUtils.isEmpty(list)){ |
|
|
|
List<MyReportIcEvResDTO> list = baseDao.selectMyReport(formDTO); |
|
|
|
if (CollectionUtils.isEmpty(list)) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
if (!CollectionUtils.isEmpty(list)) { |
|
|
@ -1710,16 +1733,16 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
} |
|
|
|
|
|
|
|
//分类信息
|
|
|
|
if(StringUtils.isNotBlank(dto.getCategoryId())){ |
|
|
|
if (StringUtils.isNotBlank(dto.getCategoryId())) { |
|
|
|
List<String> categoryList = new ArrayList<>(); |
|
|
|
categoryList.add(dto.getCategoryId()); |
|
|
|
CategoryTagResultDTO category = queryCategory(formDTO.getCustomerId(), categoryList); |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()){ |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()) { |
|
|
|
if (ca.getId().equals(dto.getCategoryId())) { |
|
|
|
if(StringUtils.isNotBlank(ca.getParentCategoryName())){ |
|
|
|
if (StringUtils.isNotBlank(ca.getParentCategoryName())) { |
|
|
|
//大类-子类
|
|
|
|
dto.setCategoryName(ca.getParentCategoryName().concat(StrConstant.HYPHEN).concat(ca.getCategoryName())); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
dto.setCategoryName(ca.getCategoryName()); |
|
|
|
} |
|
|
|
} |
|
|
@ -1783,9 +1806,9 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
// if (org.apache.commons.collections4.CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())) {
|
|
|
|
// return new PageData<PageUserReportEventResDTO>(new ArrayList<>(), NumConstant.ZERO);
|
|
|
|
// }
|
|
|
|
List<String> epmetUserIdList=new ArrayList<>(); |
|
|
|
List<String> epmetUserIdList = new ArrayList<>(); |
|
|
|
epmetUserIdList.add(formDTO.getUserId()); |
|
|
|
if(!CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())){ |
|
|
|
if (!CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())) { |
|
|
|
epmetUserIdList.addAll(formDTO.getEpmetUserIdList()); |
|
|
|
} |
|
|
|
formDTO.setEpmetUserIdList(epmetUserIdList); |
|
|
@ -1803,9 +1826,9 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
@Override |
|
|
|
public void icEventToIssue(IcEventToIssueFormDTO formDTO) { |
|
|
|
//校验下数据
|
|
|
|
IcEventEntity icEventEntity=baseDao.selectById(formDTO.getIcEventId()); |
|
|
|
IcEventEntity icEventEntity = baseDao.selectById(formDTO.getIcEventId()); |
|
|
|
if (null == icEventEntity || !"processing".equals(icEventEntity.getStatus())) { |
|
|
|
log.error(String.format("事件不存在icEventId:%s",formDTO.getIcEventId())); |
|
|
|
log.error(String.format("事件不存在icEventId:%s", formDTO.getIcEventId())); |
|
|
|
return; |
|
|
|
} |
|
|
|
//查询分类信息
|
|
|
@ -1813,7 +1836,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
CategoryTagResultDTO category = queryCategory(formDTO.getCustomerId(), categoryIdList); |
|
|
|
Date nowTime = new Date(); |
|
|
|
//调用issue服务转议题
|
|
|
|
PublishIssueFormDTO issueFormDTO=new PublishIssueFormDTO(); |
|
|
|
PublishIssueFormDTO issueFormDTO = new PublishIssueFormDTO(); |
|
|
|
issueFormDTO.setIssueStatus("voting"); |
|
|
|
issueFormDTO.setAddress(icEventEntity.getAddress()); |
|
|
|
issueFormDTO.setLatitude(icEventEntity.getLatitude()); |
|
|
@ -1832,7 +1855,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
issueFormDTO.setUpdatedTime(nowTime); |
|
|
|
issueFormDTO.setDecidedTime(nowTime); |
|
|
|
issueFormDTO.setEventReportUserName(icEventEntity.getName()); |
|
|
|
Result<IssueDTO> issueRes=govIssueOpenFeignClient.publishIssue(issueFormDTO); |
|
|
|
Result<IssueDTO> issueRes = govIssueOpenFeignClient.publishIssue(issueFormDTO); |
|
|
|
if (!issueRes.success() || null == issueRes.getData()) { |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "事件转议题异常,返参:" + JSON.toJSONString(issueRes), "事件转议题异常"); |
|
|
|
} |
|
|
@ -1840,7 +1863,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
//1、修改事件相关信息
|
|
|
|
icEventEntity.setOperationType(formDTO.getOperationType()); |
|
|
|
icEventEntity.setOperationId(issueRes.getData().getIssueId()); |
|
|
|
if("0".equals(icEventEntity.getSourceType())){ |
|
|
|
if ("0".equals(icEventEntity.getSourceType())) { |
|
|
|
//来源于随手拍的,居民端需要显示红点
|
|
|
|
icEventEntity.setRedDot(NumConstant.ONE); |
|
|
|
} |
|
|
@ -1849,9 +1872,9 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
baseDao.updateById(icEventEntity); |
|
|
|
//2、插入事件分类表 ic_event_category
|
|
|
|
//分类全删全增吧
|
|
|
|
List<IcEventCategoryEntity> categoryEntities=new ArrayList<>(); |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()){ |
|
|
|
IcEventCategoryEntity icEventCategoryEntity=new IcEventCategoryEntity(); |
|
|
|
List<IcEventCategoryEntity> categoryEntities = new ArrayList<>(); |
|
|
|
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()) { |
|
|
|
IcEventCategoryEntity icEventCategoryEntity = new IcEventCategoryEntity(); |
|
|
|
icEventCategoryEntity.setCustomerId(formDTO.getCustomerId()); |
|
|
|
icEventCategoryEntity.setIcEventId(formDTO.getIcEventId()); |
|
|
|
icEventCategoryEntity.setCategoryId(ca.getId()); |
|
|
@ -1859,7 +1882,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
icEventCategoryEntity.setCategoryCode(ca.getCategoryCode()); |
|
|
|
categoryEntities.add(icEventCategoryEntity); |
|
|
|
} |
|
|
|
icEventCategoryService.delInsert(formDTO.getIcEventId(),categoryEntities); |
|
|
|
icEventCategoryService.delInsert(formDTO.getIcEventId(), categoryEntities); |
|
|
|
//3、插入操作日志表 ic_event_operation_log
|
|
|
|
IcEventOperationLogEntity logEntity = new IcEventOperationLogEntity(); |
|
|
|
logEntity.setCustomerId(formDTO.getCustomerId()); |
|
|
@ -1902,8 +1925,165 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<IcEventDTO> batchSelectById(List<String> icEventIds) { |
|
|
|
List<IcEventEntity>list=baseDao.selectBatchIds(icEventIds); |
|
|
|
return ConvertUtils.sourceToTarget(list,IcEventDTO.class); |
|
|
|
List<IcEventEntity> list = baseDao.selectBatchIds(icEventIds); |
|
|
|
return ConvertUtils.sourceToTarget(list, IcEventDTO.class); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Result reportCityManager(IcEventListResultDTO data) throws IOException { |
|
|
|
ReportCityManageData reportData; |
|
|
|
if (null != data) { |
|
|
|
reportData = new ReportCityManageData(); |
|
|
|
//事件问题描述
|
|
|
|
reportData.setEventDesc(StringUtils.isNotEmpty(data.getEventContent()) ? data.getEventContent() : ""); |
|
|
|
//事件ID
|
|
|
|
reportData.setOtherTaskNum(StringUtils.isNotEmpty(data.getIcEventId()) ? data.getIcEventId() : ""); |
|
|
|
//事件发生地址
|
|
|
|
reportData.setAddress(StringUtils.isNotEmpty(data.getAddress()) ? data.getAddress() : ""); |
|
|
|
//X坐标
|
|
|
|
// reportData.setCoordinateX(Double.valueOf(data.getLongitude())); //先不传
|
|
|
|
reportData.setLontitude(Double.valueOf(StringUtils.isNotEmpty(data.getLongitude()) ? data.getLongitude() : "0.0")); |
|
|
|
//Y坐标
|
|
|
|
// reportData.setCoordinateY(Double.valueOf(data.getLatitude())); //先不传
|
|
|
|
reportData.setLatitude(Double.valueOf(StringUtils.isNotEmpty(data.getLatitude()) ? data.getLatitude() : "0.0")); |
|
|
|
//上报人
|
|
|
|
reportData.setHumanName(data.getName()); |
|
|
|
//上报人电话
|
|
|
|
reportData.setCellphone(data.getMobile()); |
|
|
|
//问题来源标示:默认130057
|
|
|
|
reportData.setEventSrcID(IcEventReportUtils.EVENT_SRC_ID); |
|
|
|
//所属社区
|
|
|
|
if (StringUtils.isNotEmpty(data.getGridName())) { |
|
|
|
reportData.setCommunityName(data.getGridName().substring(0, data.getGridName().lastIndexOf("-"))); |
|
|
|
reportData.setStreetName(data.getGridName().substring(data.getGridName().lastIndexOf("-") + 1)); |
|
|
|
} |
|
|
|
//案卷类型标识 城市管理 1,社会服务类 2
|
|
|
|
reportData.setRecTypeID(1); |
|
|
|
//问题级别标识 按照现场要求默认为1或者2
|
|
|
|
reportData.setEventLevelID(1); |
|
|
|
//问题类型标识 临时采用默认值 1
|
|
|
|
reportData.setEventTypeCode("1"); |
|
|
|
List<ReportCityManageData.Media> medias = new ArrayList<>(); |
|
|
|
if (null != data.getImageList() && data.getImageList().size() > 0) { |
|
|
|
data.getImageList().forEach(img -> { |
|
|
|
ReportCityManageData.Media media = new ReportCityManageData.Media(); |
|
|
|
media.setMediaUsage("上报"); |
|
|
|
media.setMediaType("IMAGE"); |
|
|
|
media.setMediaURL(img); |
|
|
|
media.setMediaName(img.substring(img.lastIndexOf("/") + 1)); |
|
|
|
// try {
|
|
|
|
// media.setContent(IcEventReportUtils.getFileByBase64(img));
|
|
|
|
// } catch (IOException e) {
|
|
|
|
// throw new EpmetException("下载事件图片文件失败,请联系管理员!");
|
|
|
|
// }
|
|
|
|
medias.add(media); |
|
|
|
}); |
|
|
|
reportData.setMedias(medias); |
|
|
|
} |
|
|
|
if (null != data.getVoiceList() && data.getVoiceList().size() > 0) { |
|
|
|
data.getVoiceList().forEach(voice -> { |
|
|
|
ReportCityManageData.Media media = new ReportCityManageData.Media(); |
|
|
|
media.setMediaUsage("上报"); |
|
|
|
media.setMediaType("VOICE"); |
|
|
|
media.setMediaURL(voice.getUrl()); |
|
|
|
media.setMediaName(voice.getUrl().substring(voice.getUrl().lastIndexOf("/") + 1)); |
|
|
|
// try {
|
|
|
|
// media.setContent(IcEventReportUtils.getFileByBase64(voice.getUrl()));
|
|
|
|
// } catch (IOException e) {
|
|
|
|
// throw new EpmetException("下载事件音频文件失败,请联系管理员!");
|
|
|
|
// }
|
|
|
|
medias.add(media); |
|
|
|
}); |
|
|
|
reportData.setMedias(medias); |
|
|
|
} |
|
|
|
JSONObject result = reportData(reportData); |
|
|
|
if (!result.getString("success").equals("false")) { |
|
|
|
JSONObject obj = result.getJSONObject("data"); |
|
|
|
IcEventEntity entity = new IcEventEntity(); |
|
|
|
entity.setId(data.getIcEventId()); |
|
|
|
entity.setRecId(obj.getString("recID")); |
|
|
|
entity.setTaskNum(obj.getString("taskNum")); |
|
|
|
updateById(entity); |
|
|
|
return new Result(); |
|
|
|
} else { |
|
|
|
return new Result().error(8000, result.getString("message")); |
|
|
|
} |
|
|
|
} else { |
|
|
|
throw new EpmetException("没有查询到该事件!"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Result checkReportStatus(String icEventId, String taskNum) throws IOException { |
|
|
|
CloseableHttpClient client = null; |
|
|
|
CloseableHttpResponse response = null; |
|
|
|
try { |
|
|
|
client = HttpClients.createDefault(); |
|
|
|
RequestConfig config = RequestConfig.custom().setConnectTimeout(10000).setConnectionRequestTimeout(3000).setSocketTimeout(10000).build(); |
|
|
|
StringBuilder url = new StringBuilder(IcEventReportUtils.REPORT_STATUS_URL); |
|
|
|
url.append("?senderCode=" + IcEventReportUtils.STATUS_CODE).append("&taskNum=").append(taskNum); |
|
|
|
HttpGet get = new HttpGet(url.toString()); |
|
|
|
get.addHeader("Content-Type", "application/json;charset=utf-8"); |
|
|
|
get.addHeader("Accept", "application/json;charset=utf-8"); |
|
|
|
get.addHeader("Connection", "keep-alive"); |
|
|
|
get.setConfig(config); |
|
|
|
response = client.execute(get); |
|
|
|
JSONObject json = JSONObject.parseObject(EntityUtils.toString(response.getEntity())); |
|
|
|
if (!json.getString("success").equals("false")) { |
|
|
|
JSONArray process = JSONObject.parseObject(json.getString("data")).getJSONArray("recProcess"); |
|
|
|
if (null != process && process.size() > 0) { |
|
|
|
List<IcEventReplyEntity> entityList = new ArrayList<>(); |
|
|
|
for (int i = 0; i < process.size(); i++) { |
|
|
|
JSONObject object = process.getJSONObject(i); |
|
|
|
IcEventReplyEntity replyEntity = new IcEventReplyEntity(); |
|
|
|
replyEntity.setCustomerId(EpmetRequestHolder.getLoginUserCustomerId()); |
|
|
|
replyEntity.setIcEventId(icEventId); |
|
|
|
replyEntity.setHumanName(object.getString("humanName")); |
|
|
|
replyEntity.setActDefName(object.getString("actDefName")); |
|
|
|
replyEntity.setContent(object.getString("content")); |
|
|
|
} |
|
|
|
icEventReplyService.saveOrUpdateBatch(entityList); |
|
|
|
} else { |
|
|
|
return new Result().error(Integer.valueOf(json.getString("code")), json.getString("message")); |
|
|
|
} |
|
|
|
} else { |
|
|
|
return new Result().error(Integer.valueOf(json.getString("code")), json.getString("message")); |
|
|
|
} |
|
|
|
return new Result(); |
|
|
|
} catch (Exception e) { |
|
|
|
throw new EpmetException(8000, "查询失败,请联系管理员!"); |
|
|
|
} finally { |
|
|
|
if (null != client) { |
|
|
|
client.close(); |
|
|
|
} |
|
|
|
response.close(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private JSONObject reportData(ReportCityManageData reportData) throws IOException { |
|
|
|
CloseableHttpClient client = null; |
|
|
|
CloseableHttpResponse response = null; |
|
|
|
try { |
|
|
|
client = HttpClients.createDefault(); |
|
|
|
HttpPost post = new HttpPost(IcEventReportUtils.REPORT_URL); |
|
|
|
RequestConfig config = RequestConfig.custom().setConnectTimeout(10000).setConnectionRequestTimeout(3000).setSocketTimeout(10000).build(); |
|
|
|
post.setConfig(config); |
|
|
|
MultipartEntityBuilder builder = MultipartEntityBuilder.create(); |
|
|
|
builder.setCharset(StandardCharsets.UTF_8); |
|
|
|
builder.addTextBody("senderCode", IcEventReportUtils.SENDER_CODE); |
|
|
|
builder.addTextBody("actionType", IcEventReportUtils.ACTION_TYPE); |
|
|
|
builder.addTextBody("data", JSONObject.toJSON(reportData).toString()); |
|
|
|
HttpEntity entity = builder.build(); |
|
|
|
post.setEntity(entity); |
|
|
|
response = client.execute(post); |
|
|
|
return JSONObject.parseObject(EntityUtils.toString(response.getEntity())); |
|
|
|
} catch (Exception e) { |
|
|
|
throw new EpmetException("上报失败,请联系管理员!"); |
|
|
|
} finally { |
|
|
|
if (null != client) { |
|
|
|
client.close(); |
|
|
|
} |
|
|
|
response.close(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|