代码提交

master
yqy 3 years ago
parent e3fa19c891
commit 277b61518b

@ -33,7 +33,7 @@ public interface SourceClueClient {
@ApiOperation("小组id查询并分配组员资源")
@PostMapping(API_PREFIX + "/queryOrganizeIdList")
void queryOrganizeIdList(@RequestBody ClueQueryCriteria clueQueryCriteria);
ResponseEntity<Long> queryOrganizeIdList(@RequestBody ClueQueryCriteria clueQueryCriteria);
@ApiOperation("修改组")
@GetMapping(API_PREFIX + "/updateOrganize")

@ -25,8 +25,8 @@ public class SourceClueClientFallback implements SourceClueClient {
}
@Override
public void queryOrganizeIdList(ClueQueryCriteria clueQueryCriteria) {
public ResponseEntity<Long> queryOrganizeIdList(ClueQueryCriteria clueQueryCriteria) {
return null;
}
@Override

@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.annotations.CreationTimestamp;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.sql.Timestamp;
@ -19,6 +20,7 @@ import java.util.Map;
@Entity
@Table(name = "tb_task_organize")
@ApiModel(value = "Task")
@EntityListeners(AuditingEntityListener.class)
public class TaskOrganize {
@Id

@ -60,10 +60,10 @@ public class User extends BaseEntity implements Serializable {
inverseJoinColumns = {@JoinColumn(name = "job_id",referencedColumnName = "job_id")})
private Set<Job> jobs;
@OneToOne
/*@OneToOne
@JoinColumn(name = "dept_id")
@ApiModelProperty(value = "用户部门")
private Dept dept;
private Dept dept;*/
@NotBlank
@Column(unique = true)

@ -4,6 +4,7 @@ import com.baiye.annotation.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import java.sql.Timestamp;
import java.util.List;
@ -35,6 +36,10 @@ public class TaskOrganizeQueryCriteria {
@Query(type = Query.Type.BETWEEN)
private List<Timestamp> createTime;
@ApiModelProperty(value = "此次任务分配数量")
@Query(type = Query.Type.GREATER_THAN)
private Integer organizeTaskNum;
@ApiModelProperty(value = "标签名称")
private List<String> labelNameList;
}

@ -11,6 +11,7 @@ import com.baiye.modules.system.domain.*;
import com.baiye.modules.system.repository.*;
import com.baiye.modules.system.service.OrganizeService;
import com.baiye.modules.system.service.RoleService;
import com.baiye.modules.system.service.UserMessageService;
import com.baiye.modules.system.service.UserService;
import com.baiye.modules.system.service.dto.*;
import com.baiye.modules.system.service.mapstruct.OrganizeMapper;
@ -18,10 +19,13 @@ import com.baiye.modules.system.service.mapstruct.OrganizeUserMapper;
import com.baiye.modules.system.service.mapstruct.TaskOrganizeMapper;
import com.baiye.util.*;
import com.google.common.collect.Lists;
import feign.FeignException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
@ -29,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service
@RequiredArgsConstructor
@ -48,6 +53,7 @@ public class OrganizeServiceImpl implements OrganizeService {
private final TaskOrganizeMapper taskOrganizeMapper;
private final RoleService roleService;
private final RedisUtils redisUtils;
private final UserMessageService userMessageService;
/**
*
@ -210,6 +216,7 @@ public class OrganizeServiceImpl implements OrganizeService {
@Override
@Transactional(rollbackFor = Exception.class)
public ResponseEntity<Object> saveOrganizeDistribution(OrganizeSaveDTO organizeSaveDTO) {
List<Long> userIdList = new ArrayList<>();
List<Long> organizeIdList = new ArrayList<>();
List<Double> weights = new ArrayList<>();
// 验证组是否重复
@ -243,6 +250,7 @@ public class OrganizeServiceImpl implements OrganizeService {
List<String> labelName = new ArrayList<>(new TreeSet<>(labelNameList));
task.setBaseLabel(labelName);
task.setIsDistribution(1);
task.setUpdateTime(new Date());
taskRepository.save(task);
// 分配任务引擎
DistributeDTO distributeDTO = new DistributeDTO();
@ -250,11 +258,16 @@ public class OrganizeServiceImpl implements OrganizeService {
distributeDTO.setResourceList(clueList);
List<DistributeResponseDTO> data;
distributeDTO.setWeights(weights);
distributeDTO.setIsWeight(true);
data = assignDataClient.dataDistribution(distributeDTO).getData();
// 线索更新
if (data != null && data.size() > 0) {
int index = 0;
for (DistributeResponseDTO distributeResponseDTO : data) {
if (distributeResponseDTO.getResponseList().size() <= 0 ){
String organizeName = organizeRepository.findOrganizeById(distributeResponseDTO.getDeptId()).getOrganizeName();
throw new BadRequestException(organizeName + "比例过低分配数不低于0");
}
sourceClueClient.batchUpdateOrganize(distributeResponseDTO);
// 添加小组-任务关联信息
int organizeTaskNum = distributeResponseDTO.getResponseList().size();
@ -269,8 +282,17 @@ public class OrganizeServiceImpl implements OrganizeService {
taskOrganize.setRemark(organizeList.get(index).getRemark());
index++;
taskOrganizeRepository.save(taskOrganize);
// 发送通知的用户id
OrganizeUser organizeUser = organizeUserRepository.findByOrganizeIdAndIsLeader(distributeResponseDTO.getDeptId(), true);
userIdList.add(organizeUser.getUserId());
}
}
//发送通知
userIdList.add(SecurityUtils.getCurrentUserId());
MessageNotification messageNotification = new MessageNotification();
messageNotification.setMessageType(2);
messageNotification.setMessageContext(task.getTaskName() + "分配成功");
userMessageService.createUserMessage(userIdList,messageNotification);
return new ResponseEntity<>(CommonResponse.createBySuccess(ResponseCode.SUCCESS), HttpStatus.OK);
}
@ -343,11 +365,13 @@ public class OrganizeServiceImpl implements OrganizeService {
@Override
public Map<String, Object> queryLeaderTaskList(TaskOrganizeQueryCriteria taskOrganizeQueryCriteria, Pageable pageable) {
PageRequest pageRequest = PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), Sort.by(Sort.Direction.DESC, "updateTime"));
Long currentUserId = SecurityUtils.getCurrentUserId();
Organize organize = organizeRepository.findOrganize(currentUserId);
if (organize != null) {
taskOrganizeQueryCriteria.setOrganizeId(organize.getId());
Page<TaskOrganize> page = taskOrganizeRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, taskOrganizeQueryCriteria, criteriaBuilder), pageable);
taskOrganizeQueryCriteria.setOrganizeTaskNum(1);
Page<TaskOrganize> page = taskOrganizeRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, taskOrganizeQueryCriteria, criteriaBuilder), pageRequest);
Page<TaskOrganizeDto> taskOrganizeDtos = page.map(taskOrganizeMapper::toDto);
for (TaskOrganizeDto taskOrganizeDto : taskOrganizeDtos) {
Task task = taskRepository.findById(taskOrganizeDto.getTaskId()).orElseGet(Task::new);
@ -387,18 +411,31 @@ public class OrganizeServiceImpl implements OrganizeService {
clueQueryCriteria.setOrganizeId(organizeId);
clueQueryCriteria.setUserIds(userIds);
clueQueryCriteria.setTaskId(taskId);
sourceClueClient.queryOrganizeIdList(clueQueryCriteria);
ResponseEntity<Long> rse = sourceClueClient.queryOrganizeIdList(clueQueryCriteria);
if (rse.getBody() != null) {
Long userId = rse.getBody();
UserDto user = userService.findById(userId);
throw new BadRequestException(user.getNickName() + "比例过低,分配数量不能低于0");
}
//修改小组任务信息
TaskOrganize updateTaskOrganize = taskOrganizeRepository.findByOrganizeIdAndTaskId(organizeId, taskId);
updateTaskOrganize.setTaskStatus(1);
updateTaskOrganize.setBeginTime(organizeMemberDistributionDTO.getBeginTime());
updateTaskOrganize.setEndTime(organizeMemberDistributionDTO.getEndTime());
updateTaskOrganize.setUpdateTime(new Date());
if (organizeMemberDistributionDTO.getSourceLabel() != null) {
List<String> sourceLabelList = organizeMemberDistributionDTO.getSourceLabel();
List<String> sourceLabe = new ArrayList<>(new TreeSet<>(sourceLabelList));
updateTaskOrganize.setOrganizeLabel(sourceLabe);
}
taskOrganizeRepository.save(updateTaskOrganize);
//发送通知
userIds.add(SecurityUtils.getCurrentUserId());
List<Long> userIdList = new ArrayList<>(userIds);
MessageNotification messageNotification = new MessageNotification();
messageNotification.setMessageType(2);
messageNotification.setMessageContext(updateTaskOrganize.getOrganizeTaskName() + "分配成功");
userMessageService.createUserMessage(userIdList,messageNotification);
return new ResponseEntity<>(CommonResponse.createBySuccess(ResponseCode.SUCCESS), HttpStatus.OK);
}

@ -22,6 +22,7 @@ import com.baiye.util.SecurityUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.http.HttpStatus;
@ -59,9 +60,9 @@ public class TaskServiceImpl implements TaskService {
*/
@Override
public Object queryAll(TaskQueryCriteria taskQueryCriteria, Pageable pageable) {
Long userId = SecurityUtils.getCurrentUserId();
taskQueryCriteria.setCreateBy(userId);
Page<Task> taskRepositoryAll = taskRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, taskQueryCriteria, criteriaBuilder), pageable);
PageRequest pageRequest = PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), Sort.by(Sort.Direction.DESC, "updateTime"));
taskQueryCriteria.setCreateBy(SecurityUtils.getCurrentUserId());
Page<Task> taskRepositoryAll = taskRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, taskQueryCriteria, criteriaBuilder), pageRequest);
Page<TaskDto> map = taskRepositoryAll.map(taskMapper::toDto);
for (TaskDto taskDto : map) {
//任务下的小组信息加入

@ -165,7 +165,7 @@ public class UserServiceImpl implements UserService {
user.setEmail(resources.getEmail());
user.setEnabled(resources.getEnabled());
user.setRoles(resources.getRoles());
user.setDept(resources.getDept());
// user.setDept(resources.getDept());
user.setJobs(resources.getJobs());
user.setPhone(resources.getPhone());
user.setNickName(resources.getNickName());

@ -70,8 +70,8 @@ public class ClueController {
@ApiOperation("小组id查询并分配组员资源")
@PostMapping("/queryOrganizeIdList")
public void queryOrganizeIdList(@RequestBody ClueQueryCriteria clueQueryCriteria) {
clueService.queryOrganizeIdList(clueQueryCriteria);
public ResponseEntity<Object> queryOrganizeIdList(@RequestBody ClueQueryCriteria clueQueryCriteria) {
return clueService.queryOrganizeIdList(clueQueryCriteria);
}
@ApiOperation("分页查询资源信息")

@ -9,6 +9,7 @@ import com.baiye.module.entity.ClueRecord;
import com.baiye.module.service.dto.ClueRecordCriteria;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@ -53,7 +54,7 @@ public interface ClueService {
* @param clueQueryCriteria
* @return
*/
void queryOrganizeIdList(ClueQueryCriteria clueQueryCriteria);
ResponseEntity<Object> queryOrganizeIdList(ClueQueryCriteria clueQueryCriteria);
/**
*

@ -21,6 +21,8 @@ import org.apache.commons.lang.StringUtils;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -92,7 +94,7 @@ public class ClueServiceImpl implements ClueService {
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void queryOrganizeIdList(ClueQueryCriteria clueQueryCriteria) {
public ResponseEntity<Object> queryOrganizeIdList(ClueQueryCriteria clueQueryCriteria) {
//查询此小组下的所有资源id
List<ClueMiddle> clueMiddleList = new ArrayList<>();
@ -114,6 +116,9 @@ public class ClueServiceImpl implements ClueService {
for (Map<Long, List<Long>> map : maps) {
for (Long userId : map.keySet()) {
List<Long> clueIdList = map.get(userId);
if (clueIdList.size() <= 0){
return new ResponseEntity<>(userId, HttpStatus.OK);
}
if (clueQueryCriteria.getMemberId() != null) {
clueMiddleRepository.updateUserIdExceptStatus(clueIdList, userId);
} else {
@ -122,6 +127,7 @@ public class ClueServiceImpl implements ClueService {
}
}
}
return new ResponseEntity<>(HttpStatus.OK);
}
/**

Loading…
Cancel
Save