Commit 39e1379d authored by 韩桐桐's avatar 韩桐桐

两个规定-完善计划重做及删除计划

parent 0b58ecdf
......@@ -12,7 +12,10 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.*;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import org.apache.commons.lang3.ObjectUtils;
......@@ -39,11 +42,9 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
* controller层切面 用于用户数据缓存 供 sql自动填充使用 (使用粒度过大的Aop会创建大量代理对象,影响性能,占用内存,考虑使用
......@@ -118,7 +119,7 @@ public class ControllerAop {
urls.add("/tcm/userInfo/getPersonType");
urls.add("/patrol/api/check/saveRecordAll");
urls.add("/patrol/api/check/saveRecordAll2");
urls.add("/patrol/api/planTask/queryPlanTaskNew");
// urls.add("/patrol/api/planTask/queryPlanTaskNew");
// 获取请求路径
for (String uri : urls) {
Pattern p = Pattern.compile(uri);
......
......@@ -22,7 +22,7 @@ public class ESTaskDetailDto {
@Id
private Long id;
private String id;
@Field(type = FieldType.Text)
private String pointId;
......
......@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.patrol.business.constants.XJConstant;
import com.yeejoin.amos.patrol.business.param.PlanInfoPageParam;
import com.yeejoin.amos.patrol.business.param.PlanTaskPageParam;
import com.yeejoin.amos.patrol.business.service.intfc.IPlanTaskService;
import com.yeejoin.amos.patrol.business.service.intfc.IPointService;
......@@ -27,8 +26,6 @@ import com.yeejoin.amos.patrol.feign.RemoteSecurityService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.Authorization;
import org.apache.commons.collections.CollectionUtils;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
......@@ -36,13 +33,11 @@ import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.SortOrder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.util.ObjectUtils;
......
......@@ -16,7 +16,9 @@ public interface PlanTaskDetailMapper extends BaseMapper {
List<PlanTaskDetail> findAllByIdInAndStatus(@Param("planTaskIds") List<Long> planTaskNo, @Param("status") String status);
List<ESTaskDetailDto> findAllByTaskNos(@Param("ids") String ids);
List<ESTaskDetailDto> findAllByTaskNos(@Param("taskNos") List<String> taskNos);
void deleteAllByTaskNos(@Param("taskNos") List<String> taskNos);
PlanTaskDetail selectOne(Long planTaskId, Long pointId);
......
......@@ -11,10 +11,6 @@ import com.yeejoin.amos.patrol.business.vo.CodeOrderVo;
import com.yeejoin.amos.patrol.business.vo.LeavePlanTaskVo;
import com.yeejoin.amos.patrol.business.vo.PlanTaskVo;
import com.yeejoin.amos.patrol.core.common.response.AppCheckInputRespone;
import com.yeejoin.amos.patrol.dao.entity.Plan;
import com.yeejoin.amos.patrol.dao.entity.PlanTask;
import com.yeejoin.amos.patrol.dao.entity.PlanTaskDetail;
import com.yeejoin.amos.patrol.dao.entity.PointInputItem;
import com.yeejoin.amos.patrol.dao.entity.*;
import org.apache.ibatis.annotations.Param;
......@@ -60,8 +56,9 @@ public interface PlanTaskMapper extends BaseMapper {
* @param param
* @return
*/
List<Long> getGenPlanTask(HashMap<String, Object> param);
List<String> getGenPlanTask(HashMap<String, Object> param);
void deleteAllById(@Param("ids") List<String> ids);
/**
* 根据路线id获取关联的计划任务
*
......
......@@ -5,10 +5,7 @@ import com.yeejoin.amos.patrol.dao.entity.ESTaskDetailDto;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface ESTaskDetail extends ElasticsearchRepository<ESTaskDetailDto, String> {
List<ESTaskDetailDto> findAllByPlanTaskIdIn(List<String> planTaskIds);
}
......@@ -405,7 +405,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
//3.删除planTask表,按照计划id+日期
deletePlanTaskAndDet(param);
CompletableFuture.runAsync(() -> deletePlanTaskAndDetAndEs(param));
//5.执行数据生成(具体时间 + 人员)
List<HashMap<String, Object>> list = genAllExeDate(plan, vo, XJConstant.REGEN_FLAG);
......@@ -460,7 +460,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
//4.删除对应es中数据
CompletableFuture.runAsync(() -> deleteEsData(param));
CompletableFuture.runAsync(() -> deletePlanTaskAndDetAndEs(param));
//5.执行数据生成(具体时间 + 人员)
List<HashMap<String, Object>> list = genAllExeDate(plan, vo, XJConstant.REGEN_FLAG);
......@@ -472,45 +472,31 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
taskStaticExecution(null);
}
private void deleteEsData(HashMap<String, Object> param) {
private void deletePlanTaskAndDetAndEs(HashMap<String, Object> param) {
//删除planTask表,按照计划id+日期
List<ESPlanTaskListDto> oldEsPlanTaskListDtos = deletePlanTaskAndDet(param);
List<String> planTaskIds = getPlanTaskId(param);
//删除planTaskDetail表
List<String> planTaskIds = oldEsPlanTaskListDtos.stream().map(ESPlanTaskListDto::getPlanTaskId).collect(Collectors.toList());
if (!ValidationUtil.isEmpty(planTaskIds)) {
if (planTaskIds.size() > 5000) {
int index = 5000;
for (int i = 0; i < planTaskIds.size(); i += 5000) {
if (i + 5000 > planTaskIds.size()) {
index = planTaskIds.size() - i;
}
List<String> newList = planTaskIds.subList(i, i + index);
String ids = newList.stream().collect(Collectors.joining("','", "('", "')"));
List<ESTaskDetailDto> maps = planTaskDetailMapper.findAllByTaskNos(ids);
esTaskDetail.deleteAll(maps);
if (planTaskIds.size() > 5000) {
int index = 5000;
for (int i = 0; i < planTaskIds.size(); i += 5000) {
if (i + 5000 > planTaskIds.size()) {
index = planTaskIds.size() - i;
}
} else {
String ids = planTaskIds.stream().collect(Collectors.joining("','", "('", "')"));
List<ESTaskDetailDto> maps = planTaskDetailMapper.findAllByTaskNos(ids);
List<String> subList = planTaskIds.subList(i, i + index);
List<ESTaskDetailDto> maps = planTaskDetailMapper.findAllByTaskNos(subList);
esTaskDetail.deleteAll(maps);
List<ESPlanTaskListDto> esPlanTaskListDtos = subList.stream().map(item -> new ESPlanTaskListDto().setId(item)).collect(Collectors.toList());
esPlanTaskList.deleteAll(esPlanTaskListDtos);
planTaskDetailMapper.deleteAllByTaskNos(subList);
planTaskMapper.deleteAllById(subList);
}
}
if (!ValidationUtil.isEmpty(oldEsPlanTaskListDtos)) {
if (oldEsPlanTaskListDtos.size() > 5000) {
int index = 5000;
for (int i = 0; i < oldEsPlanTaskListDtos.size(); i += 5000) {
if (i + 5000 > oldEsPlanTaskListDtos.size()) {
index = oldEsPlanTaskListDtos.size() - i;
}
List<ESPlanTaskListDto> newList = oldEsPlanTaskListDtos.subList(i, i + index);
esPlanTaskList.deleteAll(newList);
}
} else {
esPlanTaskList.deleteAll(oldEsPlanTaskListDtos);
}
} else {
List<ESTaskDetailDto> maps = planTaskDetailMapper.findAllByTaskNos(planTaskIds);
esTaskDetail.deleteAll(maps);
List<ESPlanTaskListDto> esPlanTaskListDtos = planTaskIds.stream().map(item -> new ESPlanTaskListDto().setId(item)).collect(Collectors.toList());
esPlanTaskList.deleteAll(esPlanTaskListDtos);
planTaskDetailMapper.deleteAllByTaskNos(planTaskIds);
planTaskMapper.deleteAllById(planTaskIds);
}
}
......@@ -584,12 +570,18 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
throw new YeeException("删除数据内容不能为空");
}
Set<Long> taskNos = new HashSet<>();
ArrayList<ESPlanTaskListDto> esPlanTaskListDtos = new ArrayList<>();
for (String id : strArry) {
PlanTaskDetail planTkDet = planTaskDetail.findById(Long.parseLong(id)).get();
if (null != planTkDet) {
taskNos.add(planTkDet.getTaskNo());
esPlanTaskListDtos.add(new ESPlanTaskListDto().setId(Objects.toString(planTkDet.getTaskNo())));
}
}
// 删除es数据
esPlanTaskList.deleteAll(esPlanTaskListDtos);
List<ESTaskDetailDto> esTaskDetailDtos = planTaskDetailMapper.findAllByTaskNos(esPlanTaskListDtos.stream().map(ESPlanTaskListDto::getId).collect(Collectors.toList()));
esTaskDetail.deleteAll(esTaskDetailDtos);
planTaskMapper.planTaskDet(strArry);// 删除数据
HashMap<String, Object> param = new HashMap<String, Object>();
param.put("IDS", new ArrayList<>(taskNos));
......@@ -867,22 +859,14 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
/**
* 删除plantask及det
* 获取plantaskId
*
* @param param
*/
public List<ESPlanTaskListDto> deletePlanTaskAndDet(HashMap<String, Object> param) {
public List<String> getPlanTaskId(HashMap<String, Object> param) {
param.put("beginDate", param.get("beginDate") + " " + "00:00:00");
param.put("endDate", param.get("endDate") + " " + "23:59:59");
List<Long> ids = planTaskMapper.getGenPlanTask(param);
List<ESPlanTaskListDto> planTaskList = new ArrayList<>();
for (long id : ids) {
iplanTaskDao.deleteById(id);
ESPlanTaskListDto esPlanTaskListDto = new ESPlanTaskListDto();
esPlanTaskListDto.setPlanTaskId(String.valueOf(id));
planTaskList.add(esPlanTaskListDto);
}
return planTaskList;
return planTaskMapper.getGenPlanTask(param);
}
/**
......@@ -1912,7 +1896,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
private List<ESTaskDetailDto> buildESTaskDetailDtoData(String planTaskIds, List<PlanTaskDetail> planTaskDetails) {
// 查询所有的
List<ESTaskDetailDto> allESTaskDetailDtos = this.queryTaskDetailEs(planTaskIds);
Map<Long, ESTaskDetailDto> esTaskDetailDtoMap = allESTaskDetailDtos.stream().collect(Collectors.toMap(ESTaskDetailDto::getId, Function.identity()));
Map<String, ESTaskDetailDto> esTaskDetailDtoMap = allESTaskDetailDtos.stream().collect(Collectors.toMap(ESTaskDetailDto::getId, Function.identity()));
// 只更新未完成状态
planTaskDetails.forEach(planTaskDetail -> {
ESTaskDetailDto esTaskDetailDto = esTaskDetailDtoMap.get(planTaskDetail.getId());
......@@ -1949,7 +1933,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
private void buildESTaskDetailDtoData2(List<ESTaskDetailDto> allESTaskDetailDtos, List<PlanTaskDetail> planTaskDetails) {
// 查询所有的
Map<Long, ESTaskDetailDto> esTaskDetailDtoMap = allESTaskDetailDtos.stream().collect(Collectors.toMap(ESTaskDetailDto::getId, Function.identity()));
Map<String , ESTaskDetailDto> esTaskDetailDtoMap = allESTaskDetailDtos.stream().collect(Collectors.toMap(ESTaskDetailDto::getId, Function.identity()));
// 只更新未完成状态
planTaskDetails.stream().filter(p-> PlanTaskDetailStatusEnum.NOTSTARTED.getValue().equals(p.getStatus())).forEach(planTaskDetail -> {
ESTaskDetailDto esTaskDetailDto = esTaskDetailDtoMap.get(planTaskDetail.getId());
......
......@@ -191,7 +191,7 @@
</foreach>
</update>
<select id="getGenPlanTask" resultType="long">
<select id="getGenPlanTask" resultType="java.lang.String">
select a.id from p_plan_task a
<trim prefix="where" prefixOverrides="AND |OR">
<if test="beginDate!=null"> and a.begin_Time >= #{beginDate}</if>
......@@ -200,6 +200,14 @@
</trim>
</select>
<delete id="deleteAllById">
delete from "p_plan_task" ppt
where ppt.id in
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="getPlanTaskByRouteId" resultType="com.yeejoin.amos.patrol.dao.entity.PlanTask">
SELECT * FROM p_plan_task
<where>
......
......@@ -40,13 +40,27 @@
where
pptd.task_no in <foreach collection="planTaskIds" item="planTaskId" index="index" open="(" separator="," close=")" >#{planTaskId}</foreach>
</select>
<select id="findAllByTaskNos" resultType="com.yeejoin.amos.patrol.dao.entity.PlanTaskDetail">
<delete id="deleteAllByTaskNos">
delete from
"p_plan_task_detail" pptd
where
pptd.task_no in
<foreach collection="taskNos" item="no" open="(" separator="," close=")">
#{no}
</foreach>
</delete>
<select id="findAllByTaskNos" resultType="com.yeejoin.amos.patrol.dao.entity.ESTaskDetailDto">
select
pptd.id
from
"p_plan_task_detail" pptd
where
pptd.task_no in #{ids}
pptd.task_no in
<foreach collection="taskNos" item="no" open="(" separator="," close=")">
#{no}
</foreach>
</select>
<select id="selectOne" resultType="com.yeejoin.amos.patrol.dao.entity.PlanTaskDetail">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment