调整技术-今日事务

This commit is contained in:
DB 2023-12-04 14:22:09 +08:00
parent eae10871e0
commit de7e7d72e7
31 changed files with 475 additions and 798 deletions

View File

@ -83,9 +83,11 @@ public class GlobalExceptionHandler {
/**
* 系统异常
* @param e
* @param request
* @return
* @author DB
* @since 2023/12/04
* @param e 异常
* @param request 请求
* @return R
*/
@ExceptionHandler(Exception.class)
public R handleException(Exception e, HttpServletRequest request) {
@ -94,5 +96,4 @@ public class GlobalExceptionHandler {
return R.fail(e.getMessage());
}
//TODO:可以自行后续拓展
}

View File

@ -31,7 +31,6 @@ public class SysOperationLogListen {
// 保存日志
operationLog.setId(IdUtils.fastSimpleUUID());
if (coreService.saveOperationLog(operationLog)) {
//TODO后续可自定义其他操作
}
}
}

View File

@ -73,7 +73,6 @@ public class CoreServiceImpl implements CoreService {
operationLog.setCreateUserId(loginUser.getUserId());
operationLog.setUpdateUserId(loginUser.getUserId());
if (coreMapper.insertOperationLog(operationLog)) {
//TODO:后续可自定义其他操作
}
return operationLog.getId();
}

View File

@ -14,40 +14,5 @@ import org.springframework.stereotype.Service;
*/
@Service("brandExtendService")
public class BrandExtendServiceImpl extends ServiceImpl<BrandExtendMapper, BrandExtend> implements BrandExtendService {
/**
* @descriptions 查询品牌分页列表
* @author DB
* @date 2023/09/13 17:55
* @param bo 请求参数
* @return com.cpop.core.base.R<com.mybatisflex.core.paginate.Page<com.cpop.jambox.business.vo.BrandPageVo>>
*/
/*@Override
public Page<BrandPageVo> getBrandPage(BrandPageBo bo) {
PageDomain pageDomain = SqlUtils.getInstance().getPageDomain();
return this.mapper.paginateAs(pageDomain.getPageNum(),pageDomain.getPageSize(),
QueryWrapper.create()
.select(BRAND.ID,BRAND.BRAND_CLOUD_ID,BRAND.NAME,BRAND.CREATE_TIME,BRAND.BACKGROUND_URL,BRAND.CONSULTANT_NAME)
.select(groupConcat(BRAND_STAFF_MID_CAMPUS.BRAND_STAFF_ID).as(BrandPageVo::getBrandStaffId))
.select(groupConcat(BRAND_STAFF.NAME).as(BrandPageVo::getBrandStaffName))
//管理员-品牌-校区表
.leftJoin(BRAND_STAFF_MID_CAMPUS).on(BRAND_STAFF_MID_CAMPUS.BRAND_ID.eq(BRAND.ID))
//管理员
.leftJoin(BRAND_STAFF).on(BRAND_STAFF.ID.eq(BRAND_STAFF_MID_CAMPUS.BRAND_STAFF_ID))
.and(BRAND.NAME.like(bo.getName()))
.groupBy(BRAND.ID),
BrandPageVo.class);
}*/
/**
* @descriptions 修改品牌表
* @author DB
* @date 2023/09/14 11:40
* @param bo 请求参数
*/
/*@Override
public void updateBrand(BrandBo bo) {
Brand entity = BeanUtils.mapToClass(bo, Brand.class);
this.updateById(entity);
//TODO:可能需要通知到云库
}*/
}

View File

@ -1,151 +0,0 @@
package com.cpop.mall.web;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ContentLoopMerge;
import lombok.Data;
import org.springframework.boot.test.context.SpringBootTest;
/**
* @author DB
* @createTime 2023/11/15 17:15
* @description CBC相关测试类
*/
@SpringBootTest
public class CpopCbcTests {
private final String FILE_NAME = "C:/Users/Administrator/Desktop/常规赛1v1对战信息" + System.currentTimeMillis() + ".xlsx";
/**
* @descriptions 导出比赛结果
* @author DB
* @date 2023/11/15 17:16
* @return: void
*/
public void exportGameResult() {
//TODO:获取数据
//EasyExcel.write(FILE_NAME, GameResult.class).sheet("常规赛1v1对战信息").doWrite(data());
}
/**
* 比赛结果
*/
@Data
public class GameResult {
/**
* 场次
*/
@ContentLoopMerge(eachRow = 10)
@ExcelProperty("场次")
private String session;
/**
* "类型", "常规/OneMore"
*/
@ExcelProperty({"类型", "常规/OneMore"})
private String type;
/**
* 舞种
*/
@ExcelProperty("舞种")
private String danceType;
/**
* 轮次
*/
@ExcelProperty("轮次")
private String turn;
/**
* "战队A", "战队"
*/
@ExcelProperty({"战队A", "战队"})
private String teamA;
/**
* "战队A", "舞者"
*/
@ExcelProperty({"战队A", "舞者"})
private String userA;
/**
* "战队B", "战队"
*/
@ExcelProperty({"战队B", "战队"})
private String teamB;
/**
* "战队B", "舞者"
*/
@ExcelProperty({"战队B", "舞者"})
private String userB;
/**
* 胜负
*/
@ExcelProperty("胜负")
private String winUser;
/**
* 主裁
*/
@ExcelProperty({"主裁", "名称"})
private String masterReferee;
/**
* "主裁", "打分"
*/
@ExcelProperty({"主裁", "打分"})
private String masterRefereeMark;
/**
* "副裁一", "名称"
*/
@ExcelProperty({"副裁一", "名称"})
private String slaveRefereeA;
/**
* "副裁一", "打分"
*/
@ExcelProperty({"副裁一", "打分"})
private String slaveRefereeAMark;
/**
* "副裁二", "名称"
*/
@ExcelProperty({"副裁二", "名称"})
private String slaveRefereeB;
/**
* "副裁二", "打分"
*/
@ExcelProperty({"副裁二", "打分"})
private String slaveRefereeBMark;
/**
* "副裁三", "名称"
*/
@ExcelProperty({"副裁三", "名称"})
private String slaveRefereeC;
/**
* "副裁三", "打分"
*/
@ExcelProperty({"副裁三", "打分"})
private String slaveRefereeCMark;
/**
* "副裁四", "名称"
*/
@ExcelProperty({"副裁四", "名称"})
private String slaveRefereeD;
/**
* "副裁四", "打分"
*/
@ExcelProperty({"副裁四", "打分"})
private String slaveRefereeDMark;
}
}

View File

@ -111,7 +111,7 @@ public class StaffBo implements Serializable {
/**
* 角色id
*/
//TODO:@NotBlank(message = "角色id不能为空")
@NotBlank(message = "角色id不能为空")
@ApiModelProperty(value = "角色id",required = true)
private String roleId;

View File

@ -131,8 +131,7 @@ public class StaffServiceImpl extends ServiceImpl<StaffMapper, Staff> implements
}
//获取品牌信息
Brand brand = SpringUtils.getBean(BrandService.class).queryChain().where(BRAND.ID.eq(roleBrand.getBrandId())).one();
//TODO:角色暂时不做处理,都是超级管理员
//roleBrand.setRoleId(bo.getRoleId());
roleBrand.setRoleId(bo.getRoleId());
//设置中间表
roleBrandService.save(roleBrand);
staff.setUserId(sysUser.getId())

View File

@ -273,7 +273,6 @@ public class CpopWxCpTests {
exportUsers.forEach(item -> {
//创建用户
SysUser sysUser = new SysUser();
//TODO:获取初始化密码
sysUser.setId(IdUtils.fastSimpleUUID());
sysUser.setPassword("$2a$10$6CA0M3iyO8u8zSVtmufYGO3KfLvjaE5fxdHCqTQ2NpxYH/Dxi/fBu")
.setNickName(item.getAlias())

View File

@ -1,44 +0,0 @@
package com.cpop.oam.business.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDate;
/**
* Description:
* date: 2023/5/15 16:20
*
* @Author ST
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "Task列表分页查询对象", description = "OAM-任务")
public class PersonTaskPageBo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 周一
*/
@JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
@ApiModelProperty("周一")
private LocalDate monday;
/**
* 周末
*/
@JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
@ApiModelProperty("周末")
private LocalDate sunday;
/**
* 任务状态
*/
@ApiModelProperty("任务状态")
private Integer taskStatus;
}

View File

@ -29,17 +29,11 @@ public class TaskAuditCommentsBo {
private String id;
/**
* 备注
* 是否通过
*/
@ApiModelProperty("备注")
private String remark;
/**
* 预期完成日期
*/
@ApiModelProperty("预期完成日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate expectedCompletionDate;
@NotNull(message = "是否通过不能为空")
@ApiModelProperty(value = "是否通过", required = true)
private Boolean isPass;
/**
* 任务评级(0:A;1:B;2:C;3:D;4:E)
@ -47,4 +41,9 @@ public class TaskAuditCommentsBo {
@ApiModelProperty("任务评级(0:A;1:B;2:C;3:D;4:E)")
private Integer taskRating;
/**
* 备注(不通过时可以写入备注)
*/
@ApiModelProperty("备注(不通过时可以写入备注)")
private String remark;
}

View File

@ -1,31 +0,0 @@
package com.cpop.oam.business.bo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* OAM-任务-关联员工任务组表Bo
*
* @author DB.lost
* @since 2023-05-22
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "TaskStaffGroup对象", description = "OAM-任务-关联员工任务组表")
public class TaskStaffGroupListBo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@NotBlank(message = "不能为空")
@ApiModelProperty(value = "任务id",required = true)
private String taskId;
}

View File

@ -17,9 +17,7 @@ import java.io.Serializable;
@Data
@Accessors(chain = true)
@ApiModel(value = "Task转交对象", description = "Task转交对象")
public class TransferTaskBo implements Serializable {
private static final long serialVersionUID = 1L;
public class TransferTaskBo {
/**
* 主键

View File

@ -16,6 +16,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.cpop.oam.business.service.TaskWorkOrderService;
/**
@ -43,6 +44,7 @@ public class TaskTechnologyController {
/**
* 技术模块-今日事务-获取个人工单列表
*
* @author DB
* @since 2023-11-30 19:41:32
*/
@ -56,182 +58,179 @@ public class TaskTechnologyController {
/**
* 工单模块-今日事务-工单记录列表
* @author DB
*
* @param workOrderId 工单id
* @author DB
* @since 2023-11-29 11:25:28
*/
@PreAuthorize("@aps.hasPermission('oamTask:workOrder:record')")
@ApiOperation("技术模块-今日事务-工单记录列表")
@GetMapping("/getWorkOrderRecordList/{workOrderId}")
public R<List<TaskWorkOrderRecordListVo>> getWorkOrderRecordList(@PathVariable @ApiParam("工单id")
String workOrderId) {
String workOrderId) {
List<TaskWorkOrderRecordListVo> list = taskWorkOrderService.getWorkOrderRecordList(workOrderId);
return R.ok(list);
}
/**
* 工单模块-今日事务-新增工单记录
* @author DB
*
* @param bo 请求参数
* @author DB
* @since 2023-11-29 11:33:35
*/
@PreAuthorize("@aps.hasPermission('oamTask:workOrder:record')")
@ApiOperation("技术模块-今日事务-新增工单记录")
@PostMapping("/insertWorkOrderRecord")
public R<Void> insertWorkOrderRecord(@RequestBody @Validated
TaskWorkOrderRecordBo bo) {
TaskWorkOrderRecordBo bo) {
//是否是第一个
taskWorkOrderService.whetherReceive(bo.getTaskWorkOrderId());
taskWorkOrderService.insertWorkOrderRecord(bo);
return R.ok();
}
/**
* 技术模块-任务归档-获取任务归档分页
* @author DB
* @param subject 主体
*
* @param subject 主体
* @param taskContent 任务内容
* @author DB
* @since 2023-11-30 21:11:47
*/
@PreAuthorize("@aps.hasPermission('oamTask:taskArchiving:list')")
@ApiOperation("技术模块-任务归档-获取任务归档分页")
@GetMapping("/getTaskArchivingPage")
public R<Page<TaskArchivingPagVo>> getTaskArchivingPage(@ApiParam(value = "主体")
String subject, @ApiParam(value = "任务内容")
String taskContent, @RequestParam("isFinish") @ApiParam(value = "是否已归档", required = true)
Boolean isFinish) {
String subject, @ApiParam(value = "任务内容")
String taskContent, @RequestParam("isFinish") @ApiParam(value = "是否已归档", required = true)
Boolean isFinish) {
Page<TaskArchivingPagVo> page = taskService.getTaskArchivingPage(subject, taskContent, isFinish);
return R.ok(page);
}
/**
* 技术模块-任务归档-设置任务归档
* @author DB
*
* @param taskId 任务id
* @author DB
* @since 2023-11-30 21:49:05
*/
@PreAuthorize("@aps.hasPermission('oamTask:taskArchiving:update')")
@ApiOperation("技术模块-任务归档-设置任务归档")
@PutMapping("/setTaskArchiving/{taskId}")
public R<Void> setTaskArchiving(@PathVariable @ApiParam("任务id")
String taskId) {
String taskId) {
taskService.setTaskArchiving(taskId);
return R.ok();
}
/**
* 技术模块-任务领取-获取领取任务分页
*
* @param subject 主体
* @param taskContent 任务内容
* @param taskGetStatus 任务领取状态(0:待领取;1:待评估;10:审核不通过)
* @author DB
* @param subject 主体
* @param taskContent 任务内容
* @param toBeEvaluated 是否待评估
* @since 2023-11-30 22:21:58
*/
@PreAuthorize("@aps.hasPermission('oamTask:task:list')")
@ApiOperation("技术模块-任务领取-获取领取任务分页")
@GetMapping("/getToBeClaimedPage")
public R<Page<TaskToBeClaimedPageVo>> getToBeClaimedPage(@ApiParam(value = "主体")
String subject, @ApiParam(value = "任务内容")
String taskContent, @RequestParam("toBeEvaluated") @ApiParam(value = "是否待评估", required = true)
Boolean toBeEvaluated) {
Page<TaskToBeClaimedPageVo> list = taskService.getToBeClaimedPage(subject, taskContent, toBeEvaluated);
String subject, @ApiParam(value = "任务内容")
String taskContent, @RequestParam("taskGetStatus") @ApiParam(value = "任务领取状态(0:待领取;1:待评估;2:审核不通过)", required = true)
Integer taskGetStatus) {
Page<TaskToBeClaimedPageVo> list = taskService.getToBeClaimedPage(subject, taskContent, taskGetStatus);
return R.ok(list);
}
/**
* 技术模块-任务领取-新增迭代任务
* @author DB
*
* @param bo 请求
* @author DB
* @since 2023-12-01 09:45:08
*/
@PreAuthorize("@aps.hasPermission('oamTask:iterateTask:insert')")
@ApiOperation("技术模块-任务领取-新增迭代任务")
@PostMapping("/insertIterationTask")
public R<Void> insertIterationTask(@RequestBody @Validated
TaskIterationBo bo) {
TaskIterationBo bo) {
taskService.insertIterationTask(bo);
return R.ok();
}
/**
* 技术模块-任务领取-技术人员领取任务
* @author DB
*
* @param id 任务id
* @author DB
* @since 2023-12-01 10:15:28
*/
@PreAuthorize("@aps.hasPermission('oamTask:iterateTask:update')")
@ApiOperation("技术模块-任务领取-技术人员领取任务")
@PutMapping("/claimTask/{id}")
public R<Void> claimTask(@PathVariable @ApiParam("任务id")
String id) {
String id) {
taskService.claimTask(id);
return R.ok();
}
/**
* 技术模块-任务领取-任务审核
* @author DB
*
* @param bo 请求参数
* @author DB
* @since 2023-12-01 10:35:31
*/
@PreAuthorize("@aps.hasPermission('oamTask:taskAudit:update')")
@ApiOperation("技术模块-任务领取-任务审核")
@PutMapping("/setTaskAuditComments")
public R<Void> setTaskAuditComments(@RequestBody @Validated
TaskAuditCommentsBo bo) {
TaskAuditCommentsBo bo) {
taskService.setTaskAuditComments(bo);
return R.ok();
}
/**
* @Description: 删除任务
* @param id 主键
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/19 18:03
**/
@PreAuthorize("@aps.hasPermission('oamTask:task:remove')")
@ApiOperation("删除任务")
@DeleteMapping("/removeTask/{id}")
public R<Void> removeTask(@PathVariable
String id) {
taskService.removeById(id);
return R.ok();
}
/**
* @Description: 查询OAM-个人任务分页列表
* @return: R<PageVo<PersonTaskPageListVo>>
* @Author: DB
* @Date: 2023/5/16 15:24
**/
* 技术模块-今日事务-个人任务分页列表
*
* @return R<Page < PersonTaskPageVo>>
* @author DB
* @since 2023/12/04
*/
@PreAuthorize("@aps.hasPermission('oamTask:task:list')")
@ApiOperation("个人任务分页列表")
@ApiOperation("技术模块-今日事务-个人任务分页列表")
@GetMapping("/getPersonTaskPage")
public R<Page<PersonTaskPageVo>> getPersonTaskPage(PersonTaskPageBo bo) {
Page<PersonTaskPageVo> list = taskService.getPersonTaskPage(bo);
public R<Page<PersonTaskPageVo>> getPersonTaskPage() {
Page<PersonTaskPageVo> list = taskService.getPersonTaskPage();
return R.ok(list);
}
/**
* @Description: 查询OAM-任务成员组列表
* @return: R<PageVo<PersonTaskPageListVo>>
* @Author: DB
* @Date: 2023/5/16 15:24
**/
@ApiOperation("任务成员组列表")
@GetMapping("/getTaskStaffGroupList")
public R<List<TaskStaffGroupVo>> getTaskStaffGroupList(@Validated
TaskStaffGroupListBo bo) {
List<TaskStaffGroupVo> list = taskStaffGroupService.getTaskStaffGroupList(bo);
* 技术模块-今日事务-任务成员组列表
*
* @param taskId 任务id
* @return R<List < TaskStaffGroupVo>>
* @author DB
* @since 2023/12/04
*/
@ApiOperation("技术模块-今日事务-任务成员组列表")
@GetMapping("/getTaskStaffGroupList/{taskId}")
public R<List<TaskStaffGroupVo>> getTaskStaffGroupList(@PathVariable String taskId) {
List<TaskStaffGroupVo> list = taskStaffGroupService.getTaskStaffGroupList(taskId);
return R.ok(list);
}
/**
* @Description: 查询技术员工列表
* @return: R<PageVo<StaffPageVo>>
* @Author: DB
* @Date: 2023/5/11 17:50
**/
@ApiOperation("查询技术员工列表")
* 技术模块-今日事务-查询技术员工列表
*
* @return R<List < StaffVo>>
* @author DB
* @since 2023/12/04
*/
@ApiOperation("技术模块-今日事务-查询技术员工列表")
@GetMapping("/getTechnologyStaffList")
public R<List<StaffVo>> getTechnologyStaffList() {
List<StaffVo> list = staffService.getTechnologyStaffList();
@ -239,83 +238,89 @@ public class TaskTechnologyController {
}
/**
* @Description: 新增任务员工组
* 技术模块-今日事务-新增任务小组成员
*
* @param bo 请求参数
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/16 15:58
**/
@ApiOperation("新增任务小组成员")
* @return R<Void>
* @author DB
* @since 2023/12/04
*/
@ApiOperation("技术模块-今日事务-新增任务小组成员")
@PostMapping("/insertTaskStaffGroup")
public R<Void> insertTaskStaffGroup(@RequestBody @Validated
TaskStaffGroupBo bo) {
TaskStaffGroupBo bo) {
taskStaffGroupService.insertTaskStaffGroup(bo);
return R.ok();
}
/**
* @Description: 修改员工任务绩点
* 技术模块-今日事务-修改任务负责人
*
* @param bo 请求参数
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/29 11:48
**/
@ApiOperation("修改员工任务绩点")
@PutMapping("/updateStaffGradePoint")
public R<Void> updateStaffGradePoint(@RequestBody @Validated
TaskStaffGroupBo bo) {
taskStaffGroupService.updateStaffGradePoint(bo);
return R.ok();
}
/**
* @Description: 删除成员组
* @param id 主键
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/29 14:18
**/
@ApiOperation("删除成员组")
@DeleteMapping("/removeTaskStaffGroup/{id}")
public R<Void> removeTaskStaffGroup(@PathVariable
String id) {
taskStaffGroupService.removeTaskStaffGroupById(id);
return R.ok();
}
/**
* @Description: 修改任务进度
* @param bo 请求参数
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/29 14:58
**/
@ApiOperation("修改任务进度")
@PutMapping("/updateTaskItem")
public R<Void> updateTaskItem(@RequestBody @Validated
TaskItemBo bo) {
taskService.updateTaskItem(bo);
return R.ok();
}
/**
* @Description: 修改任务负责人
* @param bo 请求参数
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/29 14:58
**/
@ApiOperation("修改任务负责人")
* @return R<Void>
* @author DB
* @since 2023/12/04
*/
@ApiOperation("技术模块-今日事务-修改任务负责人")
@PutMapping("/updateTaskResponsibleStaff")
public R<Void> updateTaskResponsibleStaff(@RequestBody @Validated
TransferTaskBo bo) {
TransferTaskBo bo) {
taskService.updateTaskResponsibleStaff(bo);
return R.ok();
}
/**
* @Description: 完成任务
* 技术模块-今日事务-修改员工任务绩点
*
* @param bo 请求参数
* @return R<Void>
* @author DB
* @since 2023/12/04
*/
@ApiOperation("技术模块-今日事务-修改员工任务绩点")
@PutMapping("/updateStaffGradePoint")
public R<Void> updateStaffGradePoint(@RequestBody @Validated
TaskStaffGroupBo bo) {
taskStaffGroupService.updateStaffGradePoint(bo);
return R.ok();
}
/**
* 技术模块-今日事务-删除成员组
*
* @param id 任务组id
* @return R<Void>
* @author DB
* @since 2023/12/04
*/
@ApiOperation("技术模块-今日事务-删除成员组")
@DeleteMapping("/removeTaskStaffGroup/{id}")
public R<Void> removeTaskStaffGroup(@PathVariable
String id) {
taskStaffGroupService.removeTaskStaffGroupById(id);
return R.ok();
}
/**
* @param bo 请求参数
* @Description: 修改任务进度
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/29 14:58
**/
@ApiOperation("技术模块-今日事务-转交任务")
@PutMapping("/updateTaskItem")
public R<Void> updateTaskItem(@RequestBody @Validated
TaskItemBo bo) {
taskService.updateTaskItem(bo);
return R.ok();
}
/**
* @param id 主键
* @Description: 完成任务
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/31 16:24
@ -324,15 +329,15 @@ public class TaskTechnologyController {
@ApiOperation("完成任务")
@PutMapping("/finishTask/{id}")
public R<Void> finishTask(@PathVariable
String id) {
String id) {
taskService.finishTask(id);
return R.ok();
}
/**
* @Description: 获取月度任务统计列表
* @param bo 请求参数
* @return: R<List<TaskListVo>>
* @Description: 获取月度任务统计列表
* @return: R<List < TaskListVo>>
* @Author: DB
* @Date: 2023/5/15 16:42
**/

View File

@ -64,7 +64,6 @@ public class TaskWorkOrderController {
* 工单模块-工单提交-获取当天值班人员
* @author DB
* @since 2023-11-29 14:01:03
* @version 1.0.0
*/
@PreAuthorize("@aps.hasPermission('oamTask:workOrder:list')")
@ApiOperation("工单模块-工单提交-获取当天值班人员")
@ -78,7 +77,6 @@ public class TaskWorkOrderController {
* 工单模块-工单提交-已办结分页列表
* @author DB
* @since 2023-11-29 14:35:08
* @version 1.0.0
*/
@PreAuthorize("@aps.hasPermission('oamTask:workOrder:list')")
@ApiOperation("工单模块-工单提交-已办结分页列表")
@ -109,7 +107,6 @@ public class TaskWorkOrderController {
* @author DB
* @param workOrderId 工单id
* @since 2023-11-29 11:25:28
* @version 1.0.0
*/
@PreAuthorize("@aps.hasPermission('oamTask:workOrder:record')")
@ApiOperation("工单模块-工单提交-工单记录列表")
@ -125,7 +122,6 @@ public class TaskWorkOrderController {
* @author DB
* @param bo 请求参数
* @since 2023-11-29 11:33:35
* @version 1.0.0
*/
@PreAuthorize("@aps.hasPermission('oamTask:workOrder:record')")
@ApiOperation("工单模块-工单提交-新增工单记录")
@ -141,7 +137,6 @@ public class TaskWorkOrderController {
* @author DB
* @param workOrderId 工单id
* @since 2023-11-29 11:41:46
* @version 1.0.0
*/
@PreAuthorize("@aps.hasPermission('oamTask:workOrder:record')")
@ApiOperation("工单模块-工单提交-工单提醒")
@ -157,7 +152,6 @@ public class TaskWorkOrderController {
* @author DB
* @param workOrderId 工单id
* @since 2023-11-29 12:30:21
* @version 1.0.0
*/
@Deprecated
@PreAuthorize("@aps.hasPermission('oamTask:workOrder:update')")
@ -174,7 +168,6 @@ public class TaskWorkOrderController {
* @author DB
* @param bo 请求参数
* @since 2023-11-29 16:00:18
* @version 1.0.0
*/
@PreAuthorize("@aps.hasPermission('oamTask:workOrder:update')")
@ApiOperation("工单模块-工单提交-工单暂停")
@ -190,7 +183,6 @@ public class TaskWorkOrderController {
* @author DB
* @param workOrderId 工单id
* @since 2023-11-29 15:44:08
* @version 1.0.0
*/
@PreAuthorize("@aps.hasPermission('oamTask:workOrder:update')")
@ApiOperation("工单模块-工单提交-工单办结")
@ -211,8 +203,7 @@ public class TaskWorkOrderController {
@GetMapping("/getBrandList")
public R<List<BrandListVo>> getBrandList(@ApiParam("品牌名")
String brandName) {
List<BrandListVo> list =
brandService.queryChain().and(BRAND.BRAND_NAME.like(brandName)).listAs(BrandListVo.class);
List<BrandListVo> list = brandService.queryChain().and(BRAND.BRAND_NAME.like(brandName)).listAs(BrandListVo.class);
return R.ok(list);
}

View File

@ -45,7 +45,7 @@ public class Task extends BaseEntity implements Serializable {
private String responsibleStaffId;
/**
* 任务状态(-1:失败;0:待审核;1:待接受;2:进行中;3:已完成;4:逾期;5:暂停;6:逾期完成;7:接收超时;8:待部署;9:待归档)
* 任务状态(-1:失败;0:待审核;1:待接受;2:进行中;3:已完成;4:逾期;5:暂停;6:逾期完成;7:接收超时;8:待部署;9:待归档;10:审核不通过)
*/
private Integer taskStatus;

View File

@ -105,20 +105,11 @@ public interface StaffService extends IService<Staff> {
List<StaffVo> getServiceStaffList();
/**
* @Description: 查询技术员工列表
* @return: R<PageVo<StaffPageVo>>
* @Author: DB
* @Date: 2023/5/11 17:50
**/
* 技术模块-今日事务-查询技术员工列表
* @author DB
* @since 2023/12/04
* @return List<StaffVo>
*/
List<StaffVo> getTechnologyStaffList();
/**
* @descriptions 创建企业微信用户
* @author DB
* @date 2023/10/13 14:31
* @param wxMessage 企业微信用户信息
* @return: void
*/
void createWxCpUser(WxCpXmlMessage wxMessage, WxCpService cpService);
}

View File

@ -39,10 +39,10 @@ public interface TaskService extends IService<Task> {
* @author DB
* @param subject 主体
* @param taskContent 任务内容
* @param toBeEvaluated 是否待评估
* @param taskGetStatus 任务领取状态(0:待领取;1:待评估;10:审核不通过)
* @since 2023-11-30 22:21:58
*/
Page<TaskToBeClaimedPageVo> getToBeClaimedPage(String subject, String taskContent, Boolean toBeEvaluated);
Page<TaskToBeClaimedPageVo> getToBeClaimedPage(String subject, String taskContent, Integer taskGetStatus);
/**
* 技术模块-任务领取-新增迭代任务
@ -69,12 +69,12 @@ public interface TaskService extends IService<Task> {
void setTaskAuditComments(TaskAuditCommentsBo bo);
/**
* @Description: 查询OAM-个人任务分页列表
* @return: R<PageVo<PersonTaskPageListVo>>
* @Author: DB
* @Date: 2023/5/16 15:24
**/
Page<PersonTaskPageVo> getPersonTaskPage(PersonTaskPageBo bo);
* 技术模块-今日事务-个人任务分页列表
* @author DB
* @since 2023/12/04
* @return Page<PersonTaskPageVo>
*/
Page<PersonTaskPageVo> getPersonTaskPage();
/**
* @Description: 修改任务进度
@ -86,12 +86,11 @@ public interface TaskService extends IService<Task> {
void updateTaskItem(TaskItemBo bo);
/**
* @Description: 修改任务负责人
* 技术模块-今日事务-修改任务负责人
* @author DB
* @since 2023/12/04
* @param bo 请求参数
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/29 14:58
**/
*/
void updateTaskResponsibleStaff(TransferTaskBo bo);
/**

View File

@ -2,7 +2,6 @@ package com.cpop.oam.business.service;
import com.mybatisflex.core.service.IService;
import com.cpop.oam.business.bo.TaskStaffGroupBo;
import com.cpop.oam.business.bo.TaskStaffGroupListBo;
import com.cpop.oam.business.entity.TaskStaffGroup;
import com.cpop.oam.business.vo.TaskStaffGroupVo;
@ -17,37 +16,35 @@ import java.util.List;
public interface TaskStaffGroupService extends IService<TaskStaffGroup> {
/**
* @Description: 查询OAM-任务成员组列表
* @return: R<PageVo<PersonTaskPageListVo>>
* @Author: DB
* @Date: 2023/5/16 15:24
**/
List<TaskStaffGroupVo> getTaskStaffGroupList(TaskStaffGroupListBo bo);
* 技术模块-今日事务-任务成员组列
* @author DB
* @since 2023/12/04
* @param taskId 任务id
* @return List<TaskStaffGroupVo>
*/
List<TaskStaffGroupVo> getTaskStaffGroupList(String taskId);
/**
* @Description: 新增任务员工组
* 技术模块-今日事务-新增任务小组成员
* @author DB
* @since 2023/12/04
* @param bo 请求参数
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/16 15:58
**/
*/
void insertTaskStaffGroup(TaskStaffGroupBo bo);
/**
* @Description: 修改员工任务绩点
* 技术模块-今日事务-修改员工任务绩点
* @author DB
* @since 2023/12/04
* @param bo 请求参数
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/29 11:48
**/
*/
void updateStaffGradePoint(TaskStaffGroupBo bo);
/**
* @Description: 删除成员组
* @param id 主键
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/29 14:18
**/
* 技术模块-今日事务-删除成员组
* @author DB
* @since 2023/12/04
* @param id 任务组id
*/
void removeTaskStaffGroupById(String id);
}

View File

@ -34,7 +34,6 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* 工单模块-工单提交-获取当天值班人员
* @author DB
* @since 2023-11-29 14:01:03
* @version 1.0.0
*/
WorkOrderDutyVo getWorkOrderDutyStaff();
@ -42,14 +41,12 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* 工单模块-工单提交-已办结分页列表
* @author DB
* @since 2023-11-29 14:35:08
* @version 1.0.0
*/
Page<TaskWorkOrderPageVo> finishWorkOrderPage();
/**
* 工单模块-工单提交-新增工单
* @param bo 请求参数
* @return R<Void>
* @author DB
* @since 2023/5/30 16:53
**/
@ -60,7 +57,6 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* @author DB
* @param workOrderId 工单id
* @since 2023-11-29 11:25:28
* @version 1.0.0
*/
List<TaskWorkOrderRecordListVo> getWorkOrderRecordList(String workOrderId);
@ -69,7 +65,6 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* @author DB
* @param bo 请求参数
* @since 2023-11-29 11:33:35
* @version 1.0.0
*/
void insertWorkOrderRecord(TaskWorkOrderRecordBo bo);
@ -78,7 +73,6 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* @author DB
* @param workOrderId 工单id
* @since 2023-11-29 11:41:46
* @version 1.0.0
*/
void workOrderRemind(String workOrderId);
@ -87,7 +81,6 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* @author DB
* @param workOrderId 工单id
* @since 2023-11-29 12:30:21
* @version 1.0.0
*/
void workOrderToDemand(String workOrderId);
@ -96,7 +89,6 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* @author DB
* @param bo 请求参数
* @since 2023-11-29 16:00:18
* @version 1.0.0
*/
void pauseWorkOrder(PauseWorkOrderBo bo);
@ -105,7 +97,6 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* @author DB
* @param workOrderId 工单id
* @since 2023-11-29 15:44:08
* @version 1.0.0
*/
void workOrderFinish(String workOrderId);
@ -115,4 +106,12 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* @since 2023-11-30 19:41:32
*/
List<TaskWorkOrderPersonVo> getPersonWorkOrder();
/**
* 是否是第一个接收的技术员工
* @param taskWorkOrderId 工单记录id
* @author DB
* @since 2023/12/04
*/
void whetherReceive(String taskWorkOrderId);
}

View File

@ -364,11 +364,11 @@ public class StaffServiceImpl extends ServiceImpl<StaffMapper, Staff> implements
}
/**
* @Description: 查询技术员工列表
* @return: R<PageVo<StaffPageVo>>
* @Author: DB
* @Date: 2023/5/11 17:50
**/
* 技术模块-今日事务-查询技术员工列表
* @author DB
* @since 2023/12/04
* @return List<StaffVo>
*/
@Override
public List<StaffVo> getTechnologyStaffList() {
return this.listAs(QueryWrapper.create()
@ -381,17 +381,4 @@ public class StaffServiceImpl extends ServiceImpl<StaffMapper, Staff> implements
StaffVo.class);
}
/**
* @descriptions 创建企业微信用户
* @author DB
* @date 2023/10/13 14:31
* @param wxMessage 企业微信用户信息
* @return: void
*/
@Override
public void createWxCpUser(WxCpXmlMessage wxMessage, WxCpService cpService) {
//TODO:先改造部门
//insertStaff(wxCpUserToStaff(wxMessage, cpService));
}
}

View File

@ -44,10 +44,7 @@ import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
import static com.cpop.oam.business.entity.table.StaffTableDef.STAFF;
@ -55,6 +52,7 @@ import static com.cpop.oam.business.entity.table.TaskDemandTableDef.TASK_DEMAND;
import static com.cpop.oam.business.entity.table.TaskStaffGroupTableDef.TASK_STAFF_GROUP;
import static com.cpop.oam.business.entity.table.TaskTableDef.TASK;
import static com.mybatisflex.core.query.QueryMethods.groupConcat;
import org.springframework.transaction.annotation.Transactional;
/**
@ -68,9 +66,10 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
/**
* 技术模块-任务归档-获取任务归档分页
* @author DB
* @param subject 品主体牌名
*
* @param subject 品主体牌名
* @param taskContent 任务内容
* @author DB
* @since 2023-11-30 21:11:47
*/
@Override
@ -79,105 +78,108 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
PageDomain pageDomain = SqlUtils.getInstance().getPageDomain();
return this.mapper.paginateAs(Page.of(pageDomain.getPageNum(), pageDomain.getPageSize()),
QueryWrapper.create()
.select(TASK.ID,
TASK.RESPONSIBLE_STAFF_ID,
TASK.TASK_CONTENT,
TASK.TASK_RATING,
TASK.TASK_RECEIPT_TIME,
TASK.TEST_TO_FINISH_URL,
TASK.TO_TEST_TIME,
TASK.TO_FINISH_TIME,
TASK.SUBJECT)
.select(TASK_STAFF_GROUP.GRADE_POINT)
.from(TASK)
.leftJoin(TASK_STAFF_GROUP)
.on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID))
.where(TASK_STAFF_GROUP.STAFF_ID.eq(loginUserInfo.getString("id")))
.and(TASK.TASK_STATUS.eq(isFinish ? 8 : 9).and(TASK.TASK_CONTENT.like(taskContent)))
.and(TASK.SUBJECT.like(subject)),
TaskArchivingPagVo.class,
// 负责人
item -> item.field(TaskArchivingPagVo::getResponsibleStaffName)
.queryWrapper(
recordStaff -> queryChain().select(STAFF.NAME.as(TaskArchivingPagVo::getResponsibleStaffName))
.from(STAFF)
.where(STAFF.ID.eq(recordStaff.getResponsibleStaffId()))),
// 小组成员
item -> item.field(TaskArchivingPagVo::getTaskGroupStaffs)
.queryWrapper(taskGroupStaffs -> queryChain()
.select(groupConcat(STAFF.NAME).as(TaskArchivingPagVo::getTaskGroupStaffs))
.from(STAFF)
.leftJoin(TASK_STAFF_GROUP)
.on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID))
.where(TASK_STAFF_GROUP.STAFF_ID.eq(taskGroupStaffs.getId()))
.groupBy(TASK.ID)));
QueryWrapper.create()
.select(TASK.ID,
TASK.RESPONSIBLE_STAFF_ID,
TASK.TASK_CONTENT,
TASK.TASK_RATING,
TASK.TASK_RECEIPT_TIME,
TASK.TEST_TO_FINISH_URL,
TASK.TO_TEST_TIME,
TASK.TO_FINISH_TIME,
TASK.SUBJECT)
.select(TASK_STAFF_GROUP.GRADE_POINT)
.from(TASK)
.leftJoin(TASK_STAFF_GROUP)
.on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID))
.where(TASK_STAFF_GROUP.STAFF_ID.eq(loginUserInfo.getString("id")))
.and(TASK.TASK_STATUS.eq(isFinish ? 8 : 9).and(TASK.TASK_CONTENT.like(taskContent)))
.and(TASK.SUBJECT.like(subject)),
TaskArchivingPagVo.class,
// 负责人
item -> item.field(TaskArchivingPagVo::getResponsibleStaffName)
.queryWrapper(
recordStaff -> queryChain().select(STAFF.NAME.as(TaskArchivingPagVo::getResponsibleStaffName))
.from(STAFF)
.where(STAFF.ID.eq(recordStaff.getResponsibleStaffId()))),
// 小组成员
item -> item.field(TaskArchivingPagVo::getTaskGroupStaffs)
.queryWrapper(taskGroupStaffs -> queryChain()
.select(groupConcat(STAFF.NAME).as(TaskArchivingPagVo::getTaskGroupStaffs))
.from(STAFF)
.leftJoin(TASK_STAFF_GROUP)
.on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID))
.where(TASK_STAFF_GROUP.STAFF_ID.eq(taskGroupStaffs.getId()))
.groupBy(TASK.ID)));
}
/**
* 技术模块-任务归档-设置任务归档
* @author DB
*
* @param taskId 任务id
* @author DB
* @since 2023-11-30 21:49:05
*/
@Override
public void setTaskArchiving(String taskId) {
this.updateChain()
.set(TASK.TASK_STATUS, 9)
.set(TASK.TO_FINISH_TIME, LocalDateTime.now())
.where(TASK.ID.eq(taskId))
.update();
.set(TASK.TASK_STATUS, 9)
.set(TASK.TO_FINISH_TIME, LocalDateTime.now())
.where(TASK.ID.eq(taskId))
.update();
}
/**
* 技术模块-任务领取-获取领取任务分页
*
* @param subject 主体
* @param taskContent 任务内容
* @param taskGetStatus 任务领取状态(0:待领取;1:待评估;10:审核不通过)
* @author DB
* @param subject 主体
* @param taskContent 任务内容
* @param toBeEvaluated 是否待评估
* @since 2023-11-30 22:21:58
*/
@Override
public Page<TaskToBeClaimedPageVo> getToBeClaimedPage(String subject, String taskContent, Boolean toBeEvaluated) {
public Page<TaskToBeClaimedPageVo> getToBeClaimedPage(String subject, String taskContent, Integer taskGetStatus) {
// 获取当前员工
PageDomain pageDomain = SqlUtils.getInstance().getPageDomain();
return this.mapper.paginateAs(Page.of(pageDomain.getPageNum(), pageDomain.getPageSize()),
QueryWrapper.create()
.select(TASK.ID,
TASK.TASK_TYPE,
TASK.SUBJECT,
TASK.TASK_CONTENT,
TASK.ATTACHMENT_URL,
TASK.TASK_RATING,
TASK.CREATE_TIME)
.select(TASK_STAFF_GROUP.GRADE_POINT)
.from(TASK)
.leftJoin(TASK_STAFF_GROUP)
.on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID))
.where(TASK.TASK_STATUS.eq(toBeEvaluated ? 0 : 1))
.and(TASK.TASK_CONTENT.like(taskContent))
.and(TASK.SUBJECT.like(subject))
.orderBy(TASK.IS_URGENT.desc(), TASK.CREATE_TIME.desc()),
TaskToBeClaimedPageVo.class,
// 对接人
item -> item.field(TaskToBeClaimedPageVo::getDockingStaff).queryWrapper(dockingStaff -> {
if (dockingStaff.getTaskType() == 1) {
return queryChain().select(STAFF.NAME.as(TaskToBeClaimedPageVo::getDockingStaff))
.select(STAFF.NAME)
.from(STAFF)
.leftJoin(TASK_DEMAND)
.on(TASK_DEMAND.RECORD_STAFF_ID.eq(STAFF.ID))
.where(TASK_DEMAND.TASK_ID.eq(dockingStaff.getId()));
} else {
return null;
}
}));
QueryWrapper.create()
.select(TASK.ID,
TASK.TASK_TYPE,
TASK.SUBJECT,
TASK.TASK_CONTENT,
TASK.ATTACHMENT_URL,
TASK.TASK_RATING,
TASK.CREATE_TIME)
.select(TASK_STAFF_GROUP.GRADE_POINT)
.from(TASK)
.leftJoin(TASK_STAFF_GROUP)
.on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID))
.where(TASK.TASK_STATUS.eq(taskGetStatus))
.and(TASK.TASK_CONTENT.like(taskContent))
.and(TASK.SUBJECT.like(subject))
.orderBy(TASK.IS_URGENT.desc(), TASK.CREATE_TIME.desc()),
TaskToBeClaimedPageVo.class,
// 对接人
item -> item.field(TaskToBeClaimedPageVo::getDockingStaff).queryWrapper(dockingStaff -> {
if (dockingStaff.getTaskType() == 1) {
return queryChain().select(STAFF.NAME.as(TaskToBeClaimedPageVo::getDockingStaff))
.select(STAFF.NAME)
.from(STAFF)
.leftJoin(TASK_DEMAND)
.on(TASK_DEMAND.RECORD_STAFF_ID.eq(STAFF.ID))
.where(TASK_DEMAND.TASK_ID.eq(dockingStaff.getId()));
} else {
return null;
}
}));
}
/**
* 技术模块-任务领取-新增迭代任务
* @author DB
*
* @param bo 请求
* @author DB
* @since 2023-12-01 09:45:08
*/
@Override
@ -202,10 +204,10 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
phoneList.add(auditStaffPhone);
try {
SpringUtils.getBean(WebHookSendHandler.class)
.webHookSendText(WebHookKeyConstant.PRODUCT_BOT,
phoneList,
"==========您有一条新的迭代任务需要审核==========" + "\n" + entity.getTaskContent(),
false);
.webHookSendText(WebHookKeyConstant.PRODUCT_BOT,
phoneList,
"==========您有一条新的迭代任务需要审核==========" + "\n" + entity.getTaskContent(),
false);
} catch (IOException e) {
throw new ServiceException("发送迭代任务通知失败!");
}
@ -213,8 +215,9 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
/**
* 技术模块-任务领取-技术人员领取任务
* @author DB
*
* @param id 任务id
* @author DB
* @since 2023-12-01 10:15:28
*/
@Override
@ -257,11 +260,11 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
}
}
// 获取当前用户
LoginUser loginUser = SecurityUtils.getInstance().getLoginUser();
if (!Constants.SUPER_ADMIN.equals(loginUser.getUsername())) {
JSONObject loginUser = SecurityUtils.getInstance().getLoginUserInfo();
if (!Constants.SUPER_ADMIN.equals(loginUser.getString("userName"))) {
// 获取当前员工
Staff staff = SpringUtils.getBean(StaffService.class)
.getOne(QueryWrapper.create().where(STAFF.USER_ID.eq(loginUser.getUserId())));
.getOne(QueryWrapper.create().where(STAFF.USER_ID.eq(loginUser.getString("userId"))));
task.setResponsibleStaffId(staff.getId());
}
this.updateById(task);
@ -290,78 +293,82 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
}
taskStaffGroup.setStaffId(task.getResponsibleStaffId()).setTaskId(id).setGradePoint(taskRatingPoint);
SpringUtils.getBean(TaskStaffGroupService.class).save(taskStaffGroup);
// 通知所有人
try {
SpringUtils.getBean(WebHookSendHandler.class)
.webHookSendText(WebHookKeyConstant.PRODUCT_BOT,
Collections.singletonList(loginUser.getString("phoneNumber")),
"==========任务领取==========" + "\n" + task.getTaskContent(),
false);
} catch (IOException e) {
throw new ServiceException("发送任务领取通知失败!");
}
}
/**
* 技术模块-任务领取-任务审核
* @author DB
*
* @param bo 请求参数
* @author DB
* @since 2023-12-01 10:35:31
*/
@Override
public void setTaskAuditComments(TaskAuditCommentsBo bo) {
Task entity = BeanUtils.mapToClass(bo, Task.class);
entity.setTaskStatus(1);
this.updateById(entity);
// 通知所有人
try {
SpringUtils.getBean(WebHookSendHandler.class)
.webHookSendText(WebHookKeyConstant.PRODUCT_BOT,
new ArrayList<>(),
"==========任务审核通过==========" + "\n" + entity.getTaskContent(),
true);
} catch (IOException e) {
throw new ServiceException("发送任务审核通过通知失败!");
if (bo.getIsPass()) {
entity.setTaskStatus(1);
this.updateById(entity);
// 通知所有人
try {
SpringUtils.getBean(WebHookSendHandler.class)
.webHookSendText(WebHookKeyConstant.PRODUCT_BOT,
new ArrayList<>(),
"==========任务审核通过==========" + "\n" + entity.getTaskContent(),
true);
} catch (IOException e) {
throw new ServiceException("发送任务审核通过通知失败!");
}
} else {
entity.setTaskStatus(10);
this.updateById(entity);
}
}
/**
* @Description: 查询OAM-个人任务分页列表
* @return: R<PageVo<PersonTaskPageListVo>>
* @Author: DB
* @Date: 2023/5/16 15:24
**/
* 技术模块-今日事务-个人任务分页列表
*
* @return Page<PersonTaskPageVo>
* @author DB
* @since 2023/12/04
*/
@Override
public Page<PersonTaskPageVo> getPersonTaskPage(PersonTaskPageBo bo) {
// 获取当前登录用户
LoginUser loginUser = SecurityUtils.getInstance().getLoginUser();
String staffId = null;
if (Constants.SUPER_ADMIN.equals(loginUser.getUsername())) {
// TODO超级管理员暂时获取所有任务
} else {
Staff staff = SpringUtils.getBean(StaffService.class)
.getOne(QueryWrapper.create().where(STAFF.USER_ID.eq(loginUser.getUserId())));
staffId = staff.getId();
}
// 任务状态
QueryWrapper queryWrapper = QueryWrapper.create();
if (null != bo.getTaskStatus()) {
queryWrapper.and(TASK.TASK_STATUS.in(3, 6));
} else {
// 只查询接受与已逾期的任务
queryWrapper.and(TASK.TASK_STATUS.in(2, 4));
}
public Page<PersonTaskPageVo> getPersonTaskPage() {
PageDomain pageDomain = SqlUtils.getInstance().getPageDomain();
return this.mapper.paginateAs(pageDomain.getPageNum(),
pageDomain.getPageSize(),
queryWrapper.select(TASK.ALL_COLUMNS)
.select(STAFF.NAME.as(PersonTaskPageVo::getResponsibleStaffName))
.from(TASK)
// 员工表
.leftJoin(STAFF)
.on(STAFF.ID.eq(TASK.RESPONSIBLE_STAFF_ID))
// 任务员工组
.leftJoin(TASK_STAFF_GROUP)
.on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID))
.where(TASK.TASK_TYPE.in(0, 1))
.and(TASK_STAFF_GROUP.STAFF_ID.eq(staffId))
.orderBy(TASK.EXPECTED_COMPLETION_DATE.asc()),
PersonTaskPageVo.class);
pageDomain.getPageSize(),
QueryWrapper.create()
.select(TASK.ID, TASK.TASK_STATUS, TASK.TASK_CONTENT, TASK.TASK_ITEM, TASK.TASK_RATING, TASK.TASK_RECEIPT_TIME, TASK.EXPECTED_COMPLETION_DATE)
.select(STAFF.NAME.as(PersonTaskPageVo::getResponsibleStaffName))
//个人绩点
.select(TASK_STAFF_GROUP.GRADE_POINT)
.from(TASK)
// 员工表
.leftJoin(STAFF)
.on(STAFF.ID.eq(TASK.RESPONSIBLE_STAFF_ID))
// 任务员工组
.leftJoin(TASK_STAFF_GROUP)
.on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID))
.where(TASK.TASK_TYPE.in(0, 1))
//进行中与已完成的任务
.and(TASK.TASK_STATUS.in(2, 3, 4, 6))
.and(STAFF.ID.eq(SecurityUtils.getInstance().getLoginUserInfo().getString("id")))
.orderBy(TASK.EXPECTED_COMPLETION_DATE.asc()),
PersonTaskPageVo.class);
}
/**
* @Description: 修改任务进度
* @param bo 请求参数
* @Description: 修改任务进度
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/29 14:58
@ -373,50 +380,50 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
}
/**
* @Description: 修改任务负责人
* 技术模块-今日事务-修改任务负责人
*
* @param bo 请求参数
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/29 14:58
**/
* @author DB
* @since 2023/12/04
*/
@Override
public void updateTaskResponsibleStaff(TransferTaskBo bo) {
isTaskResponsibleStaff(bo.getId());
// 新负责人在不在任务组内
TaskStaffGroupService taskStaffGroupService = SpringUtils.getBean(TaskStaffGroupService.class);
long count = taskStaffGroupService.count(QueryWrapper.create()
.where(TASK_STAFF_GROUP.TASK_ID.eq(bo.getId()))
.and(TASK_STAFF_GROUP.STAFF_ID.eq(bo.getNewResponsibleStaffId())));
.where(TASK_STAFF_GROUP.TASK_ID.eq(bo.getId()))
.and(TASK_STAFF_GROUP.STAFF_ID.eq(bo.getNewResponsibleStaffId())));
// 获取旧员工绩点
TaskStaffGroup oldStaffGroup = taskStaffGroupService.getOne(QueryWrapper.create()
.where(TASK_STAFF_GROUP.TASK_ID.eq(bo.getId()))
.and(TASK_STAFF_GROUP.STAFF_ID.eq(bo.getResponsibleStaffId())));
.where(TASK_STAFF_GROUP.TASK_ID.eq(bo.getId()))
.and(TASK_STAFF_GROUP.STAFF_ID.eq(bo.getResponsibleStaffId())));
if (count == 0) {
// 不在
TaskStaffGroup taskStaffGroup = new TaskStaffGroup();
taskStaffGroup.setStaffId(bo.getNewResponsibleStaffId())
.setTaskId(bo.getId())
.setGradePoint(oldStaffGroup.getGradePoint());
.setTaskId(bo.getId())
.setGradePoint(oldStaffGroup.getGradePoint());
taskStaffGroupService.save(taskStaffGroup);
} else {
// 直接添加绩点
TaskStaffGroup newStaffGroup = taskStaffGroupService.getOne(QueryWrapper.create()
.where(TASK_STAFF_GROUP.TASK_ID.eq(bo.getId()))
.and(TASK_STAFF_GROUP.STAFF_ID.eq(bo.getNewResponsibleStaffId())));
.where(TASK_STAFF_GROUP.TASK_ID.eq(bo.getId()))
.and(TASK_STAFF_GROUP.STAFF_ID.eq(bo.getNewResponsibleStaffId())));
newStaffGroup.setGradePoint(newStaffGroup.getGradePoint() + oldStaffGroup.getGradePoint());
taskStaffGroupService.updateById(newStaffGroup);
}
taskStaffGroupService.removeById(oldStaffGroup.getId());
// 替换任务负责人
this.updateChain()
.set(TASK.RESPONSIBLE_STAFF_ID, bo.getNewResponsibleStaffId())
.where(TASK.ID.eq(bo.getId()))
.update();
.set(TASK.RESPONSIBLE_STAFF_ID, bo.getNewResponsibleStaffId())
.where(TASK.ID.eq(bo.getId()))
.update();
}
/**
* @Description: 是否是任务主要负责员工
* @param taskId 任务id
* @Description: 是否是任务主要负责员工
* @return: Boolean
* @Author: DB
* @Date: 2023/5/30 9:48
@ -436,8 +443,8 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
}
/**
* @Description: 完成任务
* @param id 主键
* @Description: 完成任务
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/31 16:24
@ -467,9 +474,9 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
}
/**
* @Description: 获取月度任务统计列表
* @param bo 请求参数
* @return: R<List<TaskListVo>>
* @Description: 获取月度任务统计列表
* @return: R<List < TaskListVo>>
* @Author: DB
* @Date: 2023/5/15 16:42
**/
@ -480,16 +487,14 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
// 读取员工信息
JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
QueryWrapper queryWrapper = QueryWrapper.create();
if (Constants.SUPER_ADMIN.equals(loginUserInfo.getString("userName"))) {
// TODO超级管理员暂时获取所有任务
} else {
if (!Constants.SUPER_ADMIN.equals(loginUserInfo.getString("userName"))) {
// 查询个人涉及到的任务
TaskStaffGroupService taskStaffGroupService = SpringUtils.getBean(TaskStaffGroupService.class);
taskStaffGroups = taskStaffGroupService
.list(QueryWrapper.create().where(TASK_STAFF_GROUP.STAFF_ID.eq(loginUserInfo.getString("id"))));
.list(QueryWrapper.create().where(TASK_STAFF_GROUP.STAFF_ID.eq(loginUserInfo.getString("id"))));
if (!taskStaffGroups.isEmpty()) {
queryWrapper.and(
TASK.ID.in(taskStaffGroups.stream().map(TaskStaffGroup::getTaskId).collect(Collectors.toSet())));
TASK.ID.in(taskStaffGroups.stream().map(TaskStaffGroup::getTaskId).collect(Collectors.toSet())));
}
if (taskStaffGroups.isEmpty()) {
return new TaskMonthStatisticsVo();
@ -508,8 +513,8 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
firstDay = now.with(TemporalAdjusters.firstDayOfMonth());
}
List<Task> taskList = this.list(queryWrapper.select(TASK.ALL_COLUMNS)
.and(TASK.EXPECTED_COMPLETION_DATE.ge(firstDay))
.orderBy(TASK.EXPECTED_COMPLETION_DATE.asc()));
.and(TASK.EXPECTED_COMPLETION_DATE.ge(firstDay))
.orderBy(TASK.EXPECTED_COMPLETION_DATE.asc()));
if (taskList.isEmpty()) {
return new TaskMonthStatisticsVo();
}
@ -524,7 +529,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
* @Date: 2023/5/15 17:54
**/
private TaskMonthStatisticsVo buildMonthTaskStatistics(List<Task> taskList, TaskMonthStatisticsBo bo,
List<TaskStaffGroup> taskStaffGroups) {
List<TaskStaffGroup> taskStaffGroups) {
TaskMonthStatisticsVo statisticsVo = new TaskMonthStatisticsVo();
List<TaskMonthStatisticsVo.DataStatisticsVo> vos = new ArrayList<>();
statisticsVo.setVos(vos);
@ -533,7 +538,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
statisticsVo.setInProgress(taskList.stream().filter(s -> 2 == s.getTaskStatus()).count());
// 已完成
Set<String> finishTaskSet =
taskList.stream().filter(s -> 3 == s.getTaskStatus()).map(Task::getId).collect(Collectors.toSet());
taskList.stream().filter(s -> 3 == s.getTaskStatus()).map(Task::getId).collect(Collectors.toSet());
statisticsVo.setHaveCompleted(Long.parseLong(String.valueOf(finishTaskSet.size())));
// 已逾期
statisticsVo.setOverdue(taskList.stream().filter(s -> 4 == s.getTaskStatus()).count());
@ -543,15 +548,15 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
statisticsVo.setOverdueCompletion(taskList.stream().filter(s -> 6 == s.getTaskStatus()).count());
// 逾期完成
Set<String> overdueCompletionSet =
taskList.stream().filter(s -> 6 == s.getTaskStatus()).map(Task::getId).collect(Collectors.toSet());
taskList.stream().filter(s -> 6 == s.getTaskStatus()).map(Task::getId).collect(Collectors.toSet());
if (null != taskStaffGroups) {
// 统计绩点(计算已完成的和逾期完成)
Long finishGpa = statisticalGPA(taskStaffGroups.stream()
.filter(s -> finishTaskSet.contains(s.getTaskId()))
.collect(Collectors.toList()));
.filter(s -> finishTaskSet.contains(s.getTaskId()))
.collect(Collectors.toList()));
Long overdueCompletionGpa = statisticalGPA(taskStaffGroups.stream()
.filter(s -> overdueCompletionSet.contains(s.getTaskId()))
.collect(Collectors.toList()));
.filter(s -> overdueCompletionSet.contains(s.getTaskId()))
.collect(Collectors.toList()));
statisticsVo.setGpaOfTheMonth(finishGpa + overdueCompletionGpa);
}
List<Date> allTheDateOfMonth;
@ -582,8 +587,8 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
}
/**
* @Description: 统计绩点
* @param taskStaffGroups 绩点列表
* @Description: 统计绩点
* @return: Long
* @Author: DB
* @Date: 2023/5/29 18:24

View File

@ -14,7 +14,6 @@ import com.cpop.core.service.RedisService;
import com.cpop.core.utils.SecurityUtils;
import com.cpop.core.utils.SpringUtils;
import com.cpop.oam.business.bo.TaskStaffGroupBo;
import com.cpop.oam.business.bo.TaskStaffGroupListBo;
import com.cpop.oam.business.entity.Task;
import com.cpop.oam.business.entity.TaskStaffGroup;
import com.cpop.oam.business.mapper.TaskStaffGroupMapper;
@ -45,42 +44,38 @@ public class TaskStaffGroupServiceImpl extends ServiceImpl<TaskStaffGroupMapper,
implements TaskStaffGroupService {
/**
* @Description: 查询OAM-任务成员组列表
* @return: R<PageVo<PersonTaskPageListVo>>
* @Author: DB
* @Date: 2023/5/16 15:24
**/
* 技术模块-今日事务-任务成员组列
* @author DB
* @since 2023/12/04
* @param taskId 任务id
* @return List<TaskStaffGroupVo>
*/
@Override
public List<TaskStaffGroupVo> getTaskStaffGroupList(TaskStaffGroupListBo bo) {
public List<TaskStaffGroupVo> getTaskStaffGroupList(String taskId) {
return this.listAs(QueryWrapper.create()
.select(TASK_STAFF_GROUP.ALL_COLUMNS)
.select(STAFF.NAME.as(TaskStaffGroupVo::getStaffName))
.from(TASK_STAFF_GROUP)
.leftJoin(STAFF)
.on(STAFF.ID.eq(TASK_STAFF_GROUP.STAFF_ID))
.where(TASK_STAFF_GROUP.TASK_ID.eq(bo.getTaskId())), TaskStaffGroupVo.class);
.where(TASK_STAFF_GROUP.TASK_ID.eq(taskId)), TaskStaffGroupVo.class);
}
/**
* @Description: 新增任务员工组
* 技术模块-今日事务-新增任务小组成员
* @author DB
* @since 2023/12/04
* @param bo 请求参数
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/16 15:58
**/
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void insertTaskStaffGroup(TaskStaffGroupBo bo) {
// 获取任务
TaskService taskService = SpringUtils.getBean(TaskService.class);
Task task = taskService.getById(bo.getTaskId());
// 当前操作员工是否是主要负责人不是抛出异常
LoginUser loginUser = SecurityUtils.getInstance().getLoginUser();
// 读取员工信息
RedisService redisService = SpringUtils.getBean(RedisService.class);
JSONObject cacheObject = redisService.getCacheObject(UserType.OAM_USER.getKey() + loginUser.getUsername());
OamStaffLoginInfo loginInfo = cacheObject.getJSONObject("user").toJavaObject(OamStaffLoginInfo.class);
if (!StringUtils.equals(task.getResponsibleStaffId(), loginInfo.getId())) {
// 当前操作员工是否是主要负责人不是抛出异常
JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
if (!StringUtils.equals(task.getResponsibleStaffId(), loginUserInfo.getString("id"))) {
throw new ServiceException("当前操作员工不是当前任务主要负责人,不允许操作当前任务!");
}
// 查询当前添加的员工是否存在在此任务中
@ -106,16 +101,14 @@ public class TaskStaffGroupServiceImpl extends ServiceImpl<TaskStaffGroupMapper,
this.updateById(responsibleStaff);
// 企微通知绩点调整人员
List<String> phoneList = new ArrayList<String>();
phoneList.add(loginInfo.getPhoneNumber());
phoneList.add(loginUserInfo.getString("phoneNumber"));
// 获取新增员工信息
StaffInfoVo staffInfo = SpringUtils.getBean(StaffService.class).getStaffInfo(bo.getStaffId());
phoneList.add(staffInfo.getPhoneNumber());
try {
SpringUtils.getBean(WebHookSendHandler.class)
.webHookSendText(WebHookKeyConstant.PRODUCT_BOT,
phoneList,
loginInfo.getName() + "您的绩点调整为" + responsibleStaff.getGradePoint() + "\n" + staffInfo.getName()
+ "您新加入任务:" + task.getTaskContent() + "绩点为:" + bo.getGradePoint(),
SpringUtils.getBean(WebHookSendHandler.class).webHookSendText(WebHookKeyConstant.PRODUCT_BOT, phoneList,
loginUserInfo.getString("name") + "您的绩点调整为" + responsibleStaff.getGradePoint() + "\n" + staffInfo.getName()
+ "您新加入任务:" + task.getTaskContent() + "绩点为:" + bo.getGradePoint(),
false);
} catch (IOException e) {
throw new ServiceException("发送通知失败!");
@ -123,12 +116,11 @@ public class TaskStaffGroupServiceImpl extends ServiceImpl<TaskStaffGroupMapper,
}
/**
* @Description: 修改员工任务绩点
* 技术模块-今日事务-修改员工任务绩点
* @author DB
* @since 2023/12/04
* @param bo 请求参数
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/29 11:48
**/
*/
@Override
public void updateStaffGradePoint(TaskStaffGroupBo bo) {
// 获取任务主负责人相关绩点
@ -137,13 +129,8 @@ public class TaskStaffGroupServiceImpl extends ServiceImpl<TaskStaffGroupMapper,
if (null == task) {
throw new ServiceException("获取任务失败!请联系相关人员!");
}
// 当前操作员工是否是主要负责人不是抛出异常
LoginUser loginUser = SecurityUtils.getInstance().getLoginUser();
// 读取员工信息
RedisService redisService = SpringUtils.getBean(RedisService.class);
JSONObject cacheObject = redisService.getCacheObject(UserType.OAM_USER.getKey() + loginUser.getUsername());
OamStaffLoginInfo loginInfo = cacheObject.getJSONObject("user").toJavaObject(OamStaffLoginInfo.class);
if (!StringUtils.equals(task.getResponsibleStaffId(), loginInfo.getId())) {
JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
if (!StringUtils.equals(task.getResponsibleStaffId(), loginUserInfo.getString("id"))) {
throw new ServiceException("当前操作员工不是当前任务主要负责人,不允许操作当前任务!");
}
if (StringUtils.equals(bo.getStaffId(), task.getResponsibleStaffId())) {
@ -181,16 +168,14 @@ public class TaskStaffGroupServiceImpl extends ServiceImpl<TaskStaffGroupMapper,
.update();
// 企微通知绩点调整人员
List<String> phoneList = new ArrayList<String>();
phoneList.add(loginInfo.getPhoneNumber());
phoneList.add(loginUserInfo.getString("phoneNumber"));
// 获取新增员工信息
StaffInfoVo staffInfo = SpringUtils.getBean(StaffService.class).getStaffInfo(bo.getStaffId());
phoneList.add(staffInfo.getPhoneNumber());
try {
SpringUtils.getBean(WebHookSendHandler.class)
.webHookSendText(WebHookKeyConstant.PRODUCT_BOT,
phoneList,
loginInfo.getName() + "您的绩点调整为" + responsibleStaffTaskInfo.getGradePoint() + "\n"
+ staffInfo.getName() + "您的绩点调整为:" + bo.getGradePoint(),
SpringUtils.getBean(WebHookSendHandler.class).webHookSendText(WebHookKeyConstant.PRODUCT_BOT, phoneList,
loginUserInfo.getString("name") + "您的绩点调整为" + responsibleStaffTaskInfo.getGradePoint() + "\n"
+ staffInfo.getName() + "您的绩点调整为:" + bo.getGradePoint(),
false);
} catch (IOException e) {
throw new ServiceException("发送通知失败!");
@ -198,24 +183,19 @@ public class TaskStaffGroupServiceImpl extends ServiceImpl<TaskStaffGroupMapper,
}
/**
* @Description: 删除成员组
* @param id 主键
* @return: R<Void>
* @Author: DB
* @Date: 2023/5/29 14:18
**/
* 技术模块-今日事务-删除成员组
* @author DB
* @since 2023/12/04
* @param id 任务组id
*/
@Override
public void removeTaskStaffGroupById(String id) {
// 获取任务
TaskStaffGroup taskStaffGroup = this.getById(id);
TaskService taskService = SpringUtils.getBean(TaskService.class);
Task task = taskService.getById(taskStaffGroup.getTaskId());
// 当前操作员工是否是主要负责人不是抛出异常
LoginUser loginUser = SecurityUtils.getInstance().getLoginUser();
// 读取员工信息
RedisService redisService = SpringUtils.getBean(RedisService.class);
OamStaffLoginInfo loginInfo = redisService.getCacheObject(UserType.OAM_USER.getKey() + loginUser.getUsername());
if (!StringUtils.equals(task.getResponsibleStaffId(), loginInfo.getId())) {
JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
if (!StringUtils.equals(task.getResponsibleStaffId(), loginUserInfo.getString("id"))) {
throw new ServiceException("当前操作员工不是当前任务主要负责人,不允许操作当前任务!");
}
// 不允许删除主要负责人

View File

@ -172,7 +172,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* 工单模块-工单提交-获取当天值班人员
* @author DB
* @since 2023-11-29 14:01:03
* @version 1.0.0
*/
@Override
public WorkOrderDutyVo getWorkOrderDutyStaff() {
@ -190,7 +189,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* 工单模块-工单提交-已办结分页列表
* @author DB
* @since 2023-11-29 14:35:08
* @version 1.0.0
*/
@Override
public Page<TaskWorkOrderPageVo> finishWorkOrderPage() {
@ -215,7 +213,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
/**
* 工单模块-工单提交-新增工单
* @param bo 请求参数
* @return R<Void>
* @author DB
* @since 2023/5/30 16:53
**/
@ -233,11 +230,12 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
BeanUtils.copyBeanProp(task, bo);
// 默认待接受
task.setTaskStatus(1)
// 默认开发中
.setTaskItem(0)
.setTaskWeight(10)
// 工单不参与评级
.setTaskRating(-1);
// 默认开发中
.setTaskItem(0)
.setTaskWeight(10)
// 工单不参与评级
.setTaskRating(-1)
.setResponsibleStaffId(duty.getTechnologyStaffId());
TaskService taskService = SpringUtils.getBean(TaskService.class);
taskService.save(task);
// 添加工单
@ -288,7 +286,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @param isStart 是否是开始标识
* @param dateTime 时间
* @since 2023-11-29 10:21:02
* @version 1.0.0
*/
private void startOrRemoveWorkOrderAcceptTask(String workOrderId, Boolean isStart, LocalDateTime dateTime) {
// 基于表达式构建触发器
@ -329,7 +326,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @param isUpdate 是否更新
* @param dateTime 开始时间
* @since 2023-11-29 16:09:02
* @version 1.0.0
*/
private void startOrUpdateWorkOrderOvertimeTask(String workOrderId, Boolean isUpdate, LocalDateTime dateTime) {
// 基于表达式构建触发器
@ -369,7 +365,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @author DB
* @param workOrderId 工单id
* @since 2023-11-29 11:25:28
* @version 1.0.0
*/
@Override
public List<TaskWorkOrderRecordListVo> getWorkOrderRecordList(String workOrderId) {
@ -398,7 +393,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @author DB
* @param bo 请求参数
* @since 2023-11-29 11:33:35
* @version 1.0.0
*/
@Override
public void insertWorkOrderRecord(TaskWorkOrderRecordBo bo) {
@ -414,6 +408,7 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
taskWorkOrderRecord.setRecordStaffId(loginUserInfo.getString("id"));
// 插入记录
SpringUtils.getBean(TaskWorkOrderRecordService.class).save(taskWorkOrderRecord);
//没有负责人
if (StringUtils.isNotBlank(task.getResponsibleStaffId())) {
// 负责人手机号
StaffInfoVo responsibleStaff =
@ -439,7 +434,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @author DB
* @param workOrderId 工单id
* @since 2023-11-29 11:41:46
* @version 1.0.0
*/
@Override
public void workOrderRemind(String workOrderId) {
@ -484,7 +478,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @author DB
* @param workOrderId 工单id
* @since 2023-11-29 12:30:21
* @version 1.0.0
*/
@Override
public void workOrderToDemand(String workOrderId) {
@ -512,7 +505,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @author DB
* @param bo 请求参数
* @since 2023-11-29 16:00:18
* @version 1.0.0
*/
@Override
@Transactional(rollbackFor = Exception.class)
@ -562,7 +554,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @author DB
* @param workOrderId 工单id
* @since 2023-11-29 15:44:08
* @version 1.0.0
*/
@Override
@Transactional(rollbackFor = Exception.class)
@ -678,4 +669,40 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
.where(STAFF.ID.eq(recordStaff.getRecordStaffId()))));
}
/**
* 是否是第一个接收的技术员工
* @param taskWorkOrderId 工单记录id
* @author DB
* @since 2023/12/04
*/
@Override
public void whetherReceive(String taskWorkOrderId) {
Task task = SpringUtils.getBean(TaskService.class).queryChain()
.leftJoin(TASK_WORK_ORDER).on(TASK_WORK_ORDER.TASK_ID.eq(TASK.ID))
.where(TASK_WORK_ORDER.ID.eq(taskWorkOrderId)).one();
JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
//判断当前登陆用户是否是当前工单的负责员工
if (StringUtils.equals(loginUserInfo.getString("id"),task.getResponsibleStaffId())){
//查询负责员工的记录数
long count = SpringUtils.getBean(TaskWorkOrderRecordService.class).queryChain()
.where(TASK_WORK_ORDER_RECORD.TASK_WORK_ORDER_ID.eq(taskWorkOrderId))
.and(TASK_WORK_ORDER_RECORD.RECORD_STAFF_ID.eq(task.getResponsibleStaffId()))
.count();
//首次记录修改状态
if (count == 0){
LocalDateTime now = LocalDateTime.now();
task.setTaskStatus(2).setTaskReceiptTime(now);
//获取工单
TaskWorkOrder workOrder = this.getById(taskWorkOrderId);
int receivingTime = now.compareTo(workOrder.getCreateTime());
workOrder.setReceivingTime(receivingTime);
this.updateById(workOrder);
//删除定时任务
startOrRemoveWorkOrderAcceptTask(taskWorkOrderId, false, now);
}
}
}
}

View File

@ -29,18 +29,6 @@ public class PersonTaskPageVo implements Serializable {
@ApiModelProperty("主键")
private String id;
/**
* 任务类型(0:迭代;1:需求;2:投诉)
*/
@ApiModelProperty("任务类型(0:迭代;1:需求;2:投诉)")
private Integer taskType;
/**
* 主要负责员工id
*/
@ApiModelProperty("主要负责员工id")
private String responsibleStaffId;
/**
* 主要负责员工名
*/
@ -50,7 +38,7 @@ public class PersonTaskPageVo implements Serializable {
/**
* 任务状态(-1:失败;0:待审核;1:待接受;2:进行中;3:已完成;4:逾期;)
*/
@ApiModelProperty("任务状态(-1:失败;0:待审核;1:待接受;2:进行中;3:已完成;4:逾期;)")
@ApiModelProperty("任务状态(-1:失败;0:待审核;1:待接受;2:进行中;3:已完成;4:逾期;5:暂停;6:逾期完成;7:接收超时;8:待部署;9:待归档;10:审核不通过)")
private Integer taskStatus;
/**
@ -65,12 +53,6 @@ public class PersonTaskPageVo implements Serializable {
@ApiModelProperty("任务内容")
private String taskContent;
/**
* 任务权重
*/
@ApiModelProperty("任务权重")
private Integer taskWeight;
/**
* 任务评级(0:A;1:B;2:C;3:D;4:E)
*/
@ -78,16 +60,10 @@ public class PersonTaskPageVo implements Serializable {
private Integer taskRating;
/**
* 附件地址
* 个人任务绩点
*/
@ApiModelProperty("附件地址")
private String attachmentUrl;
/**
* 备注
*/
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("个人任务绩点")
private Integer gradePoint;
/**
* 预期完成日期
@ -96,13 +72,6 @@ public class PersonTaskPageVo implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate expectedCompletionDate;
/**
* 完成日期
*/
@ApiModelProperty("完成日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate completionDate;
/**
* 任务接收时间
*/

View File

@ -16,9 +16,7 @@ import java.io.Serializable;
@Data
@Accessors(chain = true)
@ApiModel(value = "TaskStaffGroup对象", description = "OAM-任务-关联员工任务组表")
public class TaskStaffGroupVo implements Serializable {
private static final long serialVersionUID = 1L;
public class TaskStaffGroupVo {
/**
* 主键

View File

@ -31,7 +31,7 @@ public class ContactChangeHandler extends AbstractHandler {
//通知处理
switch (wxMessage.getChangeType()){
case WxCpConstant.CREATE_USER:
staffService.createWxCpUser(wxMessage, cpService);
//staffService.createWxCpUser(wxMessage, cpService);
break;
case WxCpConstant.UPDATE_USER:
break;

View File

@ -20,7 +20,6 @@ public class LocationHandler extends AbstractHandler {
public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context, WxCpService cpService,
WxSessionManager sessionManager) {
if (wxMessage.getMsgType().equals(WxConsts.XmlMsgType.LOCATION)) {
//TODO 接收处理用户发送的地理位置消息
try {
String content = "感谢反馈,您的的地理位置已收到!";
return new TextBuilder().build(content, wxMessage, null);
@ -34,8 +33,6 @@ public class LocationHandler extends AbstractHandler {
this.logger.info("\n上报地理位置纬度 : {}\n经度 : {}\n精度 : {}",
wxMessage.getLatitude(), wxMessage.getLongitude(), String.valueOf(wxMessage.getPrecision()));
//TODO 可以将用户地理位置信息保存到本地数据库以便以后使用
return null;
}

View File

@ -26,10 +26,10 @@ public class MsgHandler extends AbstractHandler {
}
if (!msgType.equals(WxConsts.XmlMsgType.EVENT)) {
//TODO 可以选择将消息保存到本地
}
//TODO 组装回复消息
String content = "收到信息内容:" + JsonUtils.toJson(wxMessage);
return new TextBuilder().build(content, wxMessage, cpService);

View File

@ -27,7 +27,7 @@ public class SubscribeHandler extends AbstractHandler {
WxCpUser userWxInfo = cpService.getUserService().getById(wxMessage.getFromUserName());
if (userWxInfo != null) {
// TODO 可以添加关注用户到本地
}
WxCpXmlOutMessage responseResult = null;
@ -54,7 +54,7 @@ public class SubscribeHandler extends AbstractHandler {
* 处理特殊请求比如如果是扫码进来的可以做相应处理
*/
private WxCpXmlOutMessage handleSpecial(WxCpXmlMessage wxMessage) {
//TODO
return null;
}

View File

@ -19,7 +19,6 @@ public class UnsubscribeHandler extends AbstractHandler {
WxSessionManager sessionManager) {
String openId = wxMessage.getFromUserName();
this.logger.info("取消关注用户 OPENID: " + openId);
// TODO 可以更新本地数据库为取消关注状态
return null;
}

View File

@ -38,15 +38,15 @@ public class WorkOrderAcceptOverTimeTask implements Job {
// 工单超时为接收扣除5绩点
TaskStaffGroupService taskStaffGroupService = SpringUtils.getBean(TaskStaffGroupService.class);
taskStaffGroupService.updateChain()
.set(TASK_STAFF_GROUP.GRADE_POINT, -5)
.where(TASK_STAFF_GROUP.TASK_ID.eq(task.getId())
.and(TASK_STAFF_GROUP.STAFF_ID.eq(task.getResponsibleStaffId())));
.set(TASK_STAFF_GROUP.GRADE_POINT, -5)
.where(TASK_STAFF_GROUP.TASK_ID.eq(task.getId())
.and(TASK_STAFF_GROUP.STAFF_ID.eq(task.getResponsibleStaffId())));
// 更新任务为接收超时
taskService.updateChain()
.set(TASK.TASK_STATUS, 7)
.set(TASK.REMARK, "工单接收超时扣除5绩点 ")
.where(TASK.ID.eq(task.getId()))
.update();
.set(TASK.TASK_STATUS, 7)
.set(TASK.REMARK, "工单接收超时扣除5绩点 ")
.where(TASK.ID.eq(task.getId()))
.update();
}
}
}