|
|
|
|
@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
|
|
import com.biutag.core.AjaxResult; |
|
|
|
|
import com.biutag.entity.system.Dept; |
|
|
|
|
import com.biutag.enums.RoleEnum; |
|
|
|
|
import com.biutag.lan.config.AdminThreadLocal; |
|
|
|
|
import com.biutag.lan.domain.Mail; |
|
|
|
|
@ -24,6 +25,7 @@ import com.biutag.lan.flow.FlowNodeEnum;
|
|
|
|
|
import com.biutag.lan.mapper.MailLabelMapper; |
|
|
|
|
import com.biutag.lan.mapper.MailMapper; |
|
|
|
|
import com.biutag.lan.mapper.WorkMapper; |
|
|
|
|
import com.biutag.mapper.system.DeptMapper; |
|
|
|
|
import jakarta.annotation.Resource; |
|
|
|
|
import jakarta.servlet.http.HttpServletResponse; |
|
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
|
@ -53,6 +55,9 @@ public class WorkService extends ServiceImpl<WorkMapper, Work> {
|
|
|
|
|
@Resource |
|
|
|
|
private MailMapper mailMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private DeptMapper deptMapper; |
|
|
|
|
|
|
|
|
|
public boolean saveBatch(List<MailSource> mailSources) { |
|
|
|
|
LocalDateTime now = LocalDateTime.now(); |
|
|
|
|
List<Work> list = mailSources.stream().map(mail -> { |
|
|
|
|
@ -310,8 +315,20 @@ public class WorkService extends ServiceImpl<WorkMapper, Work> {
|
|
|
|
|
.eq(StrUtil.isNotBlank(mailQuery.getSource()), "m.source", mailQuery.getSource()) |
|
|
|
|
.eq(StrUtil.isNotBlank(mailQuery.getMailLevel()), "m.mail_level", mailQuery.getMailLevel()) |
|
|
|
|
.eq(StrUtil.isNotBlank(mailQuery.getMailCategory()), "m.mail_category", mailQuery.getMailCategory()) |
|
|
|
|
.like(StrUtil.isNotBlank(mailQuery.getThreeDeptName()), "m.three_dept_name", mailQuery.getThreeDeptName()) |
|
|
|
|
.eq(StrUtil.isNotBlank(mailQuery.getFlowKey()), "m.flow_key", mailQuery.getFlowKey()); |
|
|
|
|
if (StrUtil.isNotBlank(mailQuery.getDeptId())) { |
|
|
|
|
Dept dept = deptMapper.selectById(mailQuery.getDeptId()); |
|
|
|
|
switch (dept.getLevel()) { |
|
|
|
|
case 1: |
|
|
|
|
break; |
|
|
|
|
case 2: |
|
|
|
|
queryWrapper.eq("m.second_dept_id", dept.getId()); |
|
|
|
|
break; |
|
|
|
|
case 3: |
|
|
|
|
queryWrapper.eq("m.three_dept_id", dept.getId()); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (StrUtil.isNotBlank(mailQuery.getMailLabels())) { |
|
|
|
|
List<String> labelIds = mailQuery.handleMailLabels(); |
|
|
|
|
for (String labelId : labelIds) { |
|
|
|
|
@ -373,11 +390,23 @@ public class WorkService extends ServiceImpl<WorkMapper, Work> {
|
|
|
|
|
.eq(StrUtil.isNotBlank(mailQuery.getSource()), "m.source", mailQuery.getSource()) |
|
|
|
|
.eq(StrUtil.isNotBlank(mailQuery.getMailLevel()), "m.mail_level", mailQuery.getMailLevel()) |
|
|
|
|
.eq(StrUtil.isNotBlank(mailQuery.getMailCategory()), "m.mail_category", mailQuery.getMailCategory()) |
|
|
|
|
.like(StrUtil.isNotBlank(mailQuery.getThreeDeptName()), "m.three_dept_name", mailQuery.getThreeDeptName()) |
|
|
|
|
// .eq(StrUtil.isNotBlank(todoQuery.getAppealState()), "m.appeal_state", todoQuery.getAppealState())
|
|
|
|
|
.eq("m.satisfaction_status", "不满意") |
|
|
|
|
.or() |
|
|
|
|
.eq("m.verify_feedback", "不满意"); |
|
|
|
|
if (StrUtil.isNotBlank(mailQuery.getDeptId())) { |
|
|
|
|
Dept dept = deptMapper.selectById(mailQuery.getDeptId()); |
|
|
|
|
switch (dept.getLevel()) { |
|
|
|
|
case 1: |
|
|
|
|
break; |
|
|
|
|
case 2: |
|
|
|
|
queryWrapper.eq("m.second_dept_id", dept.getId()); |
|
|
|
|
break; |
|
|
|
|
case 3: |
|
|
|
|
queryWrapper.eq("m.three_dept_id", dept.getId()); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
roleCheck(queryWrapper); |
|
|
|
|
if (StrUtil.isNotBlank(mailQuery.getContactField()) && StrUtil.isNotBlank(mailQuery.getContactFieldValue())) { |
|
|
|
|
switch (mailQuery.getContactField()) { |
|
|
|
|
@ -406,20 +435,13 @@ public class WorkService extends ServiceImpl<WorkMapper, Work> {
|
|
|
|
|
private void roleCheck(QueryWrapper<Mail> queryWrapper) { |
|
|
|
|
Integer roleId = AdminThreadLocal.getRoleId(); |
|
|
|
|
// 与角色相关的件
|
|
|
|
|
if (roleId.equals(RoleEnum.MUNICIPAL_DEPT_CLASSES.getRoleId()) || |
|
|
|
|
roleId.equals(RoleEnum.SECOND_DEPT_CLASSES.getRoleId()) || |
|
|
|
|
roleId.equals(RoleEnum.THREE_DEPT_CLASSES.getRoleId())) { |
|
|
|
|
Integer deptId = AdminThreadLocal.getDeptId(); |
|
|
|
|
queryWrapper.eq("w.sign_role_id", roleId) |
|
|
|
|
// 如果不是市局专班,则需要查询签收部门ID
|
|
|
|
|
.eq(!RoleEnum.MUNICIPAL_DEPT_CLASSES.getRoleId().equals(roleId), "w.sign_dept_id", deptId); |
|
|
|
|
} else if (roleId.equals(RoleEnum.MUNICIPAL_DEPT_LEADER.getRoleId())) { |
|
|
|
|
//空操作
|
|
|
|
|
} else if (roleId.equals(RoleEnum.SECOND_DEPT_LEADER.getRoleId())) { |
|
|
|
|
if (roleId.equals(RoleEnum.MUNICIPAL_DEPT_LEADER.getRoleId()) || roleId.equals(RoleEnum.MUNICIPAL_DEPT_CLASSES.getRoleId())) { |
|
|
|
|
//市局领导和市局专班可以看到所有数据
|
|
|
|
|
} else if (roleId.equals(RoleEnum.SECOND_DEPT_LEADER.getRoleId()) || roleId.equals(RoleEnum.SECOND_DEPT_CLASSES.getRoleId())) { |
|
|
|
|
//数据,领导只能看到自己管辖的部门
|
|
|
|
|
Integer deptId = AdminThreadLocal.getDeptId(); |
|
|
|
|
queryWrapper.eq("m.second_dept_id", deptId); |
|
|
|
|
} else if (roleId.equals(RoleEnum.THREE_DEPT_LEADER.getRoleId())) { |
|
|
|
|
} else if (roleId.equals(RoleEnum.THREE_DEPT_LEADER.getRoleId()) || roleId.equals(RoleEnum.THREE_DEPT_CLASSES.getRoleId())) { |
|
|
|
|
Integer deptId = AdminThreadLocal.getDeptId(); |
|
|
|
|
queryWrapper.eq("m.three_dept_id", deptId); |
|
|
|
|
} else { |
|
|
|
|
|