Browse Source

定时任务更新事件评价

master
zxc 3 years ago
parent
commit
2c5a633e26
  1. 21
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AutoEvaluationFormDTO.java
  2. 9
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java
  3. 5
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java
  4. 13
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/IcEventController.java
  5. 18
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventDao.java
  6. 8
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/IcEventService.java
  7. 53
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java
  8. 26
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml

21
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AutoEvaluationFormDTO.java

@ -0,0 +1,21 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/5/18 16:33
* @DESC
*/
@Data
public class AutoEvaluationFormDTO implements Serializable {
private static final long serialVersionUID = -8871508029242477452L;
private String customerId;
private String dateId;
private String startDate;
private String endDate;
}

9
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java

@ -158,4 +158,13 @@ public interface GovProjectOpenFeignClient {
*/
@PostMapping("gov/project/project/audit-reset")
Result<ProjectAuditResetResultDTO> eventAuditReset(@RequestParam("gridId")String gridId);
/**
* Desc: 定时任务自动评价
* @param formDTO
* @author zxc
* @date 2022/5/18 16:35
*/
@PostMapping("gov/project/icEvent/auto-evaluation")
Result autoEvaluation(@RequestBody AutoEvaluationFormDTO formDTO);
}

5
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java

@ -159,4 +159,9 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli
public Result<ProjectAuditResetResultDTO> eventAuditReset(String gridId) {
return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "eventAuditReset",gridId);
}
@Override
public Result autoEvaluation(AutoEvaluationFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "autoEvaluation",formDTO);
}
}

13
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/IcEventController.java

@ -22,7 +22,6 @@ import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
/**
* 事件管理表
*
@ -231,4 +230,16 @@ public class IcEventController {
return new Result<List<IcEventAnalysisOrgResDTO>>().ok(list);
}
/**
* Desc: 定时任务自动评价
* @param formDTO
* @author zxc
* @date 2022/5/18 16:35
*/
@PostMapping("auto-evaluation")
public Result autoEvaluation(@RequestBody AutoEvaluationFormDTO formDTO){
icEventService.autoEvaluation(formDTO);
return new Result();
}
}

18
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventDao.java

@ -83,4 +83,22 @@ public interface IcEventDao extends BaseDao<IcEventEntity> {
* @return
*/
List<IcEventCategoryAnalysisResDTO> selectFirstCategoryTotal(IcEventCategoryAnalysisFormDTO formDTO);
/**
* Desc: 查询客户下可以自动评价事件的ID
* @param customerId
* @param no
* @param size
* @author zxc
* @date 2022/5/18 17:20
*/
List<String> getAutoEvaluationIds(@Param("customerId") String customerId,@Param("no")Integer no,@Param("size")Integer size);
/**
* Desc: 更新评价默认 perfect
* @param ids
* @author zxc
* @date 2022/5/18 17:26
*/
void updateAutoEvaluation(@Param("ids")List<String> ids);
}

8
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/IcEventService.java

@ -126,6 +126,14 @@ public interface IcEventService extends BaseService<IcEventEntity> {
**/
void comment(IcEventReplyFormDTO formDTO);
/**
* Desc: 定时任务自动评价
* @param formDTO
* @author zxc
* @date 2022/5/18 16:35
*/
void autoEvaluation(AutoEvaluationFormDTO formDTO);
/**
* @Author sun
* @Description 事件管理-评价

53
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java

@ -24,6 +24,7 @@ import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.utils.*;
import com.epmet.dao.IcEventDao;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.CustomerDTO;
import com.epmet.dto.IcEventDTO;
import com.epmet.dto.IssueProjectCategoryDictDTO;
import com.epmet.dto.form.*;
@ -31,10 +32,7 @@ import com.epmet.dto.form.demand.DemandRecId;
import com.epmet.dto.result.*;
import com.epmet.entity.*;
import com.epmet.enums.EcEventProcessStatusEnum;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.EpmetHeartOpenFeignClient;
import com.epmet.feign.GovIssueOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.feign.*;
import com.epmet.resi.group.constant.TopicConstant;
import com.epmet.service.*;
import com.github.pagehelper.PageHelper;
@ -49,6 +47,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
@ -88,6 +87,8 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
private IcEventReplyService icEventReplyService;
@Autowired
private IcEventOperationLogService icEventOperationLogService;
@Autowired
private OperCrmOpenFeignClient crmOpenFeignClient;
@Override
@ -759,5 +760,49 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
return null;
}
/**
* Desc: 定时任务自动评价
* @param formDTO
* @author zxc
* @date 2022/5/18 16:35
*/
@Override
public void autoEvaluation(AutoEvaluationFormDTO formDTO) {
List<String> customerIds = new ArrayList<>();
if (StringUtils.isBlank(formDTO.getCustomerId())){
Result<List<CustomerDTO>> allCustomerList = crmOpenFeignClient.getAllCustomerList();
if (!allCustomerList.success()){
throw new EpmetException("查询所有客户失败");
}
List<CustomerDTO> data = allCustomerList.getData();
customerIds.addAll(data.stream().map(m -> m.getId()).collect(Collectors.toList()));
}else {
customerIds.add(formDTO.getCustomerId());
}
customerIds.forEach(c -> {
autoEvaluationDispose(c);
});
}
/**
* Desc: 处理未评价的icEvent
* @param customerId
* @author zxc
* @date 2022/5/18 16:52
*/
@Transactional(rollbackFor = Exception.class)
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);
// 批量更新
baseDao.updateAutoEvaluation(ids);
no++;
}while (ids.size() == size);
}
}

26
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml

@ -3,6 +3,21 @@
<mapper namespace="com.epmet.dao.IcEventDao">
<!-- 更新评价,默认 perfect -->
<update id="updateAutoEvaluation">
UPDATE ic_event
SET SATISFACTION = 'perfect',
COMMENT_USER_ID = 'APP_USER',
COMMENT_TIME = NOW(),
LATEST_OPERATED_TIME = NOW(),
UPDATED_TIME = NOW()
WHERE ID IN (
<foreach collection="ids" item="id" separator=",">
#{id}
</foreach>
)
</update>
<select id="getProcessStatusRatio" resultType="java.util.Map">
select STATUS status, count(1) eventCount
from ic_event e
@ -168,4 +183,15 @@
ORDER BY
total DESC
</select>
<!-- 查询客户下可以自动评价事件的ID -->
<select id="getAutoEvaluationIds" resultType="java.lang.String">
SELECT ID
FROM ic_event
WHERE DEL_FLAG = '0'
AND CUSTOMER_ID = #{customerId}
AND `STATUS` = 'closed_case'
AND UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(CLOSE_CASE_TIME) > 60*60*24*7
LIMIT #{no},#{size}
</select>
</mapper>
Loading…
Cancel
Save