package com.estate.expert.admin.io.processor.impl.business;
|
|
import com.estate.expert.admin.domain.plan.Plan;
|
import com.estate.expert.admin.io.processor.RowDataProcessorBase;
|
import com.estate.expert.admin.service.CheckTaskService;
|
import com.estate.expert.admin.utils.DeletedObjectUtil;
|
import lombok.AllArgsConstructor;
|
import lombok.Getter;
|
import lombok.Setter;
|
|
import java.util.List;
|
|
import static com.estate.expert.admin.io.processor.util.ProcessorHelper.formatDateTime;
|
|
/**
|
* 检查计划处理器
|
*
|
* 用于处理检查计划信息的读取和写入
|
*/
|
@Getter
|
@Setter
|
@AllArgsConstructor
|
public class PlanProcessor extends RowDataProcessorBase<Plan> {
|
|
private CheckTaskService checkTaskService;
|
|
@Override
|
protected String[] getHeaders() {
|
return new String[] {
|
"计划名称", "计划类型", "委托方", "计划状态", "创建时间", "完成时间",
|
"项目数量(总数)", "项目数量(完成)", "项目数量(未完成)"
|
};
|
}
|
|
@Override
|
protected List<String> buildRowData(Plan data) {
|
var checkTasks = checkTaskService.listExistTasks(data.getId());
|
var completedTaskCnt = checkTasks.stream().filter(t -> t.getState().ordinal() >= 3 ).count();
|
var uncompletedTaskCnt = checkTasks.size() - completedTaskCnt;
|
return List.of(
|
DeletedObjectUtil.beautifyDeletedString(data.getName()),
|
data.getType().getDesc(),
|
DeletedObjectUtil.beautifyDeletedString(data.getClient().getName()),
|
data.getState().getDesc(),
|
formatDateTime(data.getCreateTime()),
|
formatDateTime(data.getCompletedTime()),
|
String.valueOf(checkTasks.size()),
|
String.valueOf(completedTaskCnt),
|
String.valueOf(uncompletedTaskCnt)
|
);
|
}
|
|
@Override
|
public String getName() {
|
return "检查计划";
|
}
|
}
|