diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaTaskUserController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaTaskUserController.java new file mode 100644 index 0000000..c8ddf90 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaTaskUserController.java @@ -0,0 +1,108 @@ +package com.ruoyi.oa.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.core.validate.QueryGroup; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.oa.domain.vo.SysOaTaskUserVo; +import com.ruoyi.oa.domain.bo.SysOaTaskUserBo; +import com.ruoyi.oa.service.ISysOaTaskUserService; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 任务工人 + * + * @author hdka + * @date 2024-11-09 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/oaTaskUser") +public class SysOaTaskUserController extends BaseController { + + private final ISysOaTaskUserService iSysOaTaskUserService; + + /** + * 查询任务工人列表 + */ + @SaCheckPermission("system:oaTaskUser:list") + @GetMapping("/list") + public TableDataInfo list(SysOaTaskUserBo bo, PageQuery pageQuery) { + return iSysOaTaskUserService.queryPageList(bo, pageQuery); + } + + /** + * 导出任务工人列表 + */ + @SaCheckPermission("system:oaTaskUser:export") + @Log(title = "任务工人", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysOaTaskUserBo bo, HttpServletResponse response) { + List list = iSysOaTaskUserService.queryList(bo); + ExcelUtil.exportExcel(list, "任务工人", SysOaTaskUserVo.class, response); + } + + /** + * 获取任务工人详细信息 + * + * @param taskId 主键 + */ + @SaCheckPermission("system:oaTaskUser:query") + @GetMapping("/{taskId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long taskId) { + return R.ok(iSysOaTaskUserService.queryById(taskId)); + } + + /** + * 新增任务工人 + */ + @SaCheckPermission("system:oaTaskUser:add") + @Log(title = "任务工人", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysOaTaskUserBo bo) { + return toAjax(iSysOaTaskUserService.insertByBo(bo)); + } + + /** + * 修改任务工人 + */ + @SaCheckPermission("system:oaTaskUser:edit") + @Log(title = "任务工人", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysOaTaskUserBo bo) { + return toAjax(iSysOaTaskUserService.updateByBo(bo)); + } + + /** + * 删除任务工人 + * + * @param taskIds 主键串 + */ + @SaCheckPermission("system:oaTaskUser:remove") + @Log(title = "任务工人", businessType = BusinessType.DELETE) + @DeleteMapping("/{taskIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] taskIds) { + return toAjax(iSysOaTaskUserService.deleteWithValidByIds(Arrays.asList(taskIds), true)); + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaTaskUser.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaTaskUser.java new file mode 100644 index 0000000..04b9c70 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaTaskUser.java @@ -0,0 +1,31 @@ +package com.ruoyi.oa.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 任务工人对象 sys_oa_task_user + * + * @author hdka + * @date 2024-11-09 + */ +@Data +@TableName("sys_oa_task_user") +public class SysOaTaskUser { + + private static final long serialVersionUID=1L; + + /** + * 主键 + */ + private Long userId; + /** + * 任务键 + */ + @TableId(value = "task_id") + private Long taskId; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaOutWarehouseBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaOutWarehouseBo.java index 1c6559f..169389b 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaOutWarehouseBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaOutWarehouseBo.java @@ -33,6 +33,7 @@ public class SysOaOutWarehouseBo extends BaseEntity { /** * 出库后对应的项目id */ + @NotNull(message = "项目id不能为空",groups = { AddGroup.class }) private Long projectId; /** diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaOutWarehouseBoList.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaOutWarehouseBoList.java index 62c781a..6863a92 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaOutWarehouseBoList.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaOutWarehouseBoList.java @@ -24,7 +24,6 @@ public class SysOaOutWarehouseBoList extends BaseEntity { /** * 项目id */ - @NotNull(message = "项目id不能为空", groups = AddGroup.class) private Long projectId; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskBo.java index 46ea3ef..e15b7c0 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskBo.java @@ -9,6 +9,8 @@ import javax.validation.constraints.*; import java.util.Date; import java.util.Date; +import java.util.List; + import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseEntity; @@ -79,6 +81,12 @@ public class SysOaTaskBo extends BaseEntity { */ private String accessory; + + /** + * 工人id列表 + * */ + private List workerList; + /** * 备注 */ diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskUserBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskUserBo.java new file mode 100644 index 0000000..cfe57aa --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskUserBo.java @@ -0,0 +1,37 @@ +package com.ruoyi.oa.domain.bo; + +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 任务工人业务对象 sys_oa_task_user + * + * @author hdka + * @date 2024-11-09 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class SysOaTaskUserBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 任务键 + */ + @NotNull(message = "任务键不能为空", groups = { EditGroup.class }) + private Long taskId; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaOutWarehouseListVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaOutWarehouseListVo.java index 5b7dc95..d2d35b8 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaOutWarehouseListVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaOutWarehouseListVo.java @@ -16,6 +16,10 @@ import java.util.List; @Data @ExcelIgnoreUnannotated public class SysOaOutWarehouseListVo { + /** + * ID 编号 + */ + private Long id; /** * 出库后对应的项目id @@ -29,9 +33,25 @@ public class SysOaOutWarehouseListVo { private String projectName; /** - * 出库表 + * 出库数量 */ - private List outWarehouseVoList; + private Long amount; + + /** + * 物料ID + */ + private Long warehouseId; + + /** + * 物料名称 + */ + private String warehouseName; + + /** + * 物料备注 + */ + private String remark; + diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskUserVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskUserVo.java new file mode 100644 index 0000000..da11284 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskUserVo.java @@ -0,0 +1,37 @@ +package com.ruoyi.oa.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.ruoyi.common.annotation.ExcelDictFormat; +import com.ruoyi.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 任务工人视图对象 sys_oa_task_user + * + * @author hdka + * @date 2024-11-09 + */ +@Data +@ExcelIgnoreUnannotated +public class SysOaTaskUserVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long userId; + + /** + * 任务键 + */ + @ExcelProperty(value = "任务键") + private Long taskId; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java index 13c0bc5..879a910 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java @@ -6,9 +6,10 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; +import com.ruoyi.common.core.domain.entity.SysUser; import lombok.Data; import java.util.Date; - +import java.util.List; /** @@ -102,5 +103,10 @@ public class SysOaTaskVo { @ExcelProperty(value = "创建时间") private Date createTime; + /** + * 涉及工人列表 + * */ + private List workerList; + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaOutWarehouseMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaOutWarehouseMapper.java index bc414eb..a0cf2f9 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaOutWarehouseMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaOutWarehouseMapper.java @@ -25,5 +25,8 @@ public interface SysOaOutWarehouseMapper extends BaseMapperPlus defineSelectList(@Param(value = "bo") SysOaOutWarehouseBo bo, @Param(value = "page") PageQuery pageQuery); - + /** + * 获取分页的Total值 + */ + Long defineQueryTotal(@Param(value = "bo") SysOaOutWarehouseBo bo, @Param(value = "page") PageQuery pageQuery); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaTaskUserMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaTaskUserMapper.java new file mode 100644 index 0000000..52c74a0 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaTaskUserMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.oa.mapper; + +import com.ruoyi.oa.domain.SysOaTaskUser; +import com.ruoyi.oa.domain.vo.SysOaTaskUserVo; +import com.ruoyi.common.core.mapper.BaseMapperPlus; + +/** + * 任务工人Mapper接口 + * + * @author hdka + * @date 2024-11-09 + */ +public interface SysOaTaskUserMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaTaskUserService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaTaskUserService.java new file mode 100644 index 0000000..b5f506c --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaTaskUserService.java @@ -0,0 +1,48 @@ +package com.ruoyi.oa.service; + +import com.ruoyi.oa.domain.vo.SysOaTaskUserVo; +import com.ruoyi.oa.domain.bo.SysOaTaskUserBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 任务工人Service接口 + * + * @author hdka + * @date 2024-11-09 + */ +public interface ISysOaTaskUserService { + + /** + * 查询任务工人 + */ + SysOaTaskUserVo queryById(Long taskId); + + /** + * 查询任务工人列表 + */ + TableDataInfo queryPageList(SysOaTaskUserBo bo, PageQuery pageQuery); + + /** + * 查询任务工人列表 + */ + List queryList(SysOaTaskUserBo bo); + + /** + * 新增任务工人 + */ + Boolean insertByBo(SysOaTaskUserBo bo); + + /** + * 修改任务工人 + */ + Boolean updateByBo(SysOaTaskUserBo bo); + + /** + * 校验并批量删除任务工人信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java index d5b87a7..941514f 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java @@ -19,6 +19,7 @@ import com.ruoyi.oa.mapper.SysOaProjectMapper; import com.ruoyi.oa.mapper.SysOaWarehouseMapper; import com.ruoyi.oa.service.ISysOaWarehouseService; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo; @@ -40,6 +41,7 @@ import static cn.hutool.core.bean.BeanUtil.*; * @author liuzongkun999 * @date 2024-11-02 */ +@Slf4j @RequiredArgsConstructor @Service public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { @@ -82,6 +84,7 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { /** * 查询仓库出库列表 */ + @Override public TableDataInfo queryPageList(SysOaOutWarehouseBo bo, PageQuery pageQuery) { // LambdaQueryWrapper lqw = buildQueryWrapper(bo); @@ -90,8 +93,8 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { // record.setWarehouseName(warehouseMapper.selectVoById(record.getWarehouseId()).getName()); // record.setProjectName(warehouseMapper.selectVoById(record.getProjectId()).getName()); // } + Long total = baseMapper.defineQueryTotal(bo, pageQuery); - // TODO 这么写分页失效 pageQuery.setPageNum(ObjectUtil.defaultIfNull(pageQuery.getPageNum(), 1)); pageQuery.setPageSize(ObjectUtil.defaultIfNull(pageQuery.getPageSize(), Integer.MAX_VALUE)); if (pageQuery.getPageNum() <= 0) { @@ -101,12 +104,15 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { pageQuery.setPageSize(Integer.MAX_VALUE); } pageQuery.setPageNum((pageQuery.getPageNum() - 1)*pageQuery.getPageSize()); - List result = baseMapper.defineSelectList(bo, pageQuery); -// IPage page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); -// page.setRecords(result); -// page.setTotal() - return TableDataInfo.build(result); + List selectList = baseMapper.defineSelectList(bo, pageQuery); + + IPage page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); + page.setRecords(selectList); + page.setTotal(total); + log.info(String.valueOf(total)); + + return TableDataInfo.build(page); } /** @@ -159,9 +165,11 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { @Override public Boolean insertByBoList(SysOaOutWarehouseBoList boList) { - // 只进行了插入出库表 - // 还缺少 检验数量是否足够,以及删除对应库存数量的业务逻辑 + Long projectId = boList.getProjectId(); + if (projectId == null) { + throw new Error("项目ID不能为空,新增出库失败"); + } List list = boList.getOutWareHouseList(); list.forEach((sysOaOutWarehouseBo2 -> { diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskServiceImpl.java index 6889413..52c7b79 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskServiceImpl.java @@ -14,8 +14,17 @@ import com.ruoyi.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.oa.domain.SysOaTaskUser; +import com.ruoyi.oa.domain.bo.SysOaTaskUserBo; +import com.ruoyi.oa.domain.vo.SysOaTaskUserVo; +import com.ruoyi.oa.domain.vo.SysUserVo; +import com.ruoyi.oa.mapper.SysOaTaskUserMapper; +import com.ruoyi.oa.service.ISysOaTaskUserService; import com.ruoyi.system.service.ISysDictTypeService; +import com.ruoyi.system.service.ISysUserService; +import liquibase.pro.packaged.A; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.oa.domain.bo.SysOaTaskBo; import com.ruoyi.oa.domain.vo.SysOaTaskVo; @@ -40,6 +49,15 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService { private final ISysDictTypeService dictTypeService; + @Autowired + private ISysOaTaskUserService taskUserService; + + @Autowired + private SysOaTaskUserMapper taskUserMapper; + + @Autowired + private ISysUserService userService; + /** * 查询任务管理 */ @@ -84,8 +102,6 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService { ajax.put("color", "#cccccc"); objects.add(ajax); }); - System.out.println(objects); - //根据项目id获取任务列表类型属性最大的值 SysOaTaskBo task = new SysOaTaskBo(); task.setProjectId(pid); @@ -112,7 +128,21 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService { LambdaQueryWrapper lqw = buildQueryWrapper(bo); lqw.eq(StringUtils.isNotEmpty(bo.getProjectId().toString()), SysOaTask::getProjectId, bo.getProjectId()); lqw.eq(StringUtils.isNotBlank(bo.getTaskType()),SysOaTask::getTaskType, bo.getTaskType()); - return baseMapper.selectVoList(lqw); + List sysOaTaskVos = baseMapper.selectVoList(lqw); + + // 添加负责人列表 + for (SysOaTaskVo sysOaTaskVo : sysOaTaskVos) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(SysOaTaskUser::getTaskId, sysOaTaskVo.getTaskId()); + List sysOaTaskUserVos = taskUserMapper.selectVoList(lambdaQueryWrapper); + List sysUserList = new ArrayList<>(); + for (SysOaTaskUserVo sysOaTaskUserVo : sysOaTaskUserVos) { + SysUser sysUser = userService.selectUserById(sysOaTaskUserVo.getUserId()); + sysUserList.add(sysUser); + } + sysOaTaskVo.setWorkerList(sysUserList); + } + return sysOaTaskVos; } /** @@ -144,6 +174,13 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService { boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setTaskId(add.getTaskId()); + List workerIdList = bo.getWorkerList(); + for (Long userId : workerIdList) { + SysOaTaskUserBo sysOaTaskUserBo = new SysOaTaskUserBo(); + sysOaTaskUserBo.setUserId(userId); + sysOaTaskUserBo.setTaskId(add.getTaskId()); + taskUserService.insertByBo(sysOaTaskUserBo); + } } return flag; } @@ -154,6 +191,18 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService { @Override public Boolean updateByBo(SysOaTaskBo bo) { SysOaTask update = BeanUtil.toBean(bo, SysOaTask.class); + + // 先将该任务底下所属的所有工人信息删除 + taskUserMapper.deleteById(update.getTaskId()); + + // 再进行重新新增 + List workerIdList = bo.getWorkerList(); + for (Long userId : workerIdList) { + SysOaTaskUserBo sysOaTaskUserBo = new SysOaTaskUserBo(); + sysOaTaskUserBo.setUserId(userId); + sysOaTaskUserBo.setTaskId(update.getTaskId()); + taskUserService.insertByBo(sysOaTaskUserBo); + } validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskUserServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskUserServiceImpl.java new file mode 100644 index 0000000..f214051 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskUserServiceImpl.java @@ -0,0 +1,109 @@ +package com.ruoyi.oa.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.ruoyi.oa.domain.bo.SysOaTaskUserBo; +import com.ruoyi.oa.domain.vo.SysOaTaskUserVo; +import com.ruoyi.oa.domain.SysOaTaskUser; +import com.ruoyi.oa.mapper.SysOaTaskUserMapper; +import com.ruoyi.oa.service.ISysOaTaskUserService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 任务工人Service业务层处理 + * + * @author hdka + * @date 2024-11-09 + */ +@RequiredArgsConstructor +@Service +public class SysOaTaskUserServiceImpl implements ISysOaTaskUserService { + + private final SysOaTaskUserMapper baseMapper; + + /** + * 查询任务工人 + */ + @Override + public SysOaTaskUserVo queryById(Long taskId){ + return baseMapper.selectVoById(taskId); + } + + /** + * 查询任务工人列表 + */ + @Override + public TableDataInfo queryPageList(SysOaTaskUserBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询任务工人列表 + */ + @Override + public List queryList(SysOaTaskUserBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SysOaTaskUserBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getUserId() != null, SysOaTaskUser::getUserId, bo.getUserId()); + return lqw; + } + + /** + * 新增任务工人 + */ + @Override + public Boolean insertByBo(SysOaTaskUserBo bo) { + SysOaTaskUser add = BeanUtil.toBean(bo, SysOaTaskUser.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setTaskId(add.getTaskId()); + } + return flag; + } + + /** + * 修改任务工人 + */ + @Override + public Boolean updateByBo(SysOaTaskUserBo bo) { + SysOaTaskUser update = BeanUtil.toBean(bo, SysOaTaskUser.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysOaTaskUser entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除任务工人 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaOutWarehouseMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaOutWarehouseMapper.xml index da6b815..8399a63 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaOutWarehouseMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaOutWarehouseMapper.xml @@ -63,5 +63,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaTaskUserMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaTaskUserMapper.xml new file mode 100644 index 0000000..c26f2da --- /dev/null +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaTaskUserMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/ruoyi-ui/src/views/oa/project/index.vue b/ruoyi-ui/src/views/oa/project/index.vue index 1fc510c..4aeca37 100644 --- a/ruoyi-ui/src/views/oa/project/index.vue +++ b/ruoyi-ui/src/views/oa/project/index.vue @@ -528,7 +528,7 @@ @@ -587,6 +587,7 @@ {{ item.beginTime }} 至 {{ item.finishTime }} +