Commit dcc62bd1 by fudahua

feat:批量操作待办

parent d661ee70
...@@ -25,7 +25,7 @@ public interface PendingTaskApiService { ...@@ -25,7 +25,7 @@ public interface PendingTaskApiService {
/** /**
* 待办批量 * 待办批量 活动任务
* *
* @param qdto * @param qdto
*/ */
...@@ -110,9 +110,9 @@ public interface PendingTaskApiService { ...@@ -110,9 +110,9 @@ public interface PendingTaskApiService {
public ServiceResponse<Boolean> updateInvalidTime(String relationId, Date endTime); public ServiceResponse<Boolean> updateInvalidTime(String relationId, Date endTime);
/** /**
* 更新失效或者结束时间 * 更新失效或者结束时间 活动任务
* *
* @param relationId * @param businessId
* @param endTime * @param endTime
* @return * @return
*/ */
......
...@@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Param; ...@@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Set;
@Mapper @Mapper
public interface PendingTaskMapper { public interface PendingTaskMapper {
...@@ -39,6 +40,11 @@ public interface PendingTaskMapper { ...@@ -39,6 +40,11 @@ public interface PendingTaskMapper {
TabPendingTask getByRelationId(String relationId); TabPendingTask getByRelationId(String relationId);
/** /**
* 根据关联id 查询单条
*/
List<TabPendingTask> listByRelationId(@Param("relationIds") List<String> relationIds);
/**
* 分页查询待办任务表 * 分页查询待办任务表
* *
* @param enterpriseId 企业id * @param enterpriseId 企业id
...@@ -80,10 +86,10 @@ public interface PendingTaskMapper { ...@@ -80,10 +86,10 @@ public interface PendingTaskMapper {
/** /**
* 更新失效时间 * 更新失效时间
* *
* @param enterpriseId 企业id * @param businessId 企业id
* @return * @return
*/ */
public int updateInvalidTimeByBusinessId(@Param("businessId") String businessId, @Param("") Date invalidTime); public int updateInvalidTimeByBusinessId(@Param("businessId") String businessId, @Param("invalidTime") Date invalidTime);
/** /**
* 更新失效时间 * 更新失效时间
...@@ -93,5 +99,17 @@ public interface PendingTaskMapper { ...@@ -93,5 +99,17 @@ public interface PendingTaskMapper {
*/ */
public int deleteByBusinessId(@Param("businessId") String businessId); public int deleteByBusinessId(@Param("businessId") String businessId);
/**
* 批量插入
*/
int insertBatch(@Param("list") List<TabPendingTask> list);
/**
* 更新删除状态到正常 活动任务
* @param relationIds
* @return
*/
int updateDelToNormalByRelationIds(@Param("relationIds") Set<String> relationIds, @Param("invalidTime") Date invalidTime);
} }
\ No newline at end of file
...@@ -22,6 +22,14 @@ public interface PendingTaskService { ...@@ -22,6 +22,14 @@ public interface PendingTaskService {
public boolean addOrUpdatePendingTask(PendingTaskBO task); public boolean addOrUpdatePendingTask(PendingTaskBO task);
/** /**
* 新增或更新
*
* @param task
* @return
*/
public boolean addOrUpdateBatchPendingTask(List<PendingTaskBO> task);
/**
* 分页查询待办任务表 * 分页查询待办任务表
* *
* @param enterpriseId 企业id * @param enterpriseId 企业id
...@@ -55,6 +63,7 @@ public interface PendingTaskService { ...@@ -55,6 +63,7 @@ public interface PendingTaskService {
*/ */
public boolean deletePendingTask(List<String> relationIds); public boolean deletePendingTask(List<String> relationIds);
/** /**
* 删除执行人列表 * 删除执行人列表
* *
......
...@@ -15,6 +15,9 @@ import org.springframework.stereotype.Service; ...@@ -15,6 +15,9 @@ import org.springframework.stereotype.Service;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/** /**
* Created 2021/12/15. * Created 2021/12/15.
...@@ -44,6 +47,37 @@ public class PendingTaskServiceImpl implements PendingTaskService { ...@@ -44,6 +47,37 @@ public class PendingTaskServiceImpl implements PendingTaskService {
} }
@Override @Override
public boolean addOrUpdateBatchPendingTask(List<PendingTaskBO> tasks) {
if (CollectionUtils.isEmpty(tasks)) {
return true;
}
List<String> relationIds = tasks.stream().map(mid -> mid.getRelationId()).collect(Collectors.toList());
List<TabPendingTask> tabPendingTasks = pendingTaskMapper.listByRelationId(relationIds);
if (CollectionUtils.isNotEmpty(tabPendingTasks)) {
Map<String, TabPendingTask> pendingTaskMap = tabPendingTasks.stream().collect(Collectors.toMap(tab -> tab.getRelationId(), tab -> tab));
Set<String> hasRelationIds = pendingTaskMap.keySet();
pendingTaskMapper.updateDelToNormalByRelationIds(hasRelationIds,tasks.get(0).getInvalidTime());
tasks = tasks.stream().filter(mid->!pendingTaskMap.containsKey(mid.getRelationId())).collect(Collectors.toList());
}
if (CollectionUtils.isEmpty(tasks)) {
return true;
}
List<TabPendingTask> pendingTasks = EntityUtil.changeEntityListByJSON(TabPendingTask.class, tasks);
int size=100;
int len = pendingTasks.size();
int yu = len % size;
int nu = len / size+(yu>0?1:0);
for (int i=0;i<nu;i++) {
int start=i*size;
int end=(start+size)>len?(start+yu):(start+size);
List<TabPendingTask> midTask = pendingTasks.subList(start, end);
pendingTaskMapper.insertBatch(midTask);
}
return true;
}
@Override
public Page<PendingTaskBO> pagePendingTask(String enterpriseId, String storeId, String clerkId, int taskType, int finishFlag, int overdueFlag, BasePageInfo pageInfo) { public Page<PendingTaskBO> pagePendingTask(String enterpriseId, String storeId, String clerkId, int taskType, int finishFlag, int overdueFlag, BasePageInfo pageInfo) {
PageHelper.startPage(pageInfo); PageHelper.startPage(pageInfo);
List<TabPendingTask> tabPendingTasks = pendingTaskMapper.listPendingTask(enterpriseId, storeId, clerkId, taskType, finishFlag, overdueFlag); List<TabPendingTask> tabPendingTasks = pendingTaskMapper.listPendingTask(enterpriseId, storeId, clerkId, taskType, finishFlag, overdueFlag);
......
...@@ -25,6 +25,7 @@ import java.util.Date; ...@@ -25,6 +25,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors;
/** /**
* Created 2021/12/16. * Created 2021/12/16.
...@@ -46,14 +47,12 @@ public class PendingTaskApiServiceImpl implements PendingTaskApiService { ...@@ -46,14 +47,12 @@ public class PendingTaskApiServiceImpl implements PendingTaskApiService {
@Override @Override
public ServiceResponse<Boolean> addPendingTaskBatch(List<PendingTaskQDTO> qdto) { public ServiceResponse<Boolean> addPendingTaskBatch(List<PendingTaskQDTO> qdto) {
//后续优化
if (CollectionUtils.isEmpty(qdto)) { if (CollectionUtils.isEmpty(qdto)) {
return ServiceResponse.success(true); return ServiceResponse.success(true);
} }
qdto.forEach(mid -> { List<PendingTaskBO> list = EntityUtil.changeEntityListByJSON(PendingTaskBO.class, qdto);
this.addPendingTask(mid); pendingTaskService.addOrUpdateBatchPendingTask(list);
});
return ServiceResponse.success(true); return ServiceResponse.success(true);
} }
......
...@@ -217,6 +217,7 @@ ...@@ -217,6 +217,7 @@
from tab_haoban_notice_message from tab_haoban_notice_message
where enterprise_id = #{enterpriseId} where enterprise_id = #{enterpriseId}
and store_id = #{storeId} and store_id = #{storeId}
and delete_flag=0
<if test="clerkId != null"> <if test="clerkId != null">
and clerk_id =#{clerkId} and clerk_id =#{clerkId}
</if> </if>
...@@ -233,6 +234,7 @@ ...@@ -233,6 +234,7 @@
from tab_haoban_notice_message from tab_haoban_notice_message
where enterprise_id = #{enterpriseId} where enterprise_id = #{enterpriseId}
and read_flag=0 and read_flag=0
and delete_flag=0
and store_id = #{storeId} and store_id = #{storeId}
<if test="clerkId != null"> <if test="clerkId != null">
and clerk_id =#{clerkId} and clerk_id =#{clerkId}
...@@ -250,6 +252,7 @@ ...@@ -250,6 +252,7 @@
WHERE enterprise_id = #{enterpriseId} WHERE enterprise_id = #{enterpriseId}
and clerk_id = #{clerkId} and clerk_id = #{clerkId}
and read_flag=0 and read_flag=0
and delete_flag=0
<if test="categoryType!=-1"> <if test="categoryType!=-1">
and category_type=#{categoryType} and category_type=#{categoryType}
</if> </if>
......
...@@ -251,6 +251,16 @@ ...@@ -251,6 +251,16 @@
where relation_id = #{relationId} where relation_id = #{relationId}
</select> </select>
<select id="listByRelationId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from tab_haoban_pending_task
where relation_id in
<foreach collection="relationIds" open="(" separator="," close=")" item="item">
#{item}
</foreach>
</select>
<select id="listPendingTask" resultMap="BaseResultMap"> <select id="listPendingTask" resultMap="BaseResultMap">
select select
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
...@@ -309,8 +319,9 @@ ...@@ -309,8 +319,9 @@
<update id="updateInvalidTimeByBusinessId"> <update id="updateInvalidTimeByBusinessId">
update tab_haoban_pending_task update tab_haoban_pending_task
set set
update_time = now(), update_time = now(),
invalid_time = #{invalidTime} invalid_time = #{invalidTime},
overdue_time = #{invalidTime}
where business_id = #{businessId} where business_id = #{businessId}
</update> </update>
...@@ -321,4 +332,37 @@ ...@@ -321,4 +332,37 @@
update_time = now() update_time = now()
where business_id = #{businessId} and delete_flag=0 where business_id = #{businessId} and delete_flag=0
</update> </update>
<insert id="insertBatch" >
insert into tab_haoban_pending_task ( enterprise_id, relation_id,
task_type, title, description,
task_status_flag, overdue_time, invalid_time,
store_id, clerk_id, finish_time,
finish_flag, overdue_flag, delete_flag,
create_time, update_time)
values
<foreach collection="list" item="item" separator=",">
( #{item.enterpriseId,jdbcType=VARCHAR}, #{item.relationId,jdbcType=VARCHAR},
#{item.taskType,jdbcType=INTEGER}, #{item.title,jdbcType=VARCHAR}, #{item.description,jdbcType=VARCHAR},
0, #{item.overdueTime,jdbcType=TIMESTAMP}, #{item.invalidTime,jdbcType=TIMESTAMP},
#{item.storeId,jdbcType=VARCHAR}, #{item.clerkId,jdbcType=VARCHAR}, #{item.finishTime,jdbcType=TIMESTAMP},
0, 0, 0,
now(), now())
</foreach>
</insert>
<update id="updateDelToNormalByRelationIds">
update tab_haoban_pending_task
set
delete_flag=0,
update_time = now(),
invalid_time = #{invalidTime},
overdue_time = #{invalidTime}
where
relation_id in
<foreach collection="relationIds" open="(" separator="," close=")" item="item">
#{item}
</foreach>
</update>
</mapper> </mapper>
\ No newline at end of file
...@@ -75,16 +75,23 @@ public class ServiceTest { ...@@ -75,16 +75,23 @@ public class ServiceTest {
@Test @Test
public void test11() { public void test11() {
PendingTaskQDTO pendingTaskDTO = new PendingTaskQDTO(); List<PendingTaskQDTO> list=new ArrayList<>();
pendingTaskDTO.setRelationId("relatrionId"); int i=310;
pendingTaskDTO.setTaskType(1 == TaskTypeEnum.TEL.getValue() ? PendingTaskTypeEnum.TEL_TASK.getType() : PendingTaskTypeEnum.PERFORMANCE.getType()); while (i-->0)
pendingTaskDTO.setTitle("标题"); {
pendingTaskDTO.setDescription("内容"); PendingTaskQDTO pendingTaskDTO = new PendingTaskQDTO();
pendingTaskDTO.setStoreId("storeId"); pendingTaskDTO.setRelationId("relatrionId"+i);
pendingTaskDTO.setClerkId("clerkId"); pendingTaskDTO.setTaskType(1 == TaskTypeEnum.TEL.getValue() ? PendingTaskTypeEnum.TEL_TASK.getType() : PendingTaskTypeEnum.PERFORMANCE.getType());
pendingTaskDTO.setEnterpriseId("eid"); pendingTaskDTO.setTitle("标题");
pendingTaskDTO.setOverdueTime(new Date()); pendingTaskDTO.setDescription("内容");
pendingTaskApiService.addPendingTask(pendingTaskDTO); pendingTaskDTO.setStoreId("storeId");
pendingTaskDTO.setClerkId("clerkId");
pendingTaskDTO.setEnterpriseId("eid");
pendingTaskDTO.setOverdueTime(new Date());
pendingTaskDTO.setInvalidTime(new Date());
list.add(pendingTaskDTO);
}
pendingTaskApiService.addPendingTaskBatch(list);
} }
@Test @Test
......
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