330任务完成
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
package com.ruoyi.oa.service;
|
||||
|
||||
import com.ruoyi.oa.domain.OaFeedback;
|
||||
import com.ruoyi.oa.domain.vo.OaFeedbackVo;
|
||||
import com.ruoyi.oa.domain.bo.OaFeedbackBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 问题反馈Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-03-28
|
||||
*/
|
||||
public interface IOaFeedbackService {
|
||||
|
||||
/**
|
||||
* 查询问题反馈
|
||||
*/
|
||||
OaFeedbackVo queryById(Long feedbackId);
|
||||
|
||||
/**
|
||||
* 查询问题反馈列表
|
||||
*/
|
||||
TableDataInfo<OaFeedbackVo> queryPageList(OaFeedbackBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询问题反馈列表
|
||||
*/
|
||||
List<OaFeedbackVo> queryList(OaFeedbackBo bo);
|
||||
|
||||
/**
|
||||
* 新增问题反馈
|
||||
*/
|
||||
Boolean insertByBo(OaFeedbackBo bo);
|
||||
|
||||
/**
|
||||
* 修改问题反馈
|
||||
*/
|
||||
Boolean updateByBo(OaFeedbackBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除问题反馈信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
Boolean updateToRead(OaFeedbackBo bo);
|
||||
|
||||
int delItem(Long feedbackId);
|
||||
|
||||
}
|
||||
@@ -48,4 +48,12 @@ public interface ISysOaFileService {
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
Long insertByBoReturnId(SysOaFileBo bo);
|
||||
|
||||
/**
|
||||
* 新增文件返回他们的ID
|
||||
* @param fileUrls
|
||||
* @return
|
||||
*/
|
||||
String insertFiles(List<String> fileUrls);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.ruoyi.oa.service;
|
||||
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.oa.domain.SysOaRemind;
|
||||
import com.ruoyi.oa.domain.vo.SysOaRemindVo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaRemindBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
@@ -26,10 +25,12 @@ public interface ISysOaRemindService {
|
||||
|
||||
/**
|
||||
* 查询代办事件列表
|
||||
*
|
||||
* @param bo
|
||||
* @param pageQuery
|
||||
* @return
|
||||
*/
|
||||
R<List<SysOaRemindVo>> queryRemindList(SysOaRemindBo bo);
|
||||
R<List<SysOaRemindVo>> queryRemindList(SysOaRemindBo bo, PageQuery pageQuery);
|
||||
|
||||
Long queryRemindCount(SysOaRemindBo bo);
|
||||
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.ruoyi.oa.service;
|
||||
|
||||
import com.ruoyi.oa.domain.SysOaTaskItem;
|
||||
import com.ruoyi.oa.domain.vo.SysOaTaskItemVo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaTaskItemBo;
|
||||
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 2025-03-27
|
||||
*/
|
||||
public interface ISysOaTaskItemService {
|
||||
|
||||
/**
|
||||
* 查询报工任务单元
|
||||
*/
|
||||
SysOaTaskItemVo queryById(Long itemId);
|
||||
|
||||
/**
|
||||
* 查询报工任务单元列表
|
||||
*/
|
||||
TableDataInfo<SysOaTaskItemVo> queryPageList(SysOaTaskItemBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询报工任务单元列表
|
||||
*/
|
||||
List<SysOaTaskItemVo> queryList(SysOaTaskItemBo bo);
|
||||
|
||||
/**
|
||||
* 新增报工任务单元
|
||||
*/
|
||||
Boolean insertByBo(SysOaTaskItemBo bo);
|
||||
|
||||
/**
|
||||
* 修改报工任务单元
|
||||
*/
|
||||
Boolean updateByBo(SysOaTaskItemBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除报工任务单元信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 提交报工表单后新建表单
|
||||
* @param bo
|
||||
* @return
|
||||
*/
|
||||
Boolean reportSubmit(SysOaTaskItemBo bo);
|
||||
|
||||
/**
|
||||
* 推迟申请
|
||||
* @param bo
|
||||
* @return
|
||||
*/
|
||||
Boolean postpone(SysOaTaskItemBo bo);
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.ruoyi.oa.service;
|
||||
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.oa.domain.SysOaTask;
|
||||
import com.ruoyi.oa.domain.UserMonthlyData;
|
||||
import com.ruoyi.oa.domain.vo.SysOaTaskVo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaTaskBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
@@ -9,7 +9,6 @@ import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 任务管理Service接口
|
||||
@@ -83,4 +82,43 @@ public interface ISysOaTaskService {
|
||||
* @return
|
||||
*/
|
||||
TableDataInfo<SysOaTaskVo> queryPageListOwn(SysOaTaskBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 增加一个推迟数量
|
||||
* @param taskId
|
||||
*/
|
||||
void addPostpones(Long taskId);
|
||||
|
||||
/**
|
||||
* 获取数值分析数据
|
||||
* @param month
|
||||
* @return
|
||||
*/
|
||||
TableDataInfo<UserMonthlyData> getMonthlyData(String month);
|
||||
|
||||
/**
|
||||
* 查询文件列表
|
||||
* @param bo
|
||||
* @param pageQuery
|
||||
* @return
|
||||
*/
|
||||
TableDataInfo<SysOaTaskVo> queryPageListDocument(SysOaTaskBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询未办任务
|
||||
*
|
||||
* @param sysOaTaskBo
|
||||
* @param pageQuery
|
||||
* @return
|
||||
*/
|
||||
List<SysOaTaskVo> queryListByRemain(SysOaTaskBo sysOaTaskBo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询此项目挂接的所有文件
|
||||
*
|
||||
* @param projectId 项目id
|
||||
* @return
|
||||
*/
|
||||
List<SysOaTaskVo> listDocumentProject(Long projectId);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.ruoyi.oa.service;
|
||||
|
||||
import com.ruoyi.oa.domain.SysOaTaskUser;
|
||||
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 2025-03-28
|
||||
*/
|
||||
public interface ISysOaTaskUserService {
|
||||
|
||||
/**
|
||||
* 查询文件共享表
|
||||
*/
|
||||
SysOaTaskUserVo queryById(Long taskUserId);
|
||||
|
||||
/**
|
||||
* 查询文件共享表列表
|
||||
*/
|
||||
TableDataInfo<SysOaTaskUserVo> queryPageList(SysOaTaskUserBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询文件共享表列表
|
||||
*/
|
||||
List<SysOaTaskUserVo> queryList(SysOaTaskUserBo bo);
|
||||
|
||||
/**
|
||||
* 新增文件共享表
|
||||
*/
|
||||
Boolean insertByBo(SysOaTaskUserBo bo);
|
||||
|
||||
/**
|
||||
* 修改文件共享表
|
||||
*/
|
||||
Boolean updateByBo(SysOaTaskUserBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除文件共享表信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.ruoyi.oa.service;
|
||||
|
||||
import com.ruoyi.oa.domain.SysOaWarehouse;
|
||||
import com.ruoyi.oa.domain.vo.SysOaWarehouseVo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
@@ -51,4 +50,14 @@ public interface ISysOaWarehouseService {
|
||||
* 根据一个name查询多个字段
|
||||
*/
|
||||
TableDataInfo<SysOaWarehouseVo> listByMultiQuery(SysOaWarehouseBo bo, PageQuery pageQuery);
|
||||
|
||||
TableDataInfo<SysOaWarehouseVo> queryPageListThreshold(SysOaWarehouseBo bo, PageQuery pageQuery, boolean b);
|
||||
|
||||
|
||||
/**
|
||||
* 采购 进行入库操作
|
||||
* @param boList
|
||||
* @return
|
||||
*/
|
||||
Boolean insertBatch(List<SysOaWarehouseBo> boList);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.ruoyi.oa.service;
|
||||
|
||||
import com.ruoyi.oa.domain.SysOaWarehouseTask;
|
||||
import com.ruoyi.oa.domain.vo.SysOaWarehouseTaskVo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseTaskBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采购计划Service接口
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-03-30
|
||||
*/
|
||||
public interface ISysOaWarehouseTaskService {
|
||||
|
||||
/**
|
||||
* 查询采购计划
|
||||
*/
|
||||
SysOaWarehouseTaskVo queryById(Long taskId);
|
||||
|
||||
/**
|
||||
* 查询采购计划列表
|
||||
*/
|
||||
TableDataInfo<SysOaWarehouseTaskVo> queryPageList(SysOaWarehouseTaskBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询采购计划列表
|
||||
*/
|
||||
List<SysOaWarehouseTaskVo> queryList(SysOaWarehouseTaskBo bo);
|
||||
|
||||
/**
|
||||
* 新增采购计划
|
||||
*/
|
||||
Boolean insertByBo(SysOaWarehouseTaskBo bo);
|
||||
|
||||
/**
|
||||
* 修改采购计划
|
||||
*/
|
||||
Boolean updateByBo(SysOaWarehouseTaskBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除采购计划信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
List<SysOaWarehouseTaskVo> queryByMasterId(@NotNull(message = "主键不能为空") Long masterId);
|
||||
|
||||
/**
|
||||
* 新增采购计划
|
||||
* @param boList
|
||||
* @return
|
||||
*/
|
||||
Boolean addBatch(List<SysOaWarehouseTaskBo> boList);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
package com.ruoyi.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
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 lombok.val;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.oa.domain.bo.OaFeedbackBo;
|
||||
import com.ruoyi.oa.domain.vo.OaFeedbackVo;
|
||||
import com.ruoyi.oa.domain.OaFeedback;
|
||||
import com.ruoyi.oa.mapper.OaFeedbackMapper;
|
||||
import com.ruoyi.oa.service.IOaFeedbackService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 问题反馈Service业务层处理
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-03-28
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class OaFeedbackServiceImpl implements IOaFeedbackService {
|
||||
|
||||
private final OaFeedbackMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询问题反馈
|
||||
*/
|
||||
@Override
|
||||
public OaFeedbackVo queryById(Long feedbackId){
|
||||
return baseMapper.selectVoById(feedbackId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询问题反馈列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<OaFeedbackVo> queryPageList(OaFeedbackBo bo, PageQuery pageQuery) {
|
||||
QueryWrapper<OaFeedback> lqw = buildQueryWrapper(bo);
|
||||
val result = baseMapper.selectVoPageAndStatus(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询问题反馈列表
|
||||
*/
|
||||
@Override
|
||||
public List<OaFeedbackVo> queryList(OaFeedbackBo bo) {
|
||||
QueryWrapper<OaFeedback> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private QueryWrapper<OaFeedback> buildQueryWrapper(OaFeedbackBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
QueryWrapper<OaFeedback> lqw = Wrappers.query();
|
||||
lqw.eq("ofi.user_id", LoginHelper.getUserId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增问题反馈
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(OaFeedbackBo bo) {
|
||||
|
||||
OaFeedback add = BeanUtil.toBean(bo, OaFeedback.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setFeedbackId(add.getFeedbackId());
|
||||
}
|
||||
baseMapper.insertItem(add.getFeedbackId());
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改问题反馈
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(OaFeedbackBo bo) {
|
||||
OaFeedback update = BeanUtil.toBean(bo, OaFeedback.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(OaFeedback entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除问题反馈
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateToRead(OaFeedbackBo bo) {
|
||||
|
||||
return baseMapper.updateToRead(bo.getFeedbackId(),LoginHelper.getUserId())>0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int delItem(Long feedbackId) {
|
||||
|
||||
return baseMapper.delItem(feedbackId,LoginHelper.getUserId());
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@ import com.ruoyi.oa.service.ISysOaFileService;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 文件存储Service业务层处理
|
||||
@@ -95,6 +96,28 @@ public class SysOaFileServiceImpl implements ISysOaFileService {
|
||||
return add.getFileId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String insertFiles(List<String> fileUrls) {
|
||||
// 用于存放插入后返回的 fileId
|
||||
List<Long> fileIds = fileUrls.stream().map(fileUrl -> {
|
||||
// 这里假设你有一个插入方法, 返回插入后的主键ID:
|
||||
// Long fileId = fileDao.insertFile(fileUrl);
|
||||
|
||||
// 这里只是示例,假设插入后自增ID就是某个数字:
|
||||
// 为演示,这里用当前时间戳模拟
|
||||
SysOaFile sysOaFile = new SysOaFile();
|
||||
sysOaFile.setFileUrl(fileUrl);
|
||||
baseMapper.insert(sysOaFile);
|
||||
|
||||
// 真实代码中应该返回数据库生成的主键ID
|
||||
return sysOaFile.getFileId();
|
||||
}).collect(Collectors.toList());
|
||||
// 将 fileIds 转为逗号分隔的字符串
|
||||
return fileIds.stream()
|
||||
.map(String::valueOf)
|
||||
.collect(Collectors.joining(","));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改文件存储
|
||||
|
||||
@@ -47,7 +47,7 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService {
|
||||
@Override
|
||||
public TableDataInfo<SysOaProjectVo> queryPageList(SysOaProjectBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SysOaProject> lqw = buildQueryWrapper(bo);
|
||||
Page<SysOaProjectVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
Page<SysOaProjectVo> result = baseMapper.selectVoPlus(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@@ -67,6 +67,7 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService {
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectNum()), SysOaProject::getProjectNum, bo.getProjectNum());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), SysOaProject::getProjectType, bo.getProjectType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectStatus()), SysOaProject::getProjectStatus, bo.getProjectStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCreateBy()), SysOaProject::getCreateBy, bo.getCreateBy());
|
||||
lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
|
||||
SysOaProject::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"));
|
||||
lqw.orderByDesc(SysOaProject::getCreateTime);
|
||||
|
||||
@@ -9,8 +9,13 @@ 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.bo.SysOaProjectBo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaTaskBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaProjectVo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaTaskVo;
|
||||
import com.ruoyi.oa.service.ISysOaProjectService;
|
||||
import com.ruoyi.oa.service.ISysOaTaskService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.catalina.security.SecurityUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.oa.domain.bo.SysOaRemindBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaRemindVo;
|
||||
@@ -18,10 +23,7 @@ import com.ruoyi.oa.domain.SysOaRemind;
|
||||
import com.ruoyi.oa.mapper.SysOaRemindMapper;
|
||||
import com.ruoyi.oa.service.ISysOaRemindService;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 事件提醒Service业务层处理
|
||||
@@ -35,6 +37,10 @@ public class SysOaRemindServiceImpl implements ISysOaRemindService {
|
||||
|
||||
private final SysOaRemindMapper baseMapper;
|
||||
|
||||
private final ISysOaTaskService sysOaTaskService;
|
||||
|
||||
private final ISysOaProjectService projectService;
|
||||
|
||||
/**
|
||||
* 查询事件提醒
|
||||
*/
|
||||
@@ -45,13 +51,59 @@ public class SysOaRemindServiceImpl implements ISysOaRemindService {
|
||||
|
||||
/**
|
||||
* 查询代办事件列表
|
||||
*
|
||||
* @param bo
|
||||
* @param pageQuery
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<List<SysOaRemindVo>> queryRemindList(SysOaRemindBo bo){
|
||||
LambdaQueryWrapper<SysOaRemind> lqw = buildQueryWrapper(bo);
|
||||
List<SysOaRemindVo> sysOaRemindVos = baseMapper.selectVoList(lqw);
|
||||
public R<List<SysOaRemindVo>> queryRemindList(SysOaRemindBo bo, PageQuery pageQuery){
|
||||
|
||||
// 任务的逾期情况,项目的逾期情况 目前就这个两个需要提醒
|
||||
// 开始
|
||||
// 首先查询任务存在不存在逾期问题
|
||||
SysOaTaskBo sysOaTaskBo = new SysOaTaskBo();
|
||||
sysOaTaskBo.setState(0L);
|
||||
sysOaTaskBo.setWorkerId(LoginHelper.getUserId());
|
||||
List<SysOaTaskVo> tasks = sysOaTaskService.queryListByRemain(sysOaTaskBo,pageQuery);
|
||||
System.out.println(tasks);
|
||||
ArrayList<SysOaRemindVo> sysOaRemindVos = new ArrayList<>();
|
||||
for (SysOaTaskVo task : tasks) {
|
||||
SysOaRemindVo sysOaRemindVo = new SysOaRemindVo();
|
||||
sysOaRemindVo.setType("task");
|
||||
sysOaRemindVo.setAccessory(task.getAccessory());
|
||||
sysOaRemindVo.setContent(task.getContent());
|
||||
sysOaRemindVo.setTaskTime(task.getFinishTime());
|
||||
sysOaRemindVo.setRemainTime(task.getOverDays());
|
||||
sysOaRemindVos.add(sysOaRemindVo);
|
||||
}
|
||||
// 查询报工
|
||||
sysOaTaskBo.setItemStatus(0L);
|
||||
tasks = sysOaTaskService.queryListByRemain(sysOaTaskBo, pageQuery);
|
||||
for (SysOaTaskVo task : tasks) {
|
||||
SysOaRemindVo sysOaRemindVo = new SysOaRemindVo();
|
||||
sysOaRemindVo.setType("taskItem");
|
||||
sysOaRemindVo.setAccessory(task.getFiles());
|
||||
sysOaRemindVo.setContent(task.getContent());
|
||||
sysOaRemindVo.setRemainTime(task.getOverDays());
|
||||
sysOaRemindVo.setTaskTime(task.getFinishTime());
|
||||
sysOaRemindVos.add(sysOaRemindVo);
|
||||
}
|
||||
|
||||
// 查询项目情况
|
||||
SysOaProjectBo sysOaProjectBo = new SysOaProjectBo();
|
||||
sysOaProjectBo.setProjectStatus("0");
|
||||
sysOaProjectBo.setCreateBy(LoginHelper.getNickName());
|
||||
List<SysOaProjectVo> rows = projectService.queryPageList(sysOaProjectBo, pageQuery).getRows();
|
||||
for (SysOaProjectVo row : rows) {
|
||||
SysOaRemindVo sysOaRemindVo = new SysOaRemindVo();
|
||||
sysOaRemindVo.setType("project");
|
||||
sysOaRemindVo.setAccessory(row.getAccessory());
|
||||
sysOaRemindVo.setContent(row.getProjectName());
|
||||
sysOaRemindVo.setRemainTime(row.getRemainTime());
|
||||
sysOaRemindVo.setTaskTime(row.getFinishTime());
|
||||
sysOaRemindVos.add(sysOaRemindVo);
|
||||
}
|
||||
return R.ok(sysOaRemindVos);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,190 @@
|
||||
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 com.ruoyi.oa.service.ISysOaFileService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.oa.domain.bo.SysOaTaskItemBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaTaskItemVo;
|
||||
import com.ruoyi.oa.domain.SysOaTaskItem;
|
||||
import com.ruoyi.oa.mapper.SysOaTaskItemMapper;
|
||||
import com.ruoyi.oa.service.ISysOaTaskItemService;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 报工任务单元Service业务层处理
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-03-27
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class SysOaTaskItemServiceImpl implements ISysOaTaskItemService {
|
||||
|
||||
private final SysOaTaskItemMapper baseMapper;
|
||||
|
||||
private final ISysOaFileService fileService;
|
||||
|
||||
/**
|
||||
* 查询报工任务单元
|
||||
*/
|
||||
@Override
|
||||
public SysOaTaskItemVo queryById(Long itemId){
|
||||
System.out.println( baseMapper.selectVoById(itemId));
|
||||
return baseMapper.selectVoById(itemId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询报工任务单元列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SysOaTaskItemVo> queryPageList(SysOaTaskItemBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SysOaTaskItem> lqw = buildQueryWrapper(bo);
|
||||
Page<SysOaTaskItemVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询报工任务单元列表
|
||||
*/
|
||||
@Override
|
||||
public List<SysOaTaskItemVo> queryList(SysOaTaskItemBo bo) {
|
||||
LambdaQueryWrapper<SysOaTaskItem> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<SysOaTaskItem> buildQueryWrapper(SysOaTaskItemBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysOaTaskItem> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getTaskId() != null, SysOaTaskItem::getTaskId, bo.getTaskId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContent()), SysOaTaskItem::getContent, bo.getContent());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFiles()), SysOaTaskItem::getFiles, bo.getFiles());
|
||||
lqw.eq(bo.getSignTime() != null, SysOaTaskItem::getSignTime, bo.getSignTime());
|
||||
lqw.eq(bo.getStatus() != null, SysOaTaskItem::getStatus, bo.getStatus());
|
||||
lqw.eq(bo.getBeginTime() != null, SysOaTaskItem::getBeginTime, bo.getBeginTime());
|
||||
lqw.eq(bo.getEndTime() != null, SysOaTaskItem::getEndTime, bo.getEndTime());
|
||||
lqw.eq(bo.getOriginEndTime() != null, SysOaTaskItem::getOriginEndTime, bo.getOriginEndTime());
|
||||
lqw.eq(bo.getTempTime() != null, SysOaTaskItem::getTempTime, bo.getTempTime());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增报工任务单元
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(SysOaTaskItemBo bo) {
|
||||
SysOaTaskItem add = BeanUtil.toBean(bo, SysOaTaskItem.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setItemId(add.getItemId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改报工任务单元
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(SysOaTaskItemBo bo) {
|
||||
SysOaTaskItem update = BeanUtil.toBean(bo, SysOaTaskItem.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(SysOaTaskItem entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除报工任务单元
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交表单后新建新周期表单
|
||||
* @param bo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Boolean reportSubmit(SysOaTaskItemBo bo) {
|
||||
bo.setSignTime(new Date());
|
||||
bo.setCompletedTime(new Date());
|
||||
if (Objects.nonNull(bo.getFiles())) {
|
||||
List<String> fileUrls = Arrays.stream(bo.getFiles().split(","))
|
||||
.map(String::valueOf)
|
||||
.collect(Collectors.toList());
|
||||
String fileIds = fileService.insertFiles(fileUrls);
|
||||
bo.setFiles(fileIds);
|
||||
}
|
||||
SysOaTaskItem update = BeanUtil.toBean(bo, SysOaTaskItem.class);
|
||||
validEntityBeforeSave(update);
|
||||
update.setStatus(1L);
|
||||
Boolean flag = baseMapper.updateById(update) > 0;
|
||||
SysOaTaskItemBo sysOaTaskItemBo = new SysOaTaskItemBo();
|
||||
sysOaTaskItemBo.setTaskId(bo.getTaskId());
|
||||
sysOaTaskItemBo.setBeginTime(bo.getEndTime());
|
||||
sysOaTaskItemBo.setEndTime(addDays(bo.getEndTime(),bo.getTimeGap()));
|
||||
sysOaTaskItemBo.setOriginEndTime(addDays(bo.getEndTime(),bo.getTimeGap()));
|
||||
insertByBo(sysOaTaskItemBo);
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 推迟申请
|
||||
* @param bo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Boolean postpone(SysOaTaskItemBo bo) {
|
||||
bo.setEndTime(bo.getTempTime());
|
||||
Boolean flag = updateByBo(bo);
|
||||
return flag;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 使用 Java 8 的 LocalDateTime 在 beginTime 上加上 timeGap 天并返回新的 Date。
|
||||
*
|
||||
* @param beginTime 开始时间(Date类型)
|
||||
* @param timeGap 需要增加的天数(Long类型)
|
||||
* @return 加上 timeGap 天后的日期(Date类型)
|
||||
*/
|
||||
public static Date addDays(Date beginTime, Long timeGap) {
|
||||
if (beginTime == null || timeGap == null) {
|
||||
return null; // 或根据业务需求进行异常处理
|
||||
}
|
||||
|
||||
// 将 Date 转为 LocalDateTime
|
||||
LocalDateTime localDateTime = beginTime.toInstant()
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toLocalDateTime();
|
||||
|
||||
// 加上 timeGap 天
|
||||
localDateTime = localDateTime.plusDays(timeGap);
|
||||
|
||||
// 再转换回 Date
|
||||
return Date.from(localDateTime
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toInstant());
|
||||
}
|
||||
}
|
||||
@@ -1,39 +1,32 @@
|
||||
package com.ruoyi.oa.service.impl;
|
||||
|
||||
import cn.dev33.satoken.fun.SaParamRetFunction;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.domain.entity.SysDictData;
|
||||
import com.ruoyi.common.core.domain.entity.SysDictType;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
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 com.ruoyi.oa.domain.SysOaAttendance;
|
||||
import com.ruoyi.oa.domain.SysOaTaskUser;
|
||||
import com.ruoyi.oa.domain.bo.SysOaAttendanceBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaAttendanceVo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaTaskUserVo;
|
||||
import com.ruoyi.oa.domain.vo.SysUserVo;
|
||||
import com.ruoyi.oa.service.ISysOaAttendanceService;
|
||||
import com.ruoyi.oa.domain.*;
|
||||
import com.ruoyi.oa.domain.bo.SysOaTaskItemBo;
|
||||
import com.ruoyi.oa.mapper.SysOaTaskItemMapper;
|
||||
import com.ruoyi.oa.service.ISysOaFileService;
|
||||
import com.ruoyi.oa.service.ISysOaTaskItemService;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.oa.domain.bo.SysOaTaskBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaTaskVo;
|
||||
import com.ruoyi.oa.domain.SysOaTask;
|
||||
import com.ruoyi.oa.mapper.SysOaTaskMapper;
|
||||
import com.ruoyi.oa.service.ISysOaTaskService;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -43,6 +36,7 @@ import java.util.stream.Collectors;
|
||||
* @author huangxing
|
||||
* @date 2024-01-11
|
||||
*/
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
||||
@@ -51,19 +45,18 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
||||
|
||||
private final ISysDictTypeService dictTypeService;
|
||||
|
||||
private final ISysOaTaskItemService taskItemService;
|
||||
|
||||
@Autowired
|
||||
private ISysUserService userService;
|
||||
private final SysOaTaskItemMapper taskItemMapper;
|
||||
|
||||
@Autowired
|
||||
private ISysOaAttendanceService attendanceService;
|
||||
private final ISysOaFileService fileService;
|
||||
|
||||
/**
|
||||
* 查询任务管理
|
||||
*/
|
||||
@Override
|
||||
public SysOaTaskVo queryById(Long taskId){
|
||||
return baseMapper.selectVoById(taskId);
|
||||
return baseMapper.selectDetailVoById(taskId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -87,6 +80,33 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addPostpones(Long taskId) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<UserMonthlyData> getMonthlyData(String month) {
|
||||
List<UserMonthlyData> result = baseMapper.getMonthlyData(month);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<SysOaTaskVo> queryPageListDocument(SysOaTaskBo bo, PageQuery pageQuery) {
|
||||
QueryWrapper<SysOaTask> lqw = new QueryWrapper<>();
|
||||
lqw.eq("sotu.user_id", LoginHelper.getUserId());
|
||||
lqw.eq("sot.del_flag", 0);
|
||||
// lqw.eq("sot.create_user_id", LoginHelper.getUserId())
|
||||
// .or()
|
||||
// .eq("sot.worker_id", LoginHelper.getUserId());
|
||||
lqw.isNotNull("sot.accessory")
|
||||
.or()
|
||||
.isNotNull("soti.files");
|
||||
lqw.orderByDesc("sot.create_time");
|
||||
Page<SysOaTaskVo> result = baseMapper.queryPageListDocument(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 据工作类型字典查询任务列表
|
||||
* @param pid
|
||||
@@ -134,10 +154,11 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
||||
*/
|
||||
@Override
|
||||
public List<SysOaTaskVo> queryListByType(SysOaTaskBo bo){
|
||||
QueryWrapper<SysOaTask> lqw = buildQueryWrapper(bo);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTaskType()),"sot.task_type", bo.getTaskType());
|
||||
List<SysOaTaskVo> sysOaTaskVos = baseMapper.selectVoList(lqw);
|
||||
return sysOaTaskVos;
|
||||
LambdaQueryWrapper<SysOaTask> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.eq(bo.getProjectId()!=null, SysOaTask::getProjectId, bo.getProjectId());
|
||||
lqw.like(bo.getTaskTitle()!=null, SysOaTask::getTaskTitle, bo.getTaskTitle());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTaskType()),SysOaTask::getTaskType, bo.getTaskType());
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -149,6 +170,21 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询任务管理列表
|
||||
*/
|
||||
@Override
|
||||
public List<SysOaTaskVo> queryListByRemain(SysOaTaskBo bo, PageQuery pageQuery) {
|
||||
QueryWrapper<SysOaTask> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectListVoPage(pageQuery.build(),lqw).getRecords();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysOaTaskVo> listDocumentProject(Long projectId) {
|
||||
|
||||
return baseMapper.listDocumentProject(projectId);
|
||||
}
|
||||
|
||||
private QueryWrapper<SysOaTask> buildQueryWrapper(SysOaTaskBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
QueryWrapper<SysOaTask> lqw = Wrappers.query();
|
||||
@@ -158,10 +194,13 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
||||
lqw.eq(bo.getWorkerId()!=null, "sot.worker_id", bo.getWorkerId());
|
||||
lqw.eq(bo.getProjectId()!=null, "sot.project_id", bo.getProjectId());
|
||||
lqw.eq(bo.getProjectNum()!=null, "sop.project_num", bo.getProjectNum());
|
||||
lqw.eq(bo.getState()!=null, "sot.state", bo.getState());
|
||||
lqw.eq(bo.getItemStatus()!=null, "soti.status", bo.getItemStatus());
|
||||
lqw.like(bo.getTaskTitle()!=null, "sot.task_title", bo.getTaskTitle());
|
||||
|
||||
lqw.like(bo.getTaskTitle()!=null, "sot.task_title", bo.getTaskTitle());
|
||||
lqw.like(bo.getCreateUserNickName()!=null, "su1.nick_name", bo.getCreateUserNickName());
|
||||
lqw.like(bo.getWorkerNickName()!=null, "su2.nick_name", bo.getWorkerNickName());
|
||||
|
||||
return lqw;
|
||||
}
|
||||
|
||||
@@ -177,6 +216,13 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
||||
.collect(Collectors.toList());
|
||||
boolean flag = false;
|
||||
for (Long workerId : workerIdList) {
|
||||
if(Objects.nonNull(bo.getAccessory())){
|
||||
List<String> fileUrls = Arrays.stream(bo.getAccessory().split(","))
|
||||
.map(String::valueOf)
|
||||
.collect(Collectors.toList());
|
||||
String fileIds = fileService.insertFiles(fileUrls);
|
||||
bo.setAccessory(fileIds);
|
||||
}
|
||||
SysOaTask add = BeanUtil.toBean(bo, SysOaTask.class);
|
||||
add.setCreateUserId(LoginHelper.getUserId());
|
||||
validEntityBeforeSave(add);
|
||||
@@ -188,7 +234,14 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
||||
}
|
||||
// 判断是否为报工模式
|
||||
if (bo.getStatus()==1L){
|
||||
// TODO 这里新增item数据,为单个条目
|
||||
// 这里新增item数据,为单个条目
|
||||
SysOaTaskItemBo sysOaTaskItemBo = new SysOaTaskItemBo();
|
||||
sysOaTaskItemBo.setTaskId(add.getTaskId());
|
||||
sysOaTaskItemBo.setBeginTime(add.getBeginTime());
|
||||
Date firstFinishTime = addDays(add.getBeginTime(),add.getTimeGap());
|
||||
sysOaTaskItemBo.setOriginEndTime(firstFinishTime);
|
||||
sysOaTaskItemBo.setEndTime(firstFinishTime);
|
||||
taskItemService.insertByBo(sysOaTaskItemBo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -232,10 +285,18 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
||||
*/
|
||||
@Override
|
||||
public Boolean postponeTask(SysOaTaskBo bo) {
|
||||
// 将时间交换位置,减少查询数据库次数
|
||||
bo.setFinishTime(bo.getTempTime());
|
||||
bo.setState(15L);
|
||||
return updateByBo(bo);
|
||||
// 防止截止日期被写入 新增对象
|
||||
SysOaTaskBo sysOaTaskBo = new SysOaTaskBo();
|
||||
sysOaTaskBo.setTaskId(bo.getTaskId());
|
||||
sysOaTaskBo.setState(15L);
|
||||
sysOaTaskBo.setTempTime(bo.getTempTime());
|
||||
if (bo.getStatus()==1L && bo.getItemId()!=null ){
|
||||
SysOaTaskItemBo sysOaTaskItemBo = new SysOaTaskItemBo();
|
||||
sysOaTaskItemBo.setItemId(bo.getItemId());
|
||||
sysOaTaskItemBo.setTempTime(bo.getTempTime());
|
||||
taskItemService.updateByBo(sysOaTaskItemBo);
|
||||
}
|
||||
return updateByBo(sysOaTaskBo);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -248,8 +309,42 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
||||
SysOaTask sysOaTask = baseMapper.selectById(bo.getTaskId());
|
||||
sysOaTask.setState(0L);
|
||||
sysOaTask.setPostponements(sysOaTask.getPostponements() + 1);
|
||||
if (sysOaTask.getStatus()!=1L){
|
||||
sysOaTask.setFinishTime(sysOaTask.getTempTime());
|
||||
}else{
|
||||
SysOaTaskItem sysOaTaskItem = taskItemMapper.selectById(bo.getItemId());
|
||||
sysOaTaskItem.setEndTime(sysOaTaskItem.getTempTime());
|
||||
taskItemMapper.updateById(sysOaTaskItem);
|
||||
}
|
||||
return baseMapper.updateById(sysOaTask) > 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 使用 Java 8 的 LocalDateTime 在 beginTime 上加上 timeGap 天并返回新的 Date。
|
||||
*
|
||||
* @param beginTime 开始时间(Date类型)
|
||||
* @param timeGap 需要增加的天数(Long类型)
|
||||
* @return 加上 timeGap 天后的日期(Date类型)
|
||||
*/
|
||||
public static Date addDays(Date beginTime, Long timeGap) {
|
||||
if (beginTime == null || timeGap == null) {
|
||||
return null; // 或根据业务需求进行异常处理
|
||||
}
|
||||
|
||||
// 将 Date 转为 LocalDateTime
|
||||
LocalDateTime localDateTime = beginTime.toInstant()
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toLocalDateTime();
|
||||
|
||||
// 加上 timeGap 天
|
||||
localDateTime = localDateTime.plusDays(timeGap);
|
||||
|
||||
// 再转换回 Date
|
||||
return Date.from(localDateTime
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toInstant());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
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 com.ruoyi.oa.domain.SysOaTaskItem;
|
||||
import com.ruoyi.oa.domain.bo.SysOaTaskItemBo;
|
||||
import com.ruoyi.oa.service.ISysOaTaskItemService;
|
||||
import com.ruoyi.oa.service.ISysOaTaskService;
|
||||
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.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 文件共享表Service业务层处理
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-03-28
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class SysOaTaskUserServiceImpl implements ISysOaTaskUserService {
|
||||
|
||||
private final SysOaTaskUserMapper baseMapper;
|
||||
|
||||
private final ISysOaTaskService taskService;
|
||||
|
||||
private final ISysOaTaskItemService taskItemService;
|
||||
|
||||
/**
|
||||
* 查询文件共享表
|
||||
*/
|
||||
@Override
|
||||
public SysOaTaskUserVo queryById(Long taskUserId){
|
||||
return baseMapper.selectVoById(taskUserId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询文件共享表列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SysOaTaskUserVo> queryPageList(SysOaTaskUserBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SysOaTaskUser> lqw = buildQueryWrapper(bo);
|
||||
Page<SysOaTaskUserVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询文件共享表列表
|
||||
*/
|
||||
@Override
|
||||
public List<SysOaTaskUserVo> queryList(SysOaTaskUserBo bo) {
|
||||
LambdaQueryWrapper<SysOaTaskUser> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<SysOaTaskUser> buildQueryWrapper(SysOaTaskUserBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysOaTaskUser> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getTaskId() != null, SysOaTaskUser::getTaskId, bo.getTaskId());
|
||||
lqw.eq(bo.getItemId() != null, SysOaTaskUser::getItemId, bo.getItemId());
|
||||
lqw.eq(bo.getUserId() != null, SysOaTaskUser::getUserId, bo.getUserId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增文件共享表
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(SysOaTaskUserBo bo) {
|
||||
bo.getUserList().forEach(user -> {
|
||||
SysOaTaskUserBo add = new SysOaTaskUserBo();
|
||||
add.setUserId(user.getUserId());
|
||||
add.setTaskId(bo.getTaskId());
|
||||
if (bo.getItemId() != null) {
|
||||
add.setItemId(bo.getItemId());
|
||||
}
|
||||
if (queryList(add).isEmpty()) {
|
||||
SysOaTaskUser bean = BeanUtil.toBean(add, SysOaTaskUser.class);
|
||||
baseMapper.insert(bean);
|
||||
}
|
||||
});
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改文件共享表
|
||||
*/
|
||||
@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<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -90,12 +90,6 @@ public class SysOaWarehouseDetailServiceImpl implements ISysOaWarehouseDetailSer
|
||||
|
||||
@Override
|
||||
public TableDataInfo<SysOaOutWarehouseListVo> queryPageList(SysOaWarehouseDetailBo bo, PageQuery pageQuery) {
|
||||
// LambdaQueryWrapper<SysOaOutWarehouse> lqw = buildQueryWrapper(bo);
|
||||
// Page<SysOaOutWarehouseVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
// for (SysOaOutWarehouseVo record : result.getRecords()) {
|
||||
// record.setWarehouseName(warehouseMapper.selectVoById(record.getWarehouseId()).getName());
|
||||
// record.setProjectName(warehouseMapper.selectVoById(record.getProjectId()).getName());
|
||||
// }
|
||||
Long total = baseMapper.defineQueryTotal(bo, pageQuery);
|
||||
|
||||
pageQuery.setPageNum(ObjectUtil.defaultIfNull(pageQuery.getPageNum(), 1));
|
||||
@@ -137,14 +131,11 @@ public class SysOaWarehouseDetailServiceImpl implements ISysOaWarehouseDetailSer
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增仓库出库
|
||||
* 新增出入库细节
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(SysOaWarehouseDetailBo bo) {
|
||||
bo.setCreateTime(new Date());
|
||||
bo.setUpdateTime(new Date());
|
||||
SysOaWarehouseDetail decrease = toBean(bo, SysOaWarehouseDetail.class);
|
||||
|
||||
validEntityBeforeSave(decrease);
|
||||
SysOaWarehouse warehouse = warehouseMapper.selectById(decrease.getWarehouseId());
|
||||
// 1 如果对应仓库表项目数量-将要出库数量<0,出库失败, 繁殖 , 增加该条
|
||||
|
||||
@@ -9,6 +9,7 @@ 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.SysOaWarehouseDetail;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseBo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo;
|
||||
import com.ruoyi.oa.mapper.SysOaWarehouseDetailMapper;
|
||||
@@ -24,6 +25,8 @@ import com.ruoyi.oa.service.ISysOaWarehouseMasterService;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import static cn.hutool.core.bean.BeanUtil.toBean;
|
||||
|
||||
/**
|
||||
* 出库单管理Service业务层处理
|
||||
*
|
||||
@@ -37,8 +40,10 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
||||
private final SysOaWarehouseMasterMapper baseMapper;
|
||||
|
||||
private final ISysOaWarehouseDetailService warehouseDetailService;
|
||||
private final SysOaWarehouseDetailMapper warehouseDetailMapper;
|
||||
|
||||
|
||||
|
||||
private final ISysOaWarehouseService warehouseService;
|
||||
|
||||
/**
|
||||
* 查询出库单管理
|
||||
@@ -80,19 +85,21 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增出库单管理
|
||||
* 新增单管理
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(SysOaWarehouseMasterBo bo) {
|
||||
|
||||
SysOaWarehouseMaster add = BeanUtil.toBean(bo, SysOaWarehouseMaster.class);
|
||||
validEntityBeforeSave(add);
|
||||
add.setSignUser(LoginHelper.getNickName());
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
// 出库单新增后 新增出库元素同时减去现有的,这里要记录一个出库时单价
|
||||
// 单子新增后 新增出库元素同时减去现有的,这里要记录一个出库时单价
|
||||
for (SysOaWarehouseDetailBo sysOaWarehouseDetailBo : bo.getWarehouseList()) {
|
||||
sysOaWarehouseDetailBo.setMasterId(add.getMasterId());
|
||||
warehouseDetailService.insertByBo(sysOaWarehouseDetailBo);
|
||||
SysOaWarehouseDetail add2 = toBean(sysOaWarehouseDetailBo, SysOaWarehouseDetail.class);
|
||||
warehouseDetailMapper.insert(add2);
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
@@ -103,18 +110,26 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(SysOaWarehouseMasterBo bo) {
|
||||
SysOaWarehouseMaster update = BeanUtil.toBean(bo, SysOaWarehouseMaster.class);
|
||||
validEntityBeforeSave(update);
|
||||
boolean flag = baseMapper.updateById(update) > 0;
|
||||
if (flag) {
|
||||
List<SysOaWarehouseDetailBo> warehouseList = bo.getWarehouseList();
|
||||
for (SysOaWarehouseDetailBo sysOaWarehouseDetailBo : warehouseList) {
|
||||
sysOaWarehouseDetailBo.setMasterId(bo.getMasterId());
|
||||
warehouseDetailService.insertByBo(sysOaWarehouseDetailBo);
|
||||
}
|
||||
// 判断是否为采购单,采购单,用户是直接点击完成按钮,所以直接更新单子状态就可以
|
||||
if (bo.getType()!=2L){
|
||||
SysOaWarehouseMaster update = BeanUtil.toBean(bo, SysOaWarehouseMaster.class);
|
||||
validEntityBeforeSave(update);
|
||||
boolean flag = baseMapper.updateById(update) > 0;
|
||||
if (flag) {
|
||||
List<SysOaWarehouseDetailBo> warehouseList = bo.getWarehouseList();
|
||||
for (SysOaWarehouseDetailBo sysOaWarehouseDetailBo : warehouseList) {
|
||||
sysOaWarehouseDetailBo.setMasterId(bo.getMasterId());
|
||||
warehouseDetailService.insertByBo(sysOaWarehouseDetailBo);
|
||||
}
|
||||
|
||||
}
|
||||
return flag;
|
||||
}else{
|
||||
SysOaWarehouseMaster update = BeanUtil.toBean(bo, SysOaWarehouseMaster.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
return flag;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -138,7 +153,6 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
||||
|
||||
@Override
|
||||
public int insertInWarehouse(SysOaWarehouseBo bo) {
|
||||
warehouseService.insertByBo(bo);
|
||||
SysOaWarehouseMaster sysOaWarehouseMaster = new SysOaWarehouseMaster();
|
||||
sysOaWarehouseMaster.setMasterNum(UUID.randomUUID().toString());
|
||||
sysOaWarehouseMaster.setRemark(bo.getRemark());
|
||||
|
||||
@@ -1,13 +1,22 @@
|
||||
package com.ruoyi.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.excel.ExcelResult;
|
||||
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 com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseMasterBo;
|
||||
import com.ruoyi.oa.listener.SysOaWarehouseListener;
|
||||
import com.ruoyi.oa.mapper.SysOaWarehouseDetailMapper;
|
||||
import com.ruoyi.oa.mapper.SysOaWarehouseMasterMapper;
|
||||
import com.ruoyi.oa.service.ISysOaWarehouseMasterService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseBo;
|
||||
@@ -16,9 +25,7 @@ import com.ruoyi.oa.domain.SysOaWarehouse;
|
||||
import com.ruoyi.oa.mapper.SysOaWarehouseMapper;
|
||||
import com.ruoyi.oa.service.ISysOaWarehouseService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 仓库管理Service业务层处理
|
||||
@@ -34,6 +41,7 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
|
||||
|
||||
private final SysOaWarehouseDetailMapper outWareMapper;
|
||||
|
||||
private final ISysOaWarehouseMasterService masterService;
|
||||
/**
|
||||
* 查询仓库管理
|
||||
*/
|
||||
@@ -47,11 +55,54 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SysOaWarehouseVo> queryPageList(SysOaWarehouseBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SysOaWarehouse> lqw = buildQueryWrapper(bo);
|
||||
Page<SysOaWarehouseVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
QueryWrapper<SysOaWarehouse> lqw = new QueryWrapper<>();
|
||||
lqw.like(StringUtils.isNotBlank(bo.getName()), "sow.name", bo.getName()).or()
|
||||
.like(StringUtils.isNotBlank(bo.getName()), "sow.brand", bo.getName()).or()
|
||||
.like(StringUtils.isNotBlank(bo.getName()), "sow.model", bo.getName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getModel()), "sow.model", bo.getModel());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBrand()), "sow.brand", bo.getBrand());
|
||||
lqw.eq("sow.del_flag", 0);
|
||||
|
||||
Page<SysOaWarehouseVo> result = baseMapper.selectListVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<SysOaWarehouseVo> queryPageListThreshold(SysOaWarehouseBo bo, PageQuery pageQuery, boolean b) {
|
||||
QueryWrapper<SysOaWarehouse> lqw = new QueryWrapper<>();
|
||||
lqw.like(StringUtils.isNotBlank(bo.getName()), "sow.name", bo.getName()).or()
|
||||
.like(StringUtils.isNotBlank(bo.getName()), "sow.brand", bo.getName()).or()
|
||||
.like(StringUtils.isNotBlank(bo.getName()), "sow.model", bo.getName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getModel()), "sow.model", bo.getModel());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBrand()), "sow.brand", bo.getBrand());
|
||||
if (b){
|
||||
lqw.apply("sow.inventory < sow.threshold");
|
||||
}else{
|
||||
lqw.apply("sow.inventory >= sow.threshold");
|
||||
}
|
||||
Page<SysOaWarehouseVo> result = baseMapper.selectListVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean insertBatch(List<SysOaWarehouseBo> boList) {
|
||||
SysOaWarehouseMasterBo sysOaWarehouseMaster = new SysOaWarehouseMasterBo();
|
||||
sysOaWarehouseMaster.setType(1L);
|
||||
List<SysOaWarehouseDetailBo> list = new ArrayList<>();
|
||||
boList.forEach(item -> {
|
||||
item.setInventory(item.getTaskInventory());
|
||||
SysOaWarehouseDetailBo bo = new SysOaWarehouseDetailBo();
|
||||
bo.setAmount(item.getInventory());
|
||||
bo.setSignPrice(item.getPrice());
|
||||
Long warehouseId = insertByBo2(item);
|
||||
bo.setWarehouseId(warehouseId);
|
||||
list.add(bo);
|
||||
});
|
||||
sysOaWarehouseMaster.setWarehouseList(list);
|
||||
sysOaWarehouseMaster.setMasterNum(UUID.randomUUID().toString());
|
||||
return masterService.insertByBo(sysOaWarehouseMaster);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询仓库管理列表
|
||||
*/
|
||||
@@ -71,12 +122,15 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private LambdaQueryWrapper<SysOaWarehouse> buildQueryWrapper(SysOaWarehouseBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysOaWarehouse> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getInventory() != null, SysOaWarehouse::getInventory, bo.getInventory());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getModel()), SysOaWarehouse::getModel, bo.getModel());
|
||||
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), SysOaWarehouse::getUnit, bo.getUnit());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getModel()), SysOaWarehouse::getModel, bo.getModel());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getName()), SysOaWarehouse::getName, bo.getName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBrand()), SysOaWarehouse::getBrand, bo.getBrand());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSpecifications()), SysOaWarehouse::getSpecifications, bo.getSpecifications());
|
||||
@@ -101,6 +155,7 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
|
||||
flag = baseMapper.insert(add) > 0;
|
||||
} else {
|
||||
select.setInventory(select.getInventory() + bo.getInventory());
|
||||
select.setPrice((select.getPrice()*select.getInventory() + bo.getPrice()*bo.getInventory())/(select.getInventory()+bo.getInventory()));
|
||||
flag = baseMapper.updateById(select) > 0;
|
||||
}
|
||||
if (flag) {
|
||||
@@ -109,6 +164,30 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增仓库管理
|
||||
*/
|
||||
public Long insertByBo2(SysOaWarehouseBo bo) {
|
||||
SysOaWarehouse add = BeanUtil.toBean(bo, SysOaWarehouse.class);
|
||||
validEntityBeforeSave(add);
|
||||
// 1、查询仓库中是否有已存在项目
|
||||
LambdaQueryWrapper<SysOaWarehouse> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(SysOaWarehouse::getName, bo.getName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getModel()), SysOaWarehouse::getModel, bo.getModel());
|
||||
SysOaWarehouse select = baseMapper.selectOne(lqw);
|
||||
// 2、 无则直接新增项目 有则直接增加库存数量
|
||||
if (select == null) {
|
||||
baseMapper.insert(add);
|
||||
return add.getId();
|
||||
} else {
|
||||
select.setInventory(select.getInventory() + bo.getInventory());
|
||||
select.setPrice((select.getPrice()*select.getInventory() + bo.getPrice()*bo.getInventory())/(select.getInventory()+bo.getInventory()));
|
||||
baseMapper.updateById(select);
|
||||
return select.getId();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改仓库管理
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
package com.ruoyi.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
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 com.ruoyi.oa.domain.SysOaWarehouseMaster;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseMasterBo;
|
||||
import com.ruoyi.oa.mapper.SysOaWarehouseMasterMapper;
|
||||
import com.ruoyi.oa.service.ISysOaWarehouseMasterService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseTaskBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaWarehouseTaskVo;
|
||||
import com.ruoyi.oa.domain.SysOaWarehouseTask;
|
||||
import com.ruoyi.oa.mapper.SysOaWarehouseTaskMapper;
|
||||
import com.ruoyi.oa.service.ISysOaWarehouseTaskService;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 采购计划Service业务层处理
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-03-30
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class SysOaWarehouseTaskServiceImpl implements ISysOaWarehouseTaskService {
|
||||
|
||||
private final SysOaWarehouseTaskMapper baseMapper;
|
||||
|
||||
private final SysOaWarehouseMasterMapper masterMapper;
|
||||
|
||||
/**
|
||||
* 查询采购计划
|
||||
*/
|
||||
@Override
|
||||
public SysOaWarehouseTaskVo queryById(Long taskId){
|
||||
return baseMapper.selectVoById(taskId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询采购计划列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SysOaWarehouseTaskVo> queryPageList(SysOaWarehouseTaskBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SysOaWarehouseTask> lqw = buildQueryWrapper(bo);
|
||||
Page<SysOaWarehouseTaskVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询采购计划列表
|
||||
*/
|
||||
@Override
|
||||
public List<SysOaWarehouseTaskVo> queryList(SysOaWarehouseTaskBo bo) {
|
||||
LambdaQueryWrapper<SysOaWarehouseTask> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<SysOaWarehouseTask> buildQueryWrapper(SysOaWarehouseTaskBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysOaWarehouseTask> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getMasterId() != null, SysOaWarehouseTask::getMasterId, bo.getMasterId());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getName()), SysOaWarehouseTask::getName, bo.getName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getModel()), SysOaWarehouseTask::getModel, bo.getModel());
|
||||
lqw.eq(bo.getTaskInventory() != null, SysOaWarehouseTask::getTaskInventory, bo.getTaskInventory());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBrand()), SysOaWarehouseTask::getBrand, bo.getBrand());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSpecifications()), SysOaWarehouseTask::getSpecifications, bo.getSpecifications());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增采购计划
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(SysOaWarehouseTaskBo bo) {
|
||||
SysOaWarehouseTask add = BeanUtil.toBean(bo, SysOaWarehouseTask.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setTaskId(add.getTaskId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改采购计划
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(SysOaWarehouseTaskBo bo) {
|
||||
SysOaWarehouseTask update = BeanUtil.toBean(bo, SysOaWarehouseTask.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(SysOaWarehouseTask entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除采购计划
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysOaWarehouseTaskVo> queryByMasterId(Long masterId) {
|
||||
SysOaWarehouseTaskBo sysOaWarehouseTaskBo = new SysOaWarehouseTaskBo();
|
||||
sysOaWarehouseTaskBo.setMasterId(masterId);
|
||||
return this.queryList(sysOaWarehouseTaskBo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean addBatch(List<SysOaWarehouseTaskBo> boList) {
|
||||
// 首先新增一条采购单
|
||||
SysOaWarehouseMaster sysOaWarehouseMaster = new SysOaWarehouseMaster();
|
||||
sysOaWarehouseMaster.setType(2L);
|
||||
sysOaWarehouseMaster.setStatus(0L);
|
||||
sysOaWarehouseMaster.setMasterNum(UUID.randomUUID().toString());
|
||||
sysOaWarehouseMaster.setSignUser(LoginHelper.getNickName());
|
||||
Boolean flag = masterMapper.insert(sysOaWarehouseMaster)>0;
|
||||
Long masterId = sysOaWarehouseMaster.getMasterId();
|
||||
for (SysOaWarehouseTaskBo sysOaWarehouseTaskBo : boList) {
|
||||
sysOaWarehouseTaskBo.setMasterId(masterId);
|
||||
sysOaWarehouseTaskBo.setWarehouseId(sysOaWarehouseTaskBo.getId());
|
||||
this.insertByBo(sysOaWarehouseTaskBo);
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user