调整技术-今日事务

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

View File

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

View File

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

View File

@ -14,40 +14,5 @@ import org.springframework.stereotype.Service;
*/ */
@Service("brandExtendService") @Service("brandExtendService")
public class BrandExtendServiceImpl extends ServiceImpl<BrandExtendMapper, BrandExtend> implements 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 * 角色id
*/ */
//TODO:@NotBlank(message = "角色id不能为空") @NotBlank(message = "角色id不能为空")
@ApiModelProperty(value = "角色id",required = true) @ApiModelProperty(value = "角色id",required = true)
private String roleId; 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(); 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); roleBrandService.save(roleBrand);
staff.setUserId(sysUser.getId()) staff.setUserId(sysUser.getId())

View File

@ -273,7 +273,6 @@ public class CpopWxCpTests {
exportUsers.forEach(item -> { exportUsers.forEach(item -> {
//创建用户 //创建用户
SysUser sysUser = new SysUser(); SysUser sysUser = new SysUser();
//TODO:获取初始化密码
sysUser.setId(IdUtils.fastSimpleUUID()); sysUser.setId(IdUtils.fastSimpleUUID());
sysUser.setPassword("$2a$10$6CA0M3iyO8u8zSVtmufYGO3KfLvjaE5fxdHCqTQ2NpxYH/Dxi/fBu") sysUser.setPassword("$2a$10$6CA0M3iyO8u8zSVtmufYGO3KfLvjaE5fxdHCqTQ2NpxYH/Dxi/fBu")
.setNickName(item.getAlias()) .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; private String id;
/** /**
* 备注 * 是否通过
*/ */
@ApiModelProperty("备注") @NotNull(message = "是否通过不能为空")
private String remark; @ApiModelProperty(value = "是否通过", required = true)
private Boolean isPass;
/**
* 预期完成日期
*/
@ApiModelProperty("预期完成日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate expectedCompletionDate;
/** /**
* 任务评级(0:A;1:B;2:C;3:D;4:E) * 任务评级(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)") @ApiModelProperty("任务评级(0:A;1:B;2:C;3:D;4:E)")
private Integer taskRating; 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 @Data
@Accessors(chain = true) @Accessors(chain = true)
@ApiModel(value = "Task转交对象", description = "Task转交对象") @ApiModel(value = "Task转交对象", description = "Task转交对象")
public class TransferTaskBo implements Serializable { public class TransferTaskBo {
private static final long serialVersionUID = 1L;
/** /**
* 主键 * 主键

View File

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

View File

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

View File

@ -45,7 +45,7 @@ public class Task extends BaseEntity implements Serializable {
private String responsibleStaffId; 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; private Integer taskStatus;

View File

@ -105,20 +105,11 @@ public interface StaffService extends IService<Staff> {
List<StaffVo> getServiceStaffList(); List<StaffVo> getServiceStaffList();
/** /**
* @Description: 查询技术员工列表 * 技术模块-今日事务-查询技术员工列表
* @return: R<PageVo<StaffPageVo>> * @author DB
* @Author: DB * @since 2023/12/04
* @Date: 2023/5/11 17:50 * @return List<StaffVo>
**/ */
List<StaffVo> getTechnologyStaffList(); 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 * @author DB
* @param subject 主体 * @param subject 主体
* @param taskContent 任务内容 * @param taskContent 任务内容
* @param toBeEvaluated 是否待评估 * @param taskGetStatus 任务领取状态(0:待领取;1:待评估;10:审核不通过)
* @since 2023-11-30 22:21:58 * @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); void setTaskAuditComments(TaskAuditCommentsBo bo);
/** /**
* @Description: 查询OAM-个人任务分页列表 * 技术模块-今日事务-个人任务分页列表
* @return: R<PageVo<PersonTaskPageListVo>> * @author DB
* @Author: DB * @since 2023/12/04
* @Date: 2023/5/16 15:24 * @return Page<PersonTaskPageVo>
**/ */
Page<PersonTaskPageVo> getPersonTaskPage(PersonTaskPageBo bo); Page<PersonTaskPageVo> getPersonTaskPage();
/** /**
* @Description: 修改任务进度 * @Description: 修改任务进度
@ -86,12 +86,11 @@ public interface TaskService extends IService<Task> {
void updateTaskItem(TaskItemBo bo); void updateTaskItem(TaskItemBo bo);
/** /**
* @Description: 修改任务负责人 * 技术模块-今日事务-修改任务负责人
* @author DB
* @since 2023/12/04
* @param bo 请求参数 * @param bo 请求参数
* @return: R<Void> */
* @Author: DB
* @Date: 2023/5/29 14:58
**/
void updateTaskResponsibleStaff(TransferTaskBo bo); void updateTaskResponsibleStaff(TransferTaskBo bo);
/** /**

View File

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

View File

@ -34,7 +34,6 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* 工单模块-工单提交-获取当天值班人员 * 工单模块-工单提交-获取当天值班人员
* @author DB * @author DB
* @since 2023-11-29 14:01:03 * @since 2023-11-29 14:01:03
* @version 1.0.0
*/ */
WorkOrderDutyVo getWorkOrderDutyStaff(); WorkOrderDutyVo getWorkOrderDutyStaff();
@ -42,14 +41,12 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* 工单模块-工单提交-已办结分页列表 * 工单模块-工单提交-已办结分页列表
* @author DB * @author DB
* @since 2023-11-29 14:35:08 * @since 2023-11-29 14:35:08
* @version 1.0.0
*/ */
Page<TaskWorkOrderPageVo> finishWorkOrderPage(); Page<TaskWorkOrderPageVo> finishWorkOrderPage();
/** /**
* 工单模块-工单提交-新增工单 * 工单模块-工单提交-新增工单
* @param bo 请求参数 * @param bo 请求参数
* @return R<Void>
* @author DB * @author DB
* @since 2023/5/30 16:53 * @since 2023/5/30 16:53
**/ **/
@ -60,7 +57,6 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* @author DB * @author DB
* @param workOrderId 工单id * @param workOrderId 工单id
* @since 2023-11-29 11:25:28 * @since 2023-11-29 11:25:28
* @version 1.0.0
*/ */
List<TaskWorkOrderRecordListVo> getWorkOrderRecordList(String workOrderId); List<TaskWorkOrderRecordListVo> getWorkOrderRecordList(String workOrderId);
@ -69,7 +65,6 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* @author DB * @author DB
* @param bo 请求参数 * @param bo 请求参数
* @since 2023-11-29 11:33:35 * @since 2023-11-29 11:33:35
* @version 1.0.0
*/ */
void insertWorkOrderRecord(TaskWorkOrderRecordBo bo); void insertWorkOrderRecord(TaskWorkOrderRecordBo bo);
@ -78,7 +73,6 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* @author DB * @author DB
* @param workOrderId 工单id * @param workOrderId 工单id
* @since 2023-11-29 11:41:46 * @since 2023-11-29 11:41:46
* @version 1.0.0
*/ */
void workOrderRemind(String workOrderId); void workOrderRemind(String workOrderId);
@ -87,7 +81,6 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* @author DB * @author DB
* @param workOrderId 工单id * @param workOrderId 工单id
* @since 2023-11-29 12:30:21 * @since 2023-11-29 12:30:21
* @version 1.0.0
*/ */
void workOrderToDemand(String workOrderId); void workOrderToDemand(String workOrderId);
@ -96,7 +89,6 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* @author DB * @author DB
* @param bo 请求参数 * @param bo 请求参数
* @since 2023-11-29 16:00:18 * @since 2023-11-29 16:00:18
* @version 1.0.0
*/ */
void pauseWorkOrder(PauseWorkOrderBo bo); void pauseWorkOrder(PauseWorkOrderBo bo);
@ -105,7 +97,6 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* @author DB * @author DB
* @param workOrderId 工单id * @param workOrderId 工单id
* @since 2023-11-29 15:44:08 * @since 2023-11-29 15:44:08
* @version 1.0.0
*/ */
void workOrderFinish(String workOrderId); void workOrderFinish(String workOrderId);
@ -115,4 +106,12 @@ public interface TaskWorkOrderService extends IService<TaskWorkOrder> {
* @since 2023-11-30 19:41:32 * @since 2023-11-30 19:41:32
*/ */
List<TaskWorkOrderPersonVo> getPersonWorkOrder(); 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
* @Author: DB * @since 2023/12/04
* @Date: 2023/5/11 17:50 * @return List<StaffVo>
**/ */
@Override @Override
public List<StaffVo> getTechnologyStaffList() { public List<StaffVo> getTechnologyStaffList() {
return this.listAs(QueryWrapper.create() return this.listAs(QueryWrapper.create()
@ -381,17 +381,4 @@ public class StaffServiceImpl extends ServiceImpl<StaffMapper, Staff> implements
StaffVo.class); 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.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters; import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.cpop.oam.business.entity.table.StaffTableDef.STAFF; 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.TaskStaffGroupTableDef.TASK_STAFF_GROUP;
import static com.cpop.oam.business.entity.table.TaskTableDef.TASK; import static com.cpop.oam.business.entity.table.TaskTableDef.TASK;
import static com.mybatisflex.core.query.QueryMethods.groupConcat; import static com.mybatisflex.core.query.QueryMethods.groupConcat;
import org.springframework.transaction.annotation.Transactional; 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 任务内容 * @param taskContent 任务内容
* @author DB
* @since 2023-11-30 21:11:47 * @since 2023-11-30 21:11:47
*/ */
@Override @Override
@ -79,105 +78,108 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo(); JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
PageDomain pageDomain = SqlUtils.getInstance().getPageDomain(); PageDomain pageDomain = SqlUtils.getInstance().getPageDomain();
return this.mapper.paginateAs(Page.of(pageDomain.getPageNum(), pageDomain.getPageSize()), return this.mapper.paginateAs(Page.of(pageDomain.getPageNum(), pageDomain.getPageSize()),
QueryWrapper.create() QueryWrapper.create()
.select(TASK.ID, .select(TASK.ID,
TASK.RESPONSIBLE_STAFF_ID, TASK.RESPONSIBLE_STAFF_ID,
TASK.TASK_CONTENT, TASK.TASK_CONTENT,
TASK.TASK_RATING, TASK.TASK_RATING,
TASK.TASK_RECEIPT_TIME, TASK.TASK_RECEIPT_TIME,
TASK.TEST_TO_FINISH_URL, TASK.TEST_TO_FINISH_URL,
TASK.TO_TEST_TIME, TASK.TO_TEST_TIME,
TASK.TO_FINISH_TIME, TASK.TO_FINISH_TIME,
TASK.SUBJECT) TASK.SUBJECT)
.select(TASK_STAFF_GROUP.GRADE_POINT) .select(TASK_STAFF_GROUP.GRADE_POINT)
.from(TASK) .from(TASK)
.leftJoin(TASK_STAFF_GROUP) .leftJoin(TASK_STAFF_GROUP)
.on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID)) .on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID))
.where(TASK_STAFF_GROUP.STAFF_ID.eq(loginUserInfo.getString("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.TASK_STATUS.eq(isFinish ? 8 : 9).and(TASK.TASK_CONTENT.like(taskContent)))
.and(TASK.SUBJECT.like(subject)), .and(TASK.SUBJECT.like(subject)),
TaskArchivingPagVo.class, TaskArchivingPagVo.class,
// 负责人 // 负责人
item -> item.field(TaskArchivingPagVo::getResponsibleStaffName) item -> item.field(TaskArchivingPagVo::getResponsibleStaffName)
.queryWrapper( .queryWrapper(
recordStaff -> queryChain().select(STAFF.NAME.as(TaskArchivingPagVo::getResponsibleStaffName)) recordStaff -> queryChain().select(STAFF.NAME.as(TaskArchivingPagVo::getResponsibleStaffName))
.from(STAFF) .from(STAFF)
.where(STAFF.ID.eq(recordStaff.getResponsibleStaffId()))), .where(STAFF.ID.eq(recordStaff.getResponsibleStaffId()))),
// 小组成员 // 小组成员
item -> item.field(TaskArchivingPagVo::getTaskGroupStaffs) item -> item.field(TaskArchivingPagVo::getTaskGroupStaffs)
.queryWrapper(taskGroupStaffs -> queryChain() .queryWrapper(taskGroupStaffs -> queryChain()
.select(groupConcat(STAFF.NAME).as(TaskArchivingPagVo::getTaskGroupStaffs)) .select(groupConcat(STAFF.NAME).as(TaskArchivingPagVo::getTaskGroupStaffs))
.from(STAFF) .from(STAFF)
.leftJoin(TASK_STAFF_GROUP) .leftJoin(TASK_STAFF_GROUP)
.on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID)) .on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID))
.where(TASK_STAFF_GROUP.STAFF_ID.eq(taskGroupStaffs.getId())) .where(TASK_STAFF_GROUP.STAFF_ID.eq(taskGroupStaffs.getId()))
.groupBy(TASK.ID))); .groupBy(TASK.ID)));
} }
/** /**
* 技术模块-任务归档-设置任务归档 * 技术模块-任务归档-设置任务归档
* @author DB *
* @param taskId 任务id * @param taskId 任务id
* @author DB
* @since 2023-11-30 21:49:05 * @since 2023-11-30 21:49:05
*/ */
@Override @Override
public void setTaskArchiving(String taskId) { public void setTaskArchiving(String taskId) {
this.updateChain() this.updateChain()
.set(TASK.TASK_STATUS, 9) .set(TASK.TASK_STATUS, 9)
.set(TASK.TO_FINISH_TIME, LocalDateTime.now()) .set(TASK.TO_FINISH_TIME, LocalDateTime.now())
.where(TASK.ID.eq(taskId)) .where(TASK.ID.eq(taskId))
.update(); .update();
} }
/** /**
* 技术模块-任务领取-获取领取任务分页 * 技术模块-任务领取-获取领取任务分页
*
* @param subject 主体
* @param taskContent 任务内容
* @param taskGetStatus 任务领取状态(0:待领取;1:待评估;10:审核不通过)
* @author DB * @author DB
* @param subject 主体
* @param taskContent 任务内容
* @param toBeEvaluated 是否待评估
* @since 2023-11-30 22:21:58 * @since 2023-11-30 22:21:58
*/ */
@Override @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(); PageDomain pageDomain = SqlUtils.getInstance().getPageDomain();
return this.mapper.paginateAs(Page.of(pageDomain.getPageNum(), pageDomain.getPageSize()), return this.mapper.paginateAs(Page.of(pageDomain.getPageNum(), pageDomain.getPageSize()),
QueryWrapper.create() QueryWrapper.create()
.select(TASK.ID, .select(TASK.ID,
TASK.TASK_TYPE, TASK.TASK_TYPE,
TASK.SUBJECT, TASK.SUBJECT,
TASK.TASK_CONTENT, TASK.TASK_CONTENT,
TASK.ATTACHMENT_URL, TASK.ATTACHMENT_URL,
TASK.TASK_RATING, TASK.TASK_RATING,
TASK.CREATE_TIME) TASK.CREATE_TIME)
.select(TASK_STAFF_GROUP.GRADE_POINT) .select(TASK_STAFF_GROUP.GRADE_POINT)
.from(TASK) .from(TASK)
.leftJoin(TASK_STAFF_GROUP) .leftJoin(TASK_STAFF_GROUP)
.on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID)) .on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID))
.where(TASK.TASK_STATUS.eq(toBeEvaluated ? 0 : 1)) .where(TASK.TASK_STATUS.eq(taskGetStatus))
.and(TASK.TASK_CONTENT.like(taskContent)) .and(TASK.TASK_CONTENT.like(taskContent))
.and(TASK.SUBJECT.like(subject)) .and(TASK.SUBJECT.like(subject))
.orderBy(TASK.IS_URGENT.desc(), TASK.CREATE_TIME.desc()), .orderBy(TASK.IS_URGENT.desc(), TASK.CREATE_TIME.desc()),
TaskToBeClaimedPageVo.class, TaskToBeClaimedPageVo.class,
// 对接人 // 对接人
item -> item.field(TaskToBeClaimedPageVo::getDockingStaff).queryWrapper(dockingStaff -> { item -> item.field(TaskToBeClaimedPageVo::getDockingStaff).queryWrapper(dockingStaff -> {
if (dockingStaff.getTaskType() == 1) { if (dockingStaff.getTaskType() == 1) {
return queryChain().select(STAFF.NAME.as(TaskToBeClaimedPageVo::getDockingStaff)) return queryChain().select(STAFF.NAME.as(TaskToBeClaimedPageVo::getDockingStaff))
.select(STAFF.NAME) .select(STAFF.NAME)
.from(STAFF) .from(STAFF)
.leftJoin(TASK_DEMAND) .leftJoin(TASK_DEMAND)
.on(TASK_DEMAND.RECORD_STAFF_ID.eq(STAFF.ID)) .on(TASK_DEMAND.RECORD_STAFF_ID.eq(STAFF.ID))
.where(TASK_DEMAND.TASK_ID.eq(dockingStaff.getId())); .where(TASK_DEMAND.TASK_ID.eq(dockingStaff.getId()));
} else { } else {
return null; return null;
} }
})); }));
} }
/** /**
* 技术模块-任务领取-新增迭代任务 * 技术模块-任务领取-新增迭代任务
* @author DB *
* @param bo 请求 * @param bo 请求
* @author DB
* @since 2023-12-01 09:45:08 * @since 2023-12-01 09:45:08
*/ */
@Override @Override
@ -202,10 +204,10 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
phoneList.add(auditStaffPhone); phoneList.add(auditStaffPhone);
try { try {
SpringUtils.getBean(WebHookSendHandler.class) SpringUtils.getBean(WebHookSendHandler.class)
.webHookSendText(WebHookKeyConstant.PRODUCT_BOT, .webHookSendText(WebHookKeyConstant.PRODUCT_BOT,
phoneList, phoneList,
"==========您有一条新的迭代任务需要审核==========" + "\n" + entity.getTaskContent(), "==========您有一条新的迭代任务需要审核==========" + "\n" + entity.getTaskContent(),
false); false);
} catch (IOException e) { } catch (IOException e) {
throw new ServiceException("发送迭代任务通知失败!"); throw new ServiceException("发送迭代任务通知失败!");
} }
@ -213,8 +215,9 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
/** /**
* 技术模块-任务领取-技术人员领取任务 * 技术模块-任务领取-技术人员领取任务
* @author DB *
* @param id 任务id * @param id 任务id
* @author DB
* @since 2023-12-01 10:15:28 * @since 2023-12-01 10:15:28
*/ */
@Override @Override
@ -257,11 +260,11 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
} }
} }
// 获取当前用户 // 获取当前用户
LoginUser loginUser = SecurityUtils.getInstance().getLoginUser(); JSONObject loginUser = SecurityUtils.getInstance().getLoginUserInfo();
if (!Constants.SUPER_ADMIN.equals(loginUser.getUsername())) { if (!Constants.SUPER_ADMIN.equals(loginUser.getString("userName"))) {
// 获取当前员工 // 获取当前员工
Staff staff = SpringUtils.getBean(StaffService.class) 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()); task.setResponsibleStaffId(staff.getId());
} }
this.updateById(task); this.updateById(task);
@ -290,78 +293,82 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
} }
taskStaffGroup.setStaffId(task.getResponsibleStaffId()).setTaskId(id).setGradePoint(taskRatingPoint); taskStaffGroup.setStaffId(task.getResponsibleStaffId()).setTaskId(id).setGradePoint(taskRatingPoint);
SpringUtils.getBean(TaskStaffGroupService.class).save(taskStaffGroup); 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 请求参数 * @param bo 请求参数
* @author DB
* @since 2023-12-01 10:35:31 * @since 2023-12-01 10:35:31
*/ */
@Override @Override
public void setTaskAuditComments(TaskAuditCommentsBo bo) { public void setTaskAuditComments(TaskAuditCommentsBo bo) {
Task entity = BeanUtils.mapToClass(bo, Task.class); Task entity = BeanUtils.mapToClass(bo, Task.class);
entity.setTaskStatus(1); if (bo.getIsPass()) {
this.updateById(entity); entity.setTaskStatus(1);
// 通知所有人 this.updateById(entity);
try { // 通知所有人
SpringUtils.getBean(WebHookSendHandler.class) try {
.webHookSendText(WebHookKeyConstant.PRODUCT_BOT, SpringUtils.getBean(WebHookSendHandler.class)
new ArrayList<>(), .webHookSendText(WebHookKeyConstant.PRODUCT_BOT,
"==========任务审核通过==========" + "\n" + entity.getTaskContent(), new ArrayList<>(),
true); "==========任务审核通过==========" + "\n" + entity.getTaskContent(),
} catch (IOException e) { true);
throw new ServiceException("发送任务审核通过通知失败!"); } catch (IOException e) {
throw new ServiceException("发送任务审核通过通知失败!");
}
} else {
entity.setTaskStatus(10);
this.updateById(entity);
} }
} }
/** /**
* @Description: 查询OAM-个人任务分页列表 * 技术模块-今日事务-个人任务分页列表
* @return: R<PageVo<PersonTaskPageListVo>> *
* @Author: DB * @return Page<PersonTaskPageVo>
* @Date: 2023/5/16 15:24 * @author DB
**/ * @since 2023/12/04
*/
@Override @Override
public Page<PersonTaskPageVo> getPersonTaskPage(PersonTaskPageBo bo) { public Page<PersonTaskPageVo> getPersonTaskPage() {
// 获取当前登录用户
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));
}
PageDomain pageDomain = SqlUtils.getInstance().getPageDomain(); PageDomain pageDomain = SqlUtils.getInstance().getPageDomain();
return this.mapper.paginateAs(pageDomain.getPageNum(), return this.mapper.paginateAs(pageDomain.getPageNum(),
pageDomain.getPageSize(), pageDomain.getPageSize(),
queryWrapper.select(TASK.ALL_COLUMNS) QueryWrapper.create()
.select(STAFF.NAME.as(PersonTaskPageVo::getResponsibleStaffName)) .select(TASK.ID, TASK.TASK_STATUS, TASK.TASK_CONTENT, TASK.TASK_ITEM, TASK.TASK_RATING, TASK.TASK_RECEIPT_TIME, TASK.EXPECTED_COMPLETION_DATE)
.from(TASK) .select(STAFF.NAME.as(PersonTaskPageVo::getResponsibleStaffName))
// 员工表 //个人绩点
.leftJoin(STAFF) .select(TASK_STAFF_GROUP.GRADE_POINT)
.on(STAFF.ID.eq(TASK.RESPONSIBLE_STAFF_ID)) .from(TASK)
// 任务员工组 // 员工表
.leftJoin(TASK_STAFF_GROUP) .leftJoin(STAFF)
.on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID)) .on(STAFF.ID.eq(TASK.RESPONSIBLE_STAFF_ID))
.where(TASK.TASK_TYPE.in(0, 1)) // 任务员工组
.and(TASK_STAFF_GROUP.STAFF_ID.eq(staffId)) .leftJoin(TASK_STAFF_GROUP)
.orderBy(TASK.EXPECTED_COMPLETION_DATE.asc()), .on(TASK_STAFF_GROUP.TASK_ID.eq(TASK.ID))
PersonTaskPageVo.class); .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 请求参数 * @param bo 请求参数
* @Description: 修改任务进度
* @return: R<Void> * @return: R<Void>
* @Author: DB * @Author: DB
* @Date: 2023/5/29 14:58 * @Date: 2023/5/29 14:58
@ -373,50 +380,50 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
} }
/** /**
* @Description: 修改任务负责人 * 技术模块-今日事务-修改任务负责人
*
* @param bo 请求参数 * @param bo 请求参数
* @return: R<Void> * @author DB
* @Author: DB * @since 2023/12/04
* @Date: 2023/5/29 14:58 */
**/
@Override @Override
public void updateTaskResponsibleStaff(TransferTaskBo bo) { public void updateTaskResponsibleStaff(TransferTaskBo bo) {
isTaskResponsibleStaff(bo.getId()); isTaskResponsibleStaff(bo.getId());
// 新负责人在不在任务组内 // 新负责人在不在任务组内
TaskStaffGroupService taskStaffGroupService = SpringUtils.getBean(TaskStaffGroupService.class); TaskStaffGroupService taskStaffGroupService = SpringUtils.getBean(TaskStaffGroupService.class);
long count = taskStaffGroupService.count(QueryWrapper.create() long count = taskStaffGroupService.count(QueryWrapper.create()
.where(TASK_STAFF_GROUP.TASK_ID.eq(bo.getId())) .where(TASK_STAFF_GROUP.TASK_ID.eq(bo.getId()))
.and(TASK_STAFF_GROUP.STAFF_ID.eq(bo.getNewResponsibleStaffId()))); .and(TASK_STAFF_GROUP.STAFF_ID.eq(bo.getNewResponsibleStaffId())));
// 获取旧员工绩点 // 获取旧员工绩点
TaskStaffGroup oldStaffGroup = taskStaffGroupService.getOne(QueryWrapper.create() TaskStaffGroup oldStaffGroup = taskStaffGroupService.getOne(QueryWrapper.create()
.where(TASK_STAFF_GROUP.TASK_ID.eq(bo.getId())) .where(TASK_STAFF_GROUP.TASK_ID.eq(bo.getId()))
.and(TASK_STAFF_GROUP.STAFF_ID.eq(bo.getResponsibleStaffId()))); .and(TASK_STAFF_GROUP.STAFF_ID.eq(bo.getResponsibleStaffId())));
if (count == 0) { if (count == 0) {
// 不在 // 不在
TaskStaffGroup taskStaffGroup = new TaskStaffGroup(); TaskStaffGroup taskStaffGroup = new TaskStaffGroup();
taskStaffGroup.setStaffId(bo.getNewResponsibleStaffId()) taskStaffGroup.setStaffId(bo.getNewResponsibleStaffId())
.setTaskId(bo.getId()) .setTaskId(bo.getId())
.setGradePoint(oldStaffGroup.getGradePoint()); .setGradePoint(oldStaffGroup.getGradePoint());
taskStaffGroupService.save(taskStaffGroup); taskStaffGroupService.save(taskStaffGroup);
} else { } else {
// 直接添加绩点 // 直接添加绩点
TaskStaffGroup newStaffGroup = taskStaffGroupService.getOne(QueryWrapper.create() TaskStaffGroup newStaffGroup = taskStaffGroupService.getOne(QueryWrapper.create()
.where(TASK_STAFF_GROUP.TASK_ID.eq(bo.getId())) .where(TASK_STAFF_GROUP.TASK_ID.eq(bo.getId()))
.and(TASK_STAFF_GROUP.STAFF_ID.eq(bo.getNewResponsibleStaffId()))); .and(TASK_STAFF_GROUP.STAFF_ID.eq(bo.getNewResponsibleStaffId())));
newStaffGroup.setGradePoint(newStaffGroup.getGradePoint() + oldStaffGroup.getGradePoint()); newStaffGroup.setGradePoint(newStaffGroup.getGradePoint() + oldStaffGroup.getGradePoint());
taskStaffGroupService.updateById(newStaffGroup); taskStaffGroupService.updateById(newStaffGroup);
} }
taskStaffGroupService.removeById(oldStaffGroup.getId()); taskStaffGroupService.removeById(oldStaffGroup.getId());
// 替换任务负责人 // 替换任务负责人
this.updateChain() this.updateChain()
.set(TASK.RESPONSIBLE_STAFF_ID, bo.getNewResponsibleStaffId()) .set(TASK.RESPONSIBLE_STAFF_ID, bo.getNewResponsibleStaffId())
.where(TASK.ID.eq(bo.getId())) .where(TASK.ID.eq(bo.getId()))
.update(); .update();
} }
/** /**
* @Description: 是否是任务主要负责员工
* @param taskId 任务id * @param taskId 任务id
* @Description: 是否是任务主要负责员工
* @return: Boolean * @return: Boolean
* @Author: DB * @Author: DB
* @Date: 2023/5/30 9:48 * @Date: 2023/5/30 9:48
@ -436,8 +443,8 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
} }
/** /**
* @Description: 完成任务
* @param id 主键 * @param id 主键
* @Description: 完成任务
* @return: R<Void> * @return: R<Void>
* @Author: DB * @Author: DB
* @Date: 2023/5/31 16:24 * @Date: 2023/5/31 16:24
@ -467,9 +474,9 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
} }
/** /**
* @Description: 获取月度任务统计列表
* @param bo 请求参数 * @param bo 请求参数
* @return: R<List<TaskListVo>> * @Description: 获取月度任务统计列表
* @return: R<List < TaskListVo>>
* @Author: DB * @Author: DB
* @Date: 2023/5/15 16:42 * @Date: 2023/5/15 16:42
**/ **/
@ -480,16 +487,14 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
// 读取员工信息 // 读取员工信息
JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo(); JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
QueryWrapper queryWrapper = QueryWrapper.create(); QueryWrapper queryWrapper = QueryWrapper.create();
if (Constants.SUPER_ADMIN.equals(loginUserInfo.getString("userName"))) { if (!Constants.SUPER_ADMIN.equals(loginUserInfo.getString("userName"))) {
// TODO超级管理员暂时获取所有任务
} else {
// 查询个人涉及到的任务 // 查询个人涉及到的任务
TaskStaffGroupService taskStaffGroupService = SpringUtils.getBean(TaskStaffGroupService.class); TaskStaffGroupService taskStaffGroupService = SpringUtils.getBean(TaskStaffGroupService.class);
taskStaffGroups = taskStaffGroupService 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()) { if (!taskStaffGroups.isEmpty()) {
queryWrapper.and( 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()) { if (taskStaffGroups.isEmpty()) {
return new TaskMonthStatisticsVo(); return new TaskMonthStatisticsVo();
@ -508,8 +513,8 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
firstDay = now.with(TemporalAdjusters.firstDayOfMonth()); firstDay = now.with(TemporalAdjusters.firstDayOfMonth());
} }
List<Task> taskList = this.list(queryWrapper.select(TASK.ALL_COLUMNS) List<Task> taskList = this.list(queryWrapper.select(TASK.ALL_COLUMNS)
.and(TASK.EXPECTED_COMPLETION_DATE.ge(firstDay)) .and(TASK.EXPECTED_COMPLETION_DATE.ge(firstDay))
.orderBy(TASK.EXPECTED_COMPLETION_DATE.asc())); .orderBy(TASK.EXPECTED_COMPLETION_DATE.asc()));
if (taskList.isEmpty()) { if (taskList.isEmpty()) {
return new TaskMonthStatisticsVo(); return new TaskMonthStatisticsVo();
} }
@ -524,7 +529,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
* @Date: 2023/5/15 17:54 * @Date: 2023/5/15 17:54
**/ **/
private TaskMonthStatisticsVo buildMonthTaskStatistics(List<Task> taskList, TaskMonthStatisticsBo bo, private TaskMonthStatisticsVo buildMonthTaskStatistics(List<Task> taskList, TaskMonthStatisticsBo bo,
List<TaskStaffGroup> taskStaffGroups) { List<TaskStaffGroup> taskStaffGroups) {
TaskMonthStatisticsVo statisticsVo = new TaskMonthStatisticsVo(); TaskMonthStatisticsVo statisticsVo = new TaskMonthStatisticsVo();
List<TaskMonthStatisticsVo.DataStatisticsVo> vos = new ArrayList<>(); List<TaskMonthStatisticsVo.DataStatisticsVo> vos = new ArrayList<>();
statisticsVo.setVos(vos); 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()); statisticsVo.setInProgress(taskList.stream().filter(s -> 2 == s.getTaskStatus()).count());
// 已完成 // 已完成
Set<String> finishTaskSet = 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.setHaveCompleted(Long.parseLong(String.valueOf(finishTaskSet.size())));
// 已逾期 // 已逾期
statisticsVo.setOverdue(taskList.stream().filter(s -> 4 == s.getTaskStatus()).count()); 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()); statisticsVo.setOverdueCompletion(taskList.stream().filter(s -> 6 == s.getTaskStatus()).count());
// 逾期完成 // 逾期完成
Set<String> overdueCompletionSet = 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) { if (null != taskStaffGroups) {
// 统计绩点(计算已完成的和逾期完成) // 统计绩点(计算已完成的和逾期完成)
Long finishGpa = statisticalGPA(taskStaffGroups.stream() Long finishGpa = statisticalGPA(taskStaffGroups.stream()
.filter(s -> finishTaskSet.contains(s.getTaskId())) .filter(s -> finishTaskSet.contains(s.getTaskId()))
.collect(Collectors.toList())); .collect(Collectors.toList()));
Long overdueCompletionGpa = statisticalGPA(taskStaffGroups.stream() Long overdueCompletionGpa = statisticalGPA(taskStaffGroups.stream()
.filter(s -> overdueCompletionSet.contains(s.getTaskId())) .filter(s -> overdueCompletionSet.contains(s.getTaskId()))
.collect(Collectors.toList())); .collect(Collectors.toList()));
statisticsVo.setGpaOfTheMonth(finishGpa + overdueCompletionGpa); statisticsVo.setGpaOfTheMonth(finishGpa + overdueCompletionGpa);
} }
List<Date> allTheDateOfMonth; List<Date> allTheDateOfMonth;
@ -582,8 +587,8 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
} }
/** /**
* @Description: 统计绩点
* @param taskStaffGroups 绩点列表 * @param taskStaffGroups 绩点列表
* @Description: 统计绩点
* @return: Long * @return: Long
* @Author: DB * @Author: DB
* @Date: 2023/5/29 18:24 * @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.SecurityUtils;
import com.cpop.core.utils.SpringUtils; import com.cpop.core.utils.SpringUtils;
import com.cpop.oam.business.bo.TaskStaffGroupBo; 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.Task;
import com.cpop.oam.business.entity.TaskStaffGroup; import com.cpop.oam.business.entity.TaskStaffGroup;
import com.cpop.oam.business.mapper.TaskStaffGroupMapper; import com.cpop.oam.business.mapper.TaskStaffGroupMapper;
@ -45,42 +44,38 @@ public class TaskStaffGroupServiceImpl extends ServiceImpl<TaskStaffGroupMapper,
implements TaskStaffGroupService { implements TaskStaffGroupService {
/** /**
* @Description: 查询OAM-任务成员组列表 * 技术模块-今日事务-任务成员组列
* @return: R<PageVo<PersonTaskPageListVo>> * @author DB
* @Author: DB * @since 2023/12/04
* @Date: 2023/5/16 15:24 * @param taskId 任务id
**/ * @return List<TaskStaffGroupVo>
*/
@Override @Override
public List<TaskStaffGroupVo> getTaskStaffGroupList(TaskStaffGroupListBo bo) { public List<TaskStaffGroupVo> getTaskStaffGroupList(String taskId) {
return this.listAs(QueryWrapper.create() return this.listAs(QueryWrapper.create()
.select(TASK_STAFF_GROUP.ALL_COLUMNS) .select(TASK_STAFF_GROUP.ALL_COLUMNS)
.select(STAFF.NAME.as(TaskStaffGroupVo::getStaffName)) .select(STAFF.NAME.as(TaskStaffGroupVo::getStaffName))
.from(TASK_STAFF_GROUP) .from(TASK_STAFF_GROUP)
.leftJoin(STAFF) .leftJoin(STAFF)
.on(STAFF.ID.eq(TASK_STAFF_GROUP.STAFF_ID)) .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 请求参数 * @param bo 请求参数
* @return: R<Void> */
* @Author: DB
* @Date: 2023/5/16 15:58
**/
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void insertTaskStaffGroup(TaskStaffGroupBo bo) { public void insertTaskStaffGroup(TaskStaffGroupBo bo) {
// 获取任务 // 获取任务
TaskService taskService = SpringUtils.getBean(TaskService.class); TaskService taskService = SpringUtils.getBean(TaskService.class);
Task task = taskService.getById(bo.getTaskId()); Task task = taskService.getById(bo.getTaskId());
// 当前操作员工是否是主要负责人不是抛出异常 // 当前操作员工是否是主要负责人不是抛出异常
LoginUser loginUser = SecurityUtils.getInstance().getLoginUser(); JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
// 读取员工信息 if (!StringUtils.equals(task.getResponsibleStaffId(), loginUserInfo.getString("id"))) {
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())) {
throw new ServiceException("当前操作员工不是当前任务主要负责人,不允许操作当前任务!"); throw new ServiceException("当前操作员工不是当前任务主要负责人,不允许操作当前任务!");
} }
// 查询当前添加的员工是否存在在此任务中 // 查询当前添加的员工是否存在在此任务中
@ -106,16 +101,14 @@ public class TaskStaffGroupServiceImpl extends ServiceImpl<TaskStaffGroupMapper,
this.updateById(responsibleStaff); this.updateById(responsibleStaff);
// 企微通知绩点调整人员 // 企微通知绩点调整人员
List<String> phoneList = new ArrayList<String>(); List<String> phoneList = new ArrayList<String>();
phoneList.add(loginInfo.getPhoneNumber()); phoneList.add(loginUserInfo.getString("phoneNumber"));
// 获取新增员工信息 // 获取新增员工信息
StaffInfoVo staffInfo = SpringUtils.getBean(StaffService.class).getStaffInfo(bo.getStaffId()); StaffInfoVo staffInfo = SpringUtils.getBean(StaffService.class).getStaffInfo(bo.getStaffId());
phoneList.add(staffInfo.getPhoneNumber()); phoneList.add(staffInfo.getPhoneNumber());
try { try {
SpringUtils.getBean(WebHookSendHandler.class) SpringUtils.getBean(WebHookSendHandler.class).webHookSendText(WebHookKeyConstant.PRODUCT_BOT, phoneList,
.webHookSendText(WebHookKeyConstant.PRODUCT_BOT, loginUserInfo.getString("name") + "您的绩点调整为" + responsibleStaff.getGradePoint() + "\n" + staffInfo.getName()
phoneList, + "您新加入任务:" + task.getTaskContent() + "绩点为:" + bo.getGradePoint(),
loginInfo.getName() + "您的绩点调整为" + responsibleStaff.getGradePoint() + "\n" + staffInfo.getName()
+ "您新加入任务:" + task.getTaskContent() + "绩点为:" + bo.getGradePoint(),
false); false);
} catch (IOException e) { } catch (IOException e) {
throw new ServiceException("发送通知失败!"); throw new ServiceException("发送通知失败!");
@ -123,12 +116,11 @@ public class TaskStaffGroupServiceImpl extends ServiceImpl<TaskStaffGroupMapper,
} }
/** /**
* @Description: 修改员工任务绩点 * 技术模块-今日事务-修改员工任务绩点
* @author DB
* @since 2023/12/04
* @param bo 请求参数 * @param bo 请求参数
* @return: R<Void> */
* @Author: DB
* @Date: 2023/5/29 11:48
**/
@Override @Override
public void updateStaffGradePoint(TaskStaffGroupBo bo) { public void updateStaffGradePoint(TaskStaffGroupBo bo) {
// 获取任务主负责人相关绩点 // 获取任务主负责人相关绩点
@ -137,13 +129,8 @@ public class TaskStaffGroupServiceImpl extends ServiceImpl<TaskStaffGroupMapper,
if (null == task) { if (null == task) {
throw new ServiceException("获取任务失败!请联系相关人员!"); throw new ServiceException("获取任务失败!请联系相关人员!");
} }
// 当前操作员工是否是主要负责人不是抛出异常 JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
LoginUser loginUser = SecurityUtils.getInstance().getLoginUser(); if (!StringUtils.equals(task.getResponsibleStaffId(), loginUserInfo.getString("id"))) {
// 读取员工信息
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())) {
throw new ServiceException("当前操作员工不是当前任务主要负责人,不允许操作当前任务!"); throw new ServiceException("当前操作员工不是当前任务主要负责人,不允许操作当前任务!");
} }
if (StringUtils.equals(bo.getStaffId(), task.getResponsibleStaffId())) { if (StringUtils.equals(bo.getStaffId(), task.getResponsibleStaffId())) {
@ -181,16 +168,14 @@ public class TaskStaffGroupServiceImpl extends ServiceImpl<TaskStaffGroupMapper,
.update(); .update();
// 企微通知绩点调整人员 // 企微通知绩点调整人员
List<String> phoneList = new ArrayList<String>(); List<String> phoneList = new ArrayList<String>();
phoneList.add(loginInfo.getPhoneNumber()); phoneList.add(loginUserInfo.getString("phoneNumber"));
// 获取新增员工信息 // 获取新增员工信息
StaffInfoVo staffInfo = SpringUtils.getBean(StaffService.class).getStaffInfo(bo.getStaffId()); StaffInfoVo staffInfo = SpringUtils.getBean(StaffService.class).getStaffInfo(bo.getStaffId());
phoneList.add(staffInfo.getPhoneNumber()); phoneList.add(staffInfo.getPhoneNumber());
try { try {
SpringUtils.getBean(WebHookSendHandler.class) SpringUtils.getBean(WebHookSendHandler.class).webHookSendText(WebHookKeyConstant.PRODUCT_BOT, phoneList,
.webHookSendText(WebHookKeyConstant.PRODUCT_BOT, loginUserInfo.getString("name") + "您的绩点调整为" + responsibleStaffTaskInfo.getGradePoint() + "\n"
phoneList, + staffInfo.getName() + "您的绩点调整为:" + bo.getGradePoint(),
loginInfo.getName() + "您的绩点调整为" + responsibleStaffTaskInfo.getGradePoint() + "\n"
+ staffInfo.getName() + "您的绩点调整为:" + bo.getGradePoint(),
false); false);
} catch (IOException e) { } catch (IOException e) {
throw new ServiceException("发送通知失败!"); throw new ServiceException("发送通知失败!");
@ -198,24 +183,19 @@ public class TaskStaffGroupServiceImpl extends ServiceImpl<TaskStaffGroupMapper,
} }
/** /**
* @Description: 删除成员组 * 技术模块-今日事务-删除成员组
* @param id 主键 * @author DB
* @return: R<Void> * @since 2023/12/04
* @Author: DB * @param id 任务组id
* @Date: 2023/5/29 14:18 */
**/
@Override @Override
public void removeTaskStaffGroupById(String id) { public void removeTaskStaffGroupById(String id) {
// 获取任务 // 获取任务
TaskStaffGroup taskStaffGroup = this.getById(id); TaskStaffGroup taskStaffGroup = this.getById(id);
TaskService taskService = SpringUtils.getBean(TaskService.class); TaskService taskService = SpringUtils.getBean(TaskService.class);
Task task = taskService.getById(taskStaffGroup.getTaskId()); Task task = taskService.getById(taskStaffGroup.getTaskId());
// 当前操作员工是否是主要负责人不是抛出异常 JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
LoginUser loginUser = SecurityUtils.getInstance().getLoginUser(); if (!StringUtils.equals(task.getResponsibleStaffId(), loginUserInfo.getString("id"))) {
// 读取员工信息
RedisService redisService = SpringUtils.getBean(RedisService.class);
OamStaffLoginInfo loginInfo = redisService.getCacheObject(UserType.OAM_USER.getKey() + loginUser.getUsername());
if (!StringUtils.equals(task.getResponsibleStaffId(), loginInfo.getId())) {
throw new ServiceException("当前操作员工不是当前任务主要负责人,不允许操作当前任务!"); throw new ServiceException("当前操作员工不是当前任务主要负责人,不允许操作当前任务!");
} }
// 不允许删除主要负责人 // 不允许删除主要负责人

View File

@ -172,7 +172,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* 工单模块-工单提交-获取当天值班人员 * 工单模块-工单提交-获取当天值班人员
* @author DB * @author DB
* @since 2023-11-29 14:01:03 * @since 2023-11-29 14:01:03
* @version 1.0.0
*/ */
@Override @Override
public WorkOrderDutyVo getWorkOrderDutyStaff() { public WorkOrderDutyVo getWorkOrderDutyStaff() {
@ -190,7 +189,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* 工单模块-工单提交-已办结分页列表 * 工单模块-工单提交-已办结分页列表
* @author DB * @author DB
* @since 2023-11-29 14:35:08 * @since 2023-11-29 14:35:08
* @version 1.0.0
*/ */
@Override @Override
public Page<TaskWorkOrderPageVo> finishWorkOrderPage() { public Page<TaskWorkOrderPageVo> finishWorkOrderPage() {
@ -215,7 +213,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
/** /**
* 工单模块-工单提交-新增工单 * 工单模块-工单提交-新增工单
* @param bo 请求参数 * @param bo 请求参数
* @return R<Void>
* @author DB * @author DB
* @since 2023/5/30 16:53 * @since 2023/5/30 16:53
**/ **/
@ -233,11 +230,12 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
BeanUtils.copyBeanProp(task, bo); BeanUtils.copyBeanProp(task, bo);
// 默认待接受 // 默认待接受
task.setTaskStatus(1) task.setTaskStatus(1)
// 默认开发中 // 默认开发中
.setTaskItem(0) .setTaskItem(0)
.setTaskWeight(10) .setTaskWeight(10)
// 工单不参与评级 // 工单不参与评级
.setTaskRating(-1); .setTaskRating(-1)
.setResponsibleStaffId(duty.getTechnologyStaffId());
TaskService taskService = SpringUtils.getBean(TaskService.class); TaskService taskService = SpringUtils.getBean(TaskService.class);
taskService.save(task); taskService.save(task);
// 添加工单 // 添加工单
@ -288,7 +286,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @param isStart 是否是开始标识 * @param isStart 是否是开始标识
* @param dateTime 时间 * @param dateTime 时间
* @since 2023-11-29 10:21:02 * @since 2023-11-29 10:21:02
* @version 1.0.0
*/ */
private void startOrRemoveWorkOrderAcceptTask(String workOrderId, Boolean isStart, LocalDateTime dateTime) { private void startOrRemoveWorkOrderAcceptTask(String workOrderId, Boolean isStart, LocalDateTime dateTime) {
// 基于表达式构建触发器 // 基于表达式构建触发器
@ -329,7 +326,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @param isUpdate 是否更新 * @param isUpdate 是否更新
* @param dateTime 开始时间 * @param dateTime 开始时间
* @since 2023-11-29 16:09:02 * @since 2023-11-29 16:09:02
* @version 1.0.0
*/ */
private void startOrUpdateWorkOrderOvertimeTask(String workOrderId, Boolean isUpdate, LocalDateTime dateTime) { private void startOrUpdateWorkOrderOvertimeTask(String workOrderId, Boolean isUpdate, LocalDateTime dateTime) {
// 基于表达式构建触发器 // 基于表达式构建触发器
@ -369,7 +365,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @author DB * @author DB
* @param workOrderId 工单id * @param workOrderId 工单id
* @since 2023-11-29 11:25:28 * @since 2023-11-29 11:25:28
* @version 1.0.0
*/ */
@Override @Override
public List<TaskWorkOrderRecordListVo> getWorkOrderRecordList(String workOrderId) { public List<TaskWorkOrderRecordListVo> getWorkOrderRecordList(String workOrderId) {
@ -398,7 +393,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @author DB * @author DB
* @param bo 请求参数 * @param bo 请求参数
* @since 2023-11-29 11:33:35 * @since 2023-11-29 11:33:35
* @version 1.0.0
*/ */
@Override @Override
public void insertWorkOrderRecord(TaskWorkOrderRecordBo bo) { public void insertWorkOrderRecord(TaskWorkOrderRecordBo bo) {
@ -414,6 +408,7 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
taskWorkOrderRecord.setRecordStaffId(loginUserInfo.getString("id")); taskWorkOrderRecord.setRecordStaffId(loginUserInfo.getString("id"));
// 插入记录 // 插入记录
SpringUtils.getBean(TaskWorkOrderRecordService.class).save(taskWorkOrderRecord); SpringUtils.getBean(TaskWorkOrderRecordService.class).save(taskWorkOrderRecord);
//没有负责人
if (StringUtils.isNotBlank(task.getResponsibleStaffId())) { if (StringUtils.isNotBlank(task.getResponsibleStaffId())) {
// 负责人手机号 // 负责人手机号
StaffInfoVo responsibleStaff = StaffInfoVo responsibleStaff =
@ -439,7 +434,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @author DB * @author DB
* @param workOrderId 工单id * @param workOrderId 工单id
* @since 2023-11-29 11:41:46 * @since 2023-11-29 11:41:46
* @version 1.0.0
*/ */
@Override @Override
public void workOrderRemind(String workOrderId) { public void workOrderRemind(String workOrderId) {
@ -484,7 +478,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @author DB * @author DB
* @param workOrderId 工单id * @param workOrderId 工单id
* @since 2023-11-29 12:30:21 * @since 2023-11-29 12:30:21
* @version 1.0.0
*/ */
@Override @Override
public void workOrderToDemand(String workOrderId) { public void workOrderToDemand(String workOrderId) {
@ -512,7 +505,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @author DB * @author DB
* @param bo 请求参数 * @param bo 请求参数
* @since 2023-11-29 16:00:18 * @since 2023-11-29 16:00:18
* @version 1.0.0
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -562,7 +554,6 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
* @author DB * @author DB
* @param workOrderId 工单id * @param workOrderId 工单id
* @since 2023-11-29 15:44:08 * @since 2023-11-29 15:44:08
* @version 1.0.0
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -678,4 +669,40 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
.where(STAFF.ID.eq(recordStaff.getRecordStaffId())))); .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("主键") @ApiModelProperty("主键")
private String id; 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:逾期;) * 任务状态(-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; private Integer taskStatus;
/** /**
@ -65,12 +53,6 @@ public class PersonTaskPageVo implements Serializable {
@ApiModelProperty("任务内容") @ApiModelProperty("任务内容")
private String taskContent; private String taskContent;
/**
* 任务权重
*/
@ApiModelProperty("任务权重")
private Integer taskWeight;
/** /**
* 任务评级(0:A;1:B;2:C;3:D;4:E) * 任务评级(0:A;1:B;2:C;3:D;4:E)
*/ */
@ -78,16 +60,10 @@ public class PersonTaskPageVo implements Serializable {
private Integer taskRating; private Integer taskRating;
/** /**
* 附件地址 * 个人任务绩点
*/ */
@ApiModelProperty("附件地址") @ApiModelProperty("个人任务绩点")
private String attachmentUrl; private Integer gradePoint;
/**
* 备注
*/
@ApiModelProperty("备注")
private String remark;
/** /**
* 预期完成日期 * 预期完成日期
@ -96,13 +72,6 @@ public class PersonTaskPageVo implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate expectedCompletionDate; 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 @Data
@Accessors(chain = true) @Accessors(chain = true)
@ApiModel(value = "TaskStaffGroup对象", description = "OAM-任务-关联员工任务组表") @ApiModel(value = "TaskStaffGroup对象", description = "OAM-任务-关联员工任务组表")
public class TaskStaffGroupVo implements Serializable { public class TaskStaffGroupVo {
private static final long serialVersionUID = 1L;
/** /**
* 主键 * 主键

View File

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

View File

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

View File

@ -26,10 +26,10 @@ public class MsgHandler extends AbstractHandler {
} }
if (!msgType.equals(WxConsts.XmlMsgType.EVENT)) { if (!msgType.equals(WxConsts.XmlMsgType.EVENT)) {
//TODO 可以选择将消息保存到本地
} }
//TODO 组装回复消息
String content = "收到信息内容:" + JsonUtils.toJson(wxMessage); String content = "收到信息内容:" + JsonUtils.toJson(wxMessage);
return new TextBuilder().build(content, wxMessage, cpService); 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()); WxCpUser userWxInfo = cpService.getUserService().getById(wxMessage.getFromUserName());
if (userWxInfo != null) { if (userWxInfo != null) {
// TODO 可以添加关注用户到本地
} }
WxCpXmlOutMessage responseResult = null; WxCpXmlOutMessage responseResult = null;
@ -54,7 +54,7 @@ public class SubscribeHandler extends AbstractHandler {
* 处理特殊请求比如如果是扫码进来的可以做相应处理 * 处理特殊请求比如如果是扫码进来的可以做相应处理
*/ */
private WxCpXmlOutMessage handleSpecial(WxCpXmlMessage wxMessage) { private WxCpXmlOutMessage handleSpecial(WxCpXmlMessage wxMessage) {
//TODO
return null; return null;
} }

View File

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

View File

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