330任务完成
This commit is contained in:
@@ -13,7 +13,7 @@ ruoyi:
|
|||||||
# 缓存懒加载
|
# 缓存懒加载
|
||||||
cacheLazy: false
|
cacheLazy: false
|
||||||
# 文件路径
|
# 文件路径
|
||||||
profile: /home/wangyu/oa/uploadPath
|
profile: /home/wy/oa/uploadPath
|
||||||
# profile: F:\work\fad_oa系统\fad_oa\temp
|
# profile: F:\work\fad_oa系统\fad_oa\temp
|
||||||
|
|
||||||
captcha:
|
captcha:
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public class RuoYiConfig {
|
|||||||
|
|
||||||
/** 上传路径 */
|
/** 上传路径 */
|
||||||
@Getter
|
@Getter
|
||||||
private static String profile = "/home/wangyu/oa/uploadPath";
|
private static String profile = "/home/wy/oa/uploadPath";
|
||||||
//
|
//
|
||||||
// /** 上传路径 */
|
// /** 上传路径 */
|
||||||
// @Getter
|
// @Getter
|
||||||
|
|||||||
@@ -0,0 +1,118 @@
|
|||||||
|
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.OaFeedbackVo;
|
||||||
|
import com.ruoyi.oa.domain.bo.OaFeedbackBo;
|
||||||
|
import com.ruoyi.oa.service.IOaFeedbackService;
|
||||||
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 问题反馈
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2025-03-28
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/oa/feedback")
|
||||||
|
public class OaFeedbackController extends BaseController {
|
||||||
|
|
||||||
|
private final IOaFeedbackService iOaFeedbackService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询问题反馈列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<OaFeedbackVo> list(OaFeedbackBo bo, PageQuery pageQuery) {
|
||||||
|
return iOaFeedbackService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出问题反馈列表
|
||||||
|
*/
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(OaFeedbackBo bo, HttpServletResponse response) {
|
||||||
|
List<OaFeedbackVo> list = iOaFeedbackService.queryList(bo);
|
||||||
|
ExcelUtil.exportExcel(list, "问题反馈", OaFeedbackVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取问题反馈详细信息
|
||||||
|
*
|
||||||
|
* @param feedbackId 主键
|
||||||
|
*/
|
||||||
|
@GetMapping("/{feedbackId}")
|
||||||
|
public R<OaFeedbackVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long feedbackId) {
|
||||||
|
return R.ok(iOaFeedbackService.queryById(feedbackId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增问题反馈
|
||||||
|
*/
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaFeedbackBo bo) {
|
||||||
|
return toAjax(iOaFeedbackService.insertByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改问题反馈
|
||||||
|
*/
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaFeedbackBo bo) {
|
||||||
|
return toAjax(iOaFeedbackService.updateByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除问题反馈
|
||||||
|
*
|
||||||
|
* @param feedbackIds 主键串
|
||||||
|
*/
|
||||||
|
@DeleteMapping("/{feedbackIds}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] feedbackIds) {
|
||||||
|
return toAjax(iOaFeedbackService.deleteWithValidByIds(Arrays.asList(feedbackIds), true));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 删除问题反馈
|
||||||
|
*
|
||||||
|
* @param feedbackId 主键
|
||||||
|
*/
|
||||||
|
@DeleteMapping("/remove/{feedbackId}")
|
||||||
|
public R<Void> removeItem(@PathVariable("feedbackId") Long feedbackId) {
|
||||||
|
return toAjax(iOaFeedbackService.delItem(feedbackId));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改问题反馈
|
||||||
|
*/
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping("/toRead")
|
||||||
|
public R<Void> toRead(@Validated(EditGroup.class) @RequestBody OaFeedbackBo bo) {
|
||||||
|
return toAjax(iOaFeedbackService.updateToRead(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -45,10 +45,9 @@ public class SysOaRemindController extends BaseController {
|
|||||||
* @param bo
|
* @param bo
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:remind:list")
|
|
||||||
@GetMapping("/getRemindList")
|
@GetMapping("/getRemindList")
|
||||||
public R<List<SysOaRemindVo>> getRemindList(SysOaRemindBo bo){
|
public R<List<SysOaRemindVo>> getRemindList(SysOaRemindBo bo, PageQuery pageQuery){
|
||||||
R<List<SysOaRemindVo>> remindList = iSysOaRemindService.queryRemindList(bo);
|
R<List<SysOaRemindVo>> remindList = iSysOaRemindService.queryRemindList(bo,pageQuery);
|
||||||
return remindList;
|
return remindList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,7 +56,6 @@ public class SysOaRemindController extends BaseController {
|
|||||||
* @param bo
|
* @param bo
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:remind:list")
|
|
||||||
@GetMapping("/getRemindCount")
|
@GetMapping("/getRemindCount")
|
||||||
public R getRemindCount(SysOaRemindBo bo){
|
public R getRemindCount(SysOaRemindBo bo){
|
||||||
Long aLong = iSysOaRemindService.queryRemindCount(bo);
|
Long aLong = iSysOaRemindService.queryRemindCount(bo);
|
||||||
@@ -67,7 +65,6 @@ public class SysOaRemindController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 查询事件提醒列表
|
* 查询事件提醒列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:remind:list")
|
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo<SysOaRemindVo> list(SysOaRemindBo bo, PageQuery pageQuery) {
|
public TableDataInfo<SysOaRemindVo> list(SysOaRemindBo bo, PageQuery pageQuery) {
|
||||||
return iSysOaRemindService.queryPageList(bo, pageQuery);
|
return iSysOaRemindService.queryPageList(bo, pageQuery);
|
||||||
@@ -76,7 +73,6 @@ public class SysOaRemindController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 导出事件提醒列表
|
* 导出事件提醒列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:remind:export")
|
|
||||||
@Log(title = "事件提醒", businessType = BusinessType.EXPORT)
|
@Log(title = "事件提醒", businessType = BusinessType.EXPORT)
|
||||||
@PostMapping("/export")
|
@PostMapping("/export")
|
||||||
public void export(SysOaRemindBo bo, HttpServletResponse response) {
|
public void export(SysOaRemindBo bo, HttpServletResponse response) {
|
||||||
@@ -89,7 +85,6 @@ public class SysOaRemindController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param remindId 主键
|
* @param remindId 主键
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:remind:query")
|
|
||||||
@GetMapping("/{remindId}")
|
@GetMapping("/{remindId}")
|
||||||
public R<SysOaRemindVo> getInfo(@NotNull(message = "主键不能为空")
|
public R<SysOaRemindVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
@PathVariable Long remindId) {
|
@PathVariable Long remindId) {
|
||||||
@@ -99,7 +94,6 @@ public class SysOaRemindController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 新增事件提醒
|
* 新增事件提醒
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:remind:add")
|
|
||||||
@Log(title = "事件提醒", businessType = BusinessType.INSERT)
|
@Log(title = "事件提醒", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping()
|
@PostMapping()
|
||||||
@@ -110,7 +104,6 @@ public class SysOaRemindController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 修改事件提醒
|
* 修改事件提醒
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:remind:edit")
|
|
||||||
@Log(title = "事件提醒", businessType = BusinessType.UPDATE)
|
@Log(title = "事件提醒", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping()
|
@PutMapping()
|
||||||
@@ -123,7 +116,6 @@ public class SysOaRemindController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param remindIds 主键串
|
* @param remindIds 主键串
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:remind:remove")
|
|
||||||
@Log(title = "事件提醒", businessType = BusinessType.DELETE)
|
@Log(title = "事件提醒", businessType = BusinessType.DELETE)
|
||||||
@DeleteMapping("/{remindIds}")
|
@DeleteMapping("/{remindIds}")
|
||||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
package com.ruoyi.oa.controller;
|
package com.ruoyi.oa.controller;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
import com.ruoyi.common.helper.LoginHelper;
|
import com.ruoyi.common.helper.LoginHelper;
|
||||||
import com.ruoyi.oa.domain.SysOaTask;
|
import com.ruoyi.oa.domain.UserMonthlyData;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.validation.constraints.*;
|
import javax.validation.constraints.*;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||||
@@ -18,7 +17,6 @@ import com.ruoyi.common.core.domain.PageQuery;
|
|||||||
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.R;
|
||||||
import com.ruoyi.common.core.validate.AddGroup;
|
import com.ruoyi.common.core.validate.AddGroup;
|
||||||
import com.ruoyi.common.core.validate.EditGroup;
|
import com.ruoyi.common.core.validate.EditGroup;
|
||||||
import com.ruoyi.common.core.validate.QueryGroup;
|
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||||
import com.ruoyi.oa.domain.vo.SysOaTaskVo;
|
import com.ruoyi.oa.domain.vo.SysOaTaskVo;
|
||||||
@@ -65,6 +63,24 @@ public class SysOaTaskController extends BaseController {
|
|||||||
return iSysOaTaskService.queryPageListOwn(bo, pageQuery);
|
return iSysOaTaskService.queryPageListOwn(bo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询任务管理列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/list-own-document")
|
||||||
|
public TableDataInfo<SysOaTaskVo> listOwnDocument(SysOaTaskBo bo, PageQuery pageQuery) {
|
||||||
|
|
||||||
|
return iSysOaTaskService.queryPageListDocument(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询此项目挂接的所有文件
|
||||||
|
*/
|
||||||
|
@GetMapping("/list-document-project/{projectId}")
|
||||||
|
public R<List<SysOaTaskVo>> listDocumentProject(@PathVariable Long projectId) {
|
||||||
|
|
||||||
|
return R.ok(iSysOaTaskService.listDocumentProject(projectId));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据工作类型字典查询任务列表
|
* 根据工作类型字典查询任务列表
|
||||||
* @param pid
|
* @param pid
|
||||||
@@ -159,4 +175,17 @@ public class SysOaTaskController extends BaseController {
|
|||||||
@PathVariable Long[] taskIds) {
|
@PathVariable Long[] taskIds) {
|
||||||
return toAjax(iSysOaTaskService.deleteWithValidByIds(Arrays.asList(taskIds), true));
|
return toAjax(iSysOaTaskService.deleteWithValidByIds(Arrays.asList(taskIds), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 示例:获取指定月份的员工任务统计
|
||||||
|
*
|
||||||
|
* @return 符合条件的List<UserMonthlyData>
|
||||||
|
*/
|
||||||
|
@GetMapping("/monthData/list/{date}")
|
||||||
|
public TableDataInfo<UserMonthlyData> getMonthlyData(@PathVariable("date") String month) {
|
||||||
|
|
||||||
|
// 假设这是一份模拟数据,你可以从数据库/服务中获取
|
||||||
|
return iSysOaTaskService.getMonthlyData(month);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,117 @@
|
|||||||
|
package com.ruoyi.oa.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import com.ruoyi.oa.service.ISysOaTaskService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
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.SysOaTaskItemVo;
|
||||||
|
import com.ruoyi.oa.domain.bo.SysOaTaskItemBo;
|
||||||
|
import com.ruoyi.oa.service.ISysOaTaskItemService;
|
||||||
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 报工任务单元
|
||||||
|
*
|
||||||
|
* @author hdka
|
||||||
|
* @date 2025-03-27
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/oa/oaTaskItem")
|
||||||
|
public class SysOaTaskItemController extends BaseController {
|
||||||
|
|
||||||
|
private final ISysOaTaskItemService iSysOaTaskItemService;
|
||||||
|
|
||||||
|
private final ISysOaTaskService iSysOaTaskService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询报工任务单元列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<SysOaTaskItemVo> list(SysOaTaskItemBo bo, PageQuery pageQuery) {
|
||||||
|
return iSysOaTaskItemService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出报工任务单元列表
|
||||||
|
*/
|
||||||
|
@Log(title = "报工任务单元", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(SysOaTaskItemBo bo, HttpServletResponse response) {
|
||||||
|
List<SysOaTaskItemVo> list = iSysOaTaskItemService.queryList(bo);
|
||||||
|
ExcelUtil.exportExcel(list, "报工任务单元", SysOaTaskItemVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取报工任务单元详细信息
|
||||||
|
*
|
||||||
|
* @param itemId 主键
|
||||||
|
*/
|
||||||
|
@GetMapping("/{itemId}")
|
||||||
|
public R<SysOaTaskItemVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long itemId) {
|
||||||
|
System.out.println(itemId);
|
||||||
|
return R.ok(iSysOaTaskItemService.queryById(itemId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增报工任务单元
|
||||||
|
*/
|
||||||
|
@Log(title = "报工任务单元", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaTaskItemBo bo) {
|
||||||
|
return toAjax(iSysOaTaskItemService.insertByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改报工任务单元
|
||||||
|
*/
|
||||||
|
@Log(title = "报工任务单元", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaTaskItemBo bo) {
|
||||||
|
return toAjax(iSysOaTaskItemService.updateByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改报工任务单元
|
||||||
|
*/
|
||||||
|
@Log(title = "报工任务单元", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping("/reportSubmit")
|
||||||
|
public R<Void> reportSubmit(@Validated(EditGroup.class) @RequestBody SysOaTaskItemBo bo) {
|
||||||
|
return toAjax(iSysOaTaskItemService.reportSubmit(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除报工任务单元
|
||||||
|
*
|
||||||
|
* @param itemIds 主键串
|
||||||
|
*/
|
||||||
|
@DeleteMapping("/{itemIds}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] itemIds) {
|
||||||
|
return toAjax(iSysOaTaskItemService.deleteWithValidByIds(Arrays.asList(itemIds), true));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
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 2025-03-28
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/oa/oaTaskUser")
|
||||||
|
public class SysOaTaskUserController extends BaseController {
|
||||||
|
|
||||||
|
private final ISysOaTaskUserService iSysOaTaskUserService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询文件共享表列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("oa:oaTaskUser:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<SysOaTaskUserVo> list(SysOaTaskUserBo bo, PageQuery pageQuery) {
|
||||||
|
return iSysOaTaskUserService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出文件共享表列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("oa:oaTaskUser:export")
|
||||||
|
@Log(title = "文件共享表", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(SysOaTaskUserBo bo, HttpServletResponse response) {
|
||||||
|
List<SysOaTaskUserVo> list = iSysOaTaskUserService.queryList(bo);
|
||||||
|
ExcelUtil.exportExcel(list, "文件共享表", SysOaTaskUserVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取文件共享表详细信息
|
||||||
|
*
|
||||||
|
* @param taskUserId 主键
|
||||||
|
*/
|
||||||
|
@GetMapping("/{taskUserId}")
|
||||||
|
public R<SysOaTaskUserVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long taskUserId) {
|
||||||
|
return R.ok(iSysOaTaskUserService.queryById(taskUserId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增文件共享表
|
||||||
|
*/
|
||||||
|
@Log(title = "文件共享表", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaTaskUserBo bo) {
|
||||||
|
return toAjax(iSysOaTaskUserService.insertByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改文件共享表
|
||||||
|
*/
|
||||||
|
@Log(title = "文件共享表", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaTaskUserBo bo) {
|
||||||
|
return toAjax(iSysOaTaskUserService.updateByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除文件共享表
|
||||||
|
*
|
||||||
|
* @param taskUserIds 主键串
|
||||||
|
*/
|
||||||
|
@Log(title = "文件共享表", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{taskUserIds}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] taskUserIds) {
|
||||||
|
return toAjax(iSysOaTaskUserService.deleteWithValidByIds(Arrays.asList(taskUserIds), true));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ package com.ruoyi.oa.controller;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import com.ruoyi.common.excel.ExcelResult;
|
import com.ruoyi.common.excel.ExcelResult;
|
||||||
@@ -53,17 +54,32 @@ public class SysOaWarehouseController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 查询仓库管理列表
|
* 查询仓库管理列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaWarehouse:list")
|
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo<SysOaWarehouseVo> list(SysOaWarehouseBo bo, PageQuery pageQuery) {
|
public TableDataInfo<SysOaWarehouseVo> list(SysOaWarehouseBo bo, PageQuery pageQuery) {
|
||||||
return iSysOaWarehouseService.queryPageList(bo, pageQuery);
|
return iSysOaWarehouseService.queryPageList(bo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询仓库管理列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/listThreshold")
|
||||||
|
public TableDataInfo<SysOaWarehouseVo> listThreshold(SysOaWarehouseBo bo, PageQuery pageQuery) {
|
||||||
|
return iSysOaWarehouseService.queryPageListThreshold(bo, pageQuery,true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询仓库管理列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/listNotThreshold")
|
||||||
|
public TableDataInfo<SysOaWarehouseVo> listNotThreshold(SysOaWarehouseBo bo, PageQuery pageQuery) {
|
||||||
|
return iSysOaWarehouseService.queryPageListThreshold(bo, pageQuery,false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过一个name查询多个字段
|
* 通过一个name查询多个字段
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaWarehouse:list")
|
|
||||||
@GetMapping("/listByMultiQuery")
|
@GetMapping("/listByMultiQuery")
|
||||||
public TableDataInfo<SysOaWarehouseVo> listByMultiQuery(SysOaWarehouseBo bo, PageQuery pageQuery) {
|
public TableDataInfo<SysOaWarehouseVo> listByMultiQuery(SysOaWarehouseBo bo, PageQuery pageQuery) {
|
||||||
return iSysOaWarehouseService.listByMultiQuery(bo, pageQuery);
|
return iSysOaWarehouseService.listByMultiQuery(bo, pageQuery);
|
||||||
@@ -73,7 +89,6 @@ public class SysOaWarehouseController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 导出仓库管理列表
|
* 导出仓库管理列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaWarehouse:export")
|
|
||||||
@Log(title = "仓库管理", businessType = BusinessType.EXPORT)
|
@Log(title = "仓库管理", businessType = BusinessType.EXPORT)
|
||||||
@PostMapping("/export")
|
@PostMapping("/export")
|
||||||
public void export(SysOaWarehouseBo bo, HttpServletResponse response) {
|
public void export(SysOaWarehouseBo bo, HttpServletResponse response) {
|
||||||
@@ -86,7 +101,6 @@ public class SysOaWarehouseController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param id 主键
|
* @param id 主键
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaWarehouse:query")
|
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public R<SysOaWarehouseVo> getInfo(@NotNull(message = "主键不能为空")
|
public R<SysOaWarehouseVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
@PathVariable Long id) {
|
@PathVariable Long id) {
|
||||||
@@ -96,7 +110,6 @@ public class SysOaWarehouseController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 新增仓库管理
|
* 新增仓库管理
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaWarehouse:add")
|
|
||||||
@Log(title = "仓库管理", businessType = BusinessType.INSERT)
|
@Log(title = "仓库管理", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping()
|
@PostMapping()
|
||||||
@@ -109,7 +122,6 @@ public class SysOaWarehouseController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 修改仓库管理
|
* 修改仓库管理
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaWarehouse:edit")
|
|
||||||
@Log(title = "仓库管理", businessType = BusinessType.UPDATE)
|
@Log(title = "仓库管理", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping()
|
@PutMapping()
|
||||||
@@ -123,7 +135,6 @@ public class SysOaWarehouseController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param ids 主键串
|
* @param ids 主键串
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaWarehouse:remove")
|
|
||||||
@Log(title = "仓库管理", businessType = BusinessType.DELETE)
|
@Log(title = "仓库管理", businessType = BusinessType.DELETE)
|
||||||
@DeleteMapping("/{ids}")
|
@DeleteMapping("/{ids}")
|
||||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
@@ -132,6 +143,17 @@ public class SysOaWarehouseController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增仓库管理
|
||||||
|
*/
|
||||||
|
@Log(title = "仓库管理", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping("/insert")
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody List<SysOaWarehouseBo> boList) {
|
||||||
|
return toAjax(iSysOaWarehouseService.insertBatch(boList));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导入数据
|
* 导入数据
|
||||||
*
|
*
|
||||||
@@ -139,7 +161,6 @@ public class SysOaWarehouseController extends BaseController {
|
|||||||
* @param updateSupport 是否更新已存在数据
|
* @param updateSupport 是否更新已存在数据
|
||||||
*/
|
*/
|
||||||
@Log(title = "入库工单导入", businessType = BusinessType.IMPORT)
|
@Log(title = "入库工单导入", businessType = BusinessType.IMPORT)
|
||||||
@SaCheckPermission("complaint:complaint:import")
|
|
||||||
@PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
@PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||||
public R<Void> importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception {
|
public R<Void> importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception {
|
||||||
ExcelResult<SysOaWarehouseVo> result = ExcelUtil.importExcel(file.getInputStream(), SysOaWarehouseVo.class,
|
ExcelResult<SysOaWarehouseVo> result = ExcelUtil.importExcel(file.getInputStream(), SysOaWarehouseVo.class,
|
||||||
@@ -155,6 +176,7 @@ public class SysOaWarehouseController extends BaseController {
|
|||||||
list.add(bo);
|
list.add(bo);
|
||||||
});
|
});
|
||||||
sysOaWarehouseMaster.setWarehouseList(list);
|
sysOaWarehouseMaster.setWarehouseList(list);
|
||||||
|
sysOaWarehouseMaster.setMasterNum(UUID.randomUUID().toString());
|
||||||
iSysOaWarehouseMasterService.insertByBo(sysOaWarehouseMaster);
|
iSysOaWarehouseMasterService.insertByBo(sysOaWarehouseMaster);
|
||||||
return R.ok(result.getAnalysis());
|
return R.ok(result.getAnalysis());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,6 @@ public class SysOaWarehouseDetailController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 查询仓库出库列表
|
* 查询仓库出库列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaOutWarehouse:list")
|
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo<SysOaOutWarehouseListVo> list(SysOaWarehouseDetailBo bo, PageQuery pageQuery) {
|
public TableDataInfo<SysOaOutWarehouseListVo> list(SysOaWarehouseDetailBo bo, PageQuery pageQuery) {
|
||||||
return iSysOaWarehouseDetailService.queryPageList(bo, pageQuery);
|
return iSysOaWarehouseDetailService.queryPageList(bo, pageQuery);
|
||||||
@@ -53,7 +52,6 @@ public class SysOaWarehouseDetailController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 导出仓库出库列表
|
* 导出仓库出库列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaOutWarehouse:export")
|
|
||||||
@Log(title = "仓库出库", businessType = BusinessType.EXPORT)
|
@Log(title = "仓库出库", businessType = BusinessType.EXPORT)
|
||||||
@PostMapping("/export")
|
@PostMapping("/export")
|
||||||
public void export(SysOaWarehouseDetailBo bo, HttpServletResponse response) {
|
public void export(SysOaWarehouseDetailBo bo, HttpServletResponse response) {
|
||||||
@@ -66,7 +64,6 @@ public class SysOaWarehouseDetailController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param id 主键
|
* @param id 主键
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaOutWarehouse:query")
|
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public R<SysOaWarehouseDetailVo> getInfo(@NotNull(message = "主键不能为空")
|
public R<SysOaWarehouseDetailVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
@PathVariable Long id) {
|
@PathVariable Long id) {
|
||||||
@@ -78,7 +75,6 @@ public class SysOaWarehouseDetailController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param WarehouseId 出库产品id
|
* @param WarehouseId 出库产品id
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaOutWarehouse:query")
|
|
||||||
@GetMapping("/WarehouseIdList/{WarehouseId}")
|
@GetMapping("/WarehouseIdList/{WarehouseId}")
|
||||||
public TableDataInfo<SysOaWarehouseDetailVo> ListByWarehouseId(@NotNull(message = "出库产品ID不能为空")
|
public TableDataInfo<SysOaWarehouseDetailVo> ListByWarehouseId(@NotNull(message = "出库产品ID不能为空")
|
||||||
@PathVariable Long WarehouseId) {
|
@PathVariable Long WarehouseId) {
|
||||||
@@ -90,7 +86,6 @@ public class SysOaWarehouseDetailController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param projectId 出库产品id
|
* @param projectId 出库产品id
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaOutWarehouse:query")
|
|
||||||
@GetMapping("/project/{projectId}")
|
@GetMapping("/project/{projectId}")
|
||||||
public TableDataInfo<SysOaWarehouseDetailVo> queryOutWarehouseByProjectId(@NotNull(message = "项目名不能为空")
|
public TableDataInfo<SysOaWarehouseDetailVo> queryOutWarehouseByProjectId(@NotNull(message = "项目名不能为空")
|
||||||
@PathVariable Long projectId) {
|
@PathVariable Long projectId) {
|
||||||
@@ -102,7 +97,6 @@ public class SysOaWarehouseDetailController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 新增仓库出库
|
* 新增仓库出库
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaOutWarehouse:add")
|
|
||||||
@Log(title = "仓库出库", businessType = BusinessType.INSERT)
|
@Log(title = "仓库出库", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping()
|
@PostMapping()
|
||||||
@@ -113,7 +107,6 @@ public class SysOaWarehouseDetailController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 修改仓库出库
|
* 修改仓库出库
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaOutWarehouse:edit")
|
|
||||||
@Log(title = "仓库出库", businessType = BusinessType.UPDATE)
|
@Log(title = "仓库出库", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping()
|
@PutMapping()
|
||||||
@@ -126,7 +119,6 @@ public class SysOaWarehouseDetailController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param ids 主键串
|
* @param ids 主键串
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("oa:oaOutWarehouse:remove")
|
|
||||||
@Log(title = "仓库出库", businessType = BusinessType.DELETE)
|
@Log(title = "仓库出库", businessType = BusinessType.DELETE)
|
||||||
@DeleteMapping("/{ids}")
|
@DeleteMapping("/{ids}")
|
||||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ import java.util.concurrent.TimeUnit;
|
|||||||
|
|
||||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseBo;
|
import com.ruoyi.oa.domain.bo.SysOaWarehouseBo;
|
||||||
import com.ruoyi.oa.domain.vo.SysOaWarehouseVo;
|
import com.ruoyi.oa.domain.vo.SysOaWarehouseVo;
|
||||||
|
import com.ruoyi.oa.service.ISysOaWarehouseDetailService;
|
||||||
|
import com.ruoyi.oa.service.ISysOaWarehouseService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.validation.constraints.*;
|
import javax.validation.constraints.*;
|
||||||
@@ -43,6 +45,8 @@ public class SysOaWarehouseMasterController extends BaseController {
|
|||||||
|
|
||||||
private final ISysOaWarehouseMasterService iSysOaWarehouseMasterService;
|
private final ISysOaWarehouseMasterService iSysOaWarehouseMasterService;
|
||||||
|
|
||||||
|
private final ISysOaWarehouseService warehouseService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询出库单管理列表
|
* 查询出库单管理列表
|
||||||
*/
|
*/
|
||||||
@@ -51,6 +55,15 @@ public class SysOaWarehouseMasterController extends BaseController {
|
|||||||
return iSysOaWarehouseMasterService.queryPageList(bo, pageQuery);
|
return iSysOaWarehouseMasterService.queryPageList(bo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询出库单管理列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/list-task")
|
||||||
|
public TableDataInfo<SysOaWarehouseMasterVo> listTask(SysOaWarehouseMasterBo bo, PageQuery pageQuery) {
|
||||||
|
bo.setType(2L);
|
||||||
|
return iSysOaWarehouseMasterService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出出库单管理列表
|
* 导出出库单管理列表
|
||||||
*/
|
*/
|
||||||
@@ -89,6 +102,7 @@ public class SysOaWarehouseMasterController extends BaseController {
|
|||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping("/in")
|
@PostMapping("/in")
|
||||||
public R<Void> addIn(@Validated(AddGroup.class) @RequestBody SysOaWarehouseBo bo) {
|
public R<Void> addIn(@Validated(AddGroup.class) @RequestBody SysOaWarehouseBo bo) {
|
||||||
|
warehouseService.insertByBo(bo);
|
||||||
return toAjax(iSysOaWarehouseMasterService.insertInWarehouse(bo));
|
return toAjax(iSysOaWarehouseMasterService.insertInWarehouse(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,124 @@
|
|||||||
|
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.SysOaWarehouseTaskVo;
|
||||||
|
import com.ruoyi.oa.domain.bo.SysOaWarehouseTaskBo;
|
||||||
|
import com.ruoyi.oa.service.ISysOaWarehouseTaskService;
|
||||||
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购计划
|
||||||
|
*
|
||||||
|
* @author hdka
|
||||||
|
* @date 2025-03-30
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/oa/oaWarehouseTask")
|
||||||
|
public class SysOaWarehouseTaskController extends BaseController {
|
||||||
|
|
||||||
|
private final ISysOaWarehouseTaskService iSysOaWarehouseTaskService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询采购计划列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<SysOaWarehouseTaskVo> list(SysOaWarehouseTaskBo bo, PageQuery pageQuery) {
|
||||||
|
return iSysOaWarehouseTaskService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出采购计划列表
|
||||||
|
*/
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(SysOaWarehouseTaskBo bo, HttpServletResponse response) {
|
||||||
|
List<SysOaWarehouseTaskVo> list = iSysOaWarehouseTaskService.queryList(bo);
|
||||||
|
ExcelUtil.exportExcel(list, "采购计划", SysOaWarehouseTaskVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取采购计划详细信息
|
||||||
|
*
|
||||||
|
* @param taskId 主键
|
||||||
|
*/
|
||||||
|
@GetMapping("/{taskId}")
|
||||||
|
public R<SysOaWarehouseTaskVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long taskId) {
|
||||||
|
return R.ok(iSysOaWarehouseTaskService.queryById(taskId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取采购计划详细信息
|
||||||
|
*
|
||||||
|
* @param masterId 主键
|
||||||
|
*/
|
||||||
|
@GetMapping("/masterId/{masterId}")
|
||||||
|
public R<List<SysOaWarehouseTaskVo>> getInfoByMasterId(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long masterId) {
|
||||||
|
return R.ok(iSysOaWarehouseTaskService.queryByMasterId(masterId));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增采购计划
|
||||||
|
*/
|
||||||
|
@Log(title = "采购计划", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaWarehouseTaskBo bo) {
|
||||||
|
return toAjax(iSysOaWarehouseTaskService.insertByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增采购计划
|
||||||
|
*/
|
||||||
|
@Log(title = "采购计划", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping("/insert")
|
||||||
|
public R<Void> addBatch(@RequestBody List<SysOaWarehouseTaskBo> boList) {
|
||||||
|
return toAjax(iSysOaWarehouseTaskService.addBatch(boList));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改采购计划
|
||||||
|
*/
|
||||||
|
@Log(title = "采购计划", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaWarehouseTaskBo bo) {
|
||||||
|
return toAjax(iSysOaWarehouseTaskService.updateByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除采购计划
|
||||||
|
*
|
||||||
|
* @param taskIds 主键串
|
||||||
|
*/
|
||||||
|
@DeleteMapping("/{taskIds}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] taskIds) {
|
||||||
|
return toAjax(iSysOaWarehouseTaskService.deleteWithValidByIds(Arrays.asList(taskIds), true));
|
||||||
|
}
|
||||||
|
}
|
||||||
50
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaFeedback.java
Normal file
50
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaFeedback.java
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
package com.ruoyi.oa.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 问题反馈对象 oa_feedback
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2025-03-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("oa_feedback")
|
||||||
|
public class OaFeedback extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID=1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@TableId(value = "feedback_id")
|
||||||
|
private Long feedbackId;
|
||||||
|
/**
|
||||||
|
* 反馈内容
|
||||||
|
*/
|
||||||
|
private String content;
|
||||||
|
/**
|
||||||
|
* 反馈状态
|
||||||
|
*/
|
||||||
|
private Long status;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@TableLogic
|
||||||
|
private Long delFlag;
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -134,4 +134,10 @@ public class SysOaTask extends BaseEntity {
|
|||||||
* 报工间隔
|
* 报工间隔
|
||||||
*/
|
*/
|
||||||
private Long timeGap;
|
private Long timeGap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 临时时间
|
||||||
|
*/
|
||||||
|
private Date tempTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,83 @@
|
|||||||
|
package com.ruoyi.oa.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 报工任务单元对象 sys_oa_task_item
|
||||||
|
*
|
||||||
|
* @author hdka
|
||||||
|
* @date 2025-03-27
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("sys_oa_task_item")
|
||||||
|
public class SysOaTaskItem extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID=1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@TableId(value = "item_id")
|
||||||
|
private Long itemId;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private Long taskId;
|
||||||
|
/**
|
||||||
|
* 报工内容
|
||||||
|
*/
|
||||||
|
private String content;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private String files;
|
||||||
|
/**
|
||||||
|
* 上传事件
|
||||||
|
*/
|
||||||
|
private Date signTime;
|
||||||
|
/**
|
||||||
|
* 任务状态
|
||||||
|
*/
|
||||||
|
private Long status;
|
||||||
|
/**
|
||||||
|
* 该报功开始时间
|
||||||
|
*/
|
||||||
|
private Date beginTime;
|
||||||
|
/**
|
||||||
|
* 结束事件
|
||||||
|
*/
|
||||||
|
private Date endTime;
|
||||||
|
/**
|
||||||
|
* 最初结束事件
|
||||||
|
*/
|
||||||
|
private Date originEndTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 完成时间
|
||||||
|
*/
|
||||||
|
private Date completedTime;
|
||||||
|
/**
|
||||||
|
* 延期临时使用字段
|
||||||
|
*/
|
||||||
|
private Date tempTime;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@TableLogic
|
||||||
|
private Long delFlag;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,29 +3,41 @@ package com.ruoyi.oa.domain;
|
|||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
import com.ruoyi.common.core.domain.BaseEntity;
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务工人对象 sys_oa_task_user
|
* 文件共享表对象 sys_oa_task_user
|
||||||
*
|
*
|
||||||
* @author hdka
|
* @author hdka
|
||||||
* @date 2024-11-09
|
* @date 2025-03-28
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@TableName("sys_oa_task_user")
|
@TableName("sys_oa_task_user")
|
||||||
public class SysOaTaskUser {
|
public class SysOaTaskUser extends BaseEntity {
|
||||||
|
|
||||||
private static final long serialVersionUID=1L;
|
private static final long serialVersionUID=1L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键
|
*
|
||||||
|
*/
|
||||||
|
@TableId(value = "task_user_id")
|
||||||
|
private Long taskUserId;
|
||||||
|
/**
|
||||||
|
* 任务id
|
||||||
|
*/
|
||||||
|
private Long taskId;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private Long itemId;
|
||||||
|
/**
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
private Long userId;
|
private Long userId;
|
||||||
/**
|
|
||||||
* 任务键
|
|
||||||
*/
|
|
||||||
@TableId(value = "task_id")
|
|
||||||
private Long taskId;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,4 +68,6 @@ public class SysOaWarehouse extends BaseEntity {
|
|||||||
@TableLogic
|
@TableLogic
|
||||||
private Long delFlag;
|
private Long delFlag;
|
||||||
|
|
||||||
|
private Long threshold;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,4 +57,7 @@ public class SysOaWarehouseMaster extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
private Long status;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,69 @@
|
|||||||
|
package com.ruoyi.oa.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购计划对象 sys_oa_warehouse_task
|
||||||
|
*
|
||||||
|
* @author hdka
|
||||||
|
* @date 2025-03-30
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("sys_oa_warehouse_task")
|
||||||
|
public class SysOaWarehouseTask extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID=1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@TableId(value = "task_id")
|
||||||
|
private Long taskId;
|
||||||
|
/**
|
||||||
|
* 绑定采购单
|
||||||
|
*/
|
||||||
|
private Long masterId;
|
||||||
|
/**
|
||||||
|
* 物料名
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
/**
|
||||||
|
* 型号
|
||||||
|
*/
|
||||||
|
private String model;
|
||||||
|
/**
|
||||||
|
* 计划入库
|
||||||
|
*/
|
||||||
|
private Long taskInventory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料id
|
||||||
|
*/
|
||||||
|
private Long warehouseId;
|
||||||
|
/**
|
||||||
|
* 品牌
|
||||||
|
*/
|
||||||
|
private String brand;
|
||||||
|
/**
|
||||||
|
* 规格
|
||||||
|
*/
|
||||||
|
private String specifications;
|
||||||
|
/**
|
||||||
|
* 删除标志
|
||||||
|
*/
|
||||||
|
@TableLogic
|
||||||
|
private Long delFlag;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package com.ruoyi.oa.domain;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录员工在某个月份的任务统计数据
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Builder
|
||||||
|
public class UserMonthlyData {
|
||||||
|
/** 员工昵称 */
|
||||||
|
private String nickName;
|
||||||
|
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
/** 月份(yyyy-MM格式等) */
|
||||||
|
private String month;
|
||||||
|
|
||||||
|
/** 当月总任务量 */
|
||||||
|
private Long totalTasks;
|
||||||
|
|
||||||
|
/** 已完成任务量 */
|
||||||
|
private Long completedTasks;
|
||||||
|
|
||||||
|
/** 推迟任务量 */
|
||||||
|
private Long delayedTasks;
|
||||||
|
|
||||||
|
/** 推迟次数 */
|
||||||
|
private Long delayedTimes;
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 问题反馈业务对象 oa_feedback
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2025-03-28
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class OaFeedbackBo extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
private Long feedbackId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 反馈内容
|
||||||
|
*/
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 反馈状态
|
||||||
|
*/
|
||||||
|
private Long status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
private Long state;
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
}
|
||||||
@@ -33,13 +33,11 @@ public class SysOaRemindBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 提醒名称
|
* 提醒名称
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "提醒名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|
||||||
private String taskTitle;
|
private String taskTitle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 事件内容
|
* 事件内容
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "事件内容不能为空", groups = { AddGroup.class, EditGroup.class })
|
|
||||||
private String content;
|
private String content;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -178,4 +178,8 @@ public class SysOaTaskBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private Long timeGap;
|
private Long timeGap;
|
||||||
|
|
||||||
|
private Long itemId;
|
||||||
|
|
||||||
|
|
||||||
|
private Long itemStatus;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,101 @@
|
|||||||
|
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 java.util.Date;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 报工任务单元业务对象 sys_oa_task_item
|
||||||
|
*
|
||||||
|
* @author hdka
|
||||||
|
* @date 2025-03-27
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class SysOaTaskItemBo extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
private Long itemId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private Long taskId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 报工内容
|
||||||
|
*/
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private String files;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传事件
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date signTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务状态
|
||||||
|
*/
|
||||||
|
private Long status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 该报功开始时间
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date beginTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结束事件
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date endTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最初结束事件
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date originEndTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 延期临时使用字段
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date tempTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 完成时间
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date completedTime;
|
||||||
|
|
||||||
|
private Long timeGap;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
package com.ruoyi.oa.domain.bo;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||||
|
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 java.util.List;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件共享表业务对象 sys_oa_task_user
|
||||||
|
*
|
||||||
|
* @author hdka
|
||||||
|
* @date 2025-03-28
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class SysOaTaskUserBo extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private Long taskUserId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务id
|
||||||
|
*/
|
||||||
|
private Long taskId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private Long itemId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户列表
|
||||||
|
*/
|
||||||
|
private List<SysUser> userList;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -71,5 +71,14 @@ public class SysOaWarehouseBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 告警阈值
|
||||||
|
*/
|
||||||
|
private Long threshold;
|
||||||
|
|
||||||
|
private Long taskInventory;
|
||||||
|
|
||||||
|
private Long warehouseId;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class SysOaWarehouseMasterBo extends BaseEntity {
|
|||||||
private String masterNum;
|
private String masterNum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 0出库单1入库单
|
* 0出库单1入库单2采购单
|
||||||
*/
|
*/
|
||||||
private Long type;
|
private Long type;
|
||||||
|
|
||||||
@@ -62,5 +62,6 @@ public class SysOaWarehouseMasterBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private List<SysOaWarehouseDetailBo> warehouseList;
|
private List<SysOaWarehouseDetailBo> warehouseList;
|
||||||
|
|
||||||
|
private Long status;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,75 @@
|
|||||||
|
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_warehouse_task
|
||||||
|
*
|
||||||
|
* @author hdka
|
||||||
|
* @date 2025-03-30
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class SysOaWarehouseTaskBo extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
private Long taskId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定采购单
|
||||||
|
*/
|
||||||
|
private Long masterId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料名
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 型号
|
||||||
|
*/
|
||||||
|
private String model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计划入库
|
||||||
|
*/
|
||||||
|
private Long taskInventory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 品牌
|
||||||
|
*/
|
||||||
|
private String brand;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 规格
|
||||||
|
*/
|
||||||
|
private String specifications;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料id
|
||||||
|
*/
|
||||||
|
private Long warehouseId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 前端接受一个id
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 问题反馈视图对象 oa_feedback
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2025-03-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class OaFeedbackVo {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "主键id")
|
||||||
|
private Long feedbackId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 反馈内容
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "反馈内容")
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 反馈状态
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "反馈状态")
|
||||||
|
private Long status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "")
|
||||||
|
private String remark;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "")
|
||||||
|
private Long state;
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -206,4 +206,10 @@ public class SysOaProjectVo {
|
|||||||
* 人力资源成本
|
* 人力资源成本
|
||||||
*/
|
*/
|
||||||
private Double laborCost;
|
private Double laborCost;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目剩余时间
|
||||||
|
*/
|
||||||
|
private Long remainTime;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,6 +95,10 @@ public class SysOaRemindVo {
|
|||||||
@ExcelProperty(value = "修改时间")
|
@ExcelProperty(value = "修改时间")
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
|
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
private Long remainTime;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,110 @@
|
|||||||
|
package com.ruoyi.oa.domain.vo;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
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 org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 报工任务单元视图对象 sys_oa_task_item
|
||||||
|
*
|
||||||
|
* @author hdka
|
||||||
|
* @date 2025-03-27
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class SysOaTaskItemVo {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "主键id")
|
||||||
|
private Long itemId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "")
|
||||||
|
private Long taskId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 报工内容
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "报工内容")
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "")
|
||||||
|
private String files;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传事件
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@ExcelProperty(value = "上传事件")
|
||||||
|
private Date signTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务状态
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "任务状态")
|
||||||
|
private Long status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 该报功开始时间
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@ExcelProperty(value = "该报功开始时间")
|
||||||
|
private Date beginTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结束事件
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@ExcelProperty(value = "结束事件")
|
||||||
|
private Date endTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最初结束事件
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@ExcelProperty(value = "最初结束事件")
|
||||||
|
private Date originEndTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 延期临时使用字段
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@ExcelProperty(value = "延期临时使用字段")
|
||||||
|
private Date tempTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 完成时间
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date completedTime;
|
||||||
|
}
|
||||||
@@ -10,10 +10,10 @@ import java.util.Date;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务工人视图对象 sys_oa_task_user
|
* 文件共享表视图对象 sys_oa_task_user
|
||||||
*
|
*
|
||||||
* @author hdka
|
* @author hdka
|
||||||
* @date 2024-11-09
|
* @date 2025-03-28
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ExcelIgnoreUnannotated
|
@ExcelIgnoreUnannotated
|
||||||
@@ -22,16 +22,28 @@ public class SysOaTaskUserVo {
|
|||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键
|
*
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "主键")
|
@ExcelProperty(value = "")
|
||||||
private Long userId;
|
private Long taskUserId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务键
|
* 任务id
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "任务键")
|
@ExcelProperty(value = "任务id")
|
||||||
private Long taskId;
|
private Long taskId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "")
|
||||||
|
private Long itemId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -200,4 +200,14 @@ public class SysOaTaskVo {
|
|||||||
*/
|
*/
|
||||||
private Long timeGap;
|
private Long timeGap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最后一个item的id
|
||||||
|
*/
|
||||||
|
private Long itemId;
|
||||||
|
|
||||||
|
private Date tempTime;
|
||||||
|
|
||||||
|
private List<SysOaTaskItemVo> taskItemVoList;
|
||||||
|
|
||||||
|
private String files;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
|||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||||
|
import com.ruoyi.oa.domain.SysOaWarehouseTask;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -69,8 +70,14 @@ public class SysOaWarehouseMasterVo {
|
|||||||
* 出库列表
|
* 出库列表
|
||||||
*/
|
*/
|
||||||
private List<SysOaWarehouseDetailVo> warehouseList;
|
private List<SysOaWarehouseDetailVo> warehouseList;
|
||||||
|
/**
|
||||||
|
* 采购列表
|
||||||
|
*/
|
||||||
|
private List<SysOaWarehouseTaskVo> warehouseTaskList;
|
||||||
|
|
||||||
private String projectName;
|
private String projectName;
|
||||||
|
|
||||||
|
private Long status;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,77 @@
|
|||||||
|
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_warehouse_task
|
||||||
|
*
|
||||||
|
* @author hdka
|
||||||
|
* @date 2025-03-30
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class SysOaWarehouseTaskVo {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
private Long taskId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定采购单
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "绑定采购单")
|
||||||
|
private Long masterId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料名
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "物料名")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 型号
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "型号")
|
||||||
|
private String model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计划入库
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "计划入库")
|
||||||
|
private Long taskInventory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 品牌
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "品牌")
|
||||||
|
private String brand;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 规格
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "规格")
|
||||||
|
private String specifications;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料id
|
||||||
|
*/
|
||||||
|
private Long warehouseId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -85,5 +85,7 @@ public class SysOaWarehouseVo extends SysOaWarehouse {
|
|||||||
@ExcelProperty(value = "备注")
|
@ExcelProperty(value = "备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
private Long threshold;
|
||||||
|
|
||||||
|
private Long taskInventory;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.ruoyi.oa.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.ruoyi.oa.domain.OaFeedback;
|
||||||
|
import com.ruoyi.oa.domain.vo.OaFeedbackVo;
|
||||||
|
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 问题反馈Mapper接口
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2025-03-28
|
||||||
|
*/
|
||||||
|
public interface OaFeedbackMapper extends BaseMapperPlus<OaFeedbackMapper, OaFeedback, OaFeedbackVo> {
|
||||||
|
|
||||||
|
Page<OaFeedbackVo> selectVoPageAndStatus(@Param("page") Page<OaFeedbackVo> build, @Param(Constants.WRAPPER) QueryWrapper<OaFeedback> lqw);
|
||||||
|
|
||||||
|
int updateToRead(@Param("feedbackId") Long feedbackId, @Param("userId") Long userId);
|
||||||
|
|
||||||
|
void insertItem(Long feedbackId);
|
||||||
|
|
||||||
|
int delItem(@Param("feedbackId") Long feedbackId, @Param("userId") Long userId);
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.ruoyi.oa.mapper;
|
package com.ruoyi.oa.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@@ -37,4 +38,5 @@ public interface SysOaProjectMapper extends BaseMapperPlus<SysOaProjectMapper, S
|
|||||||
|
|
||||||
Map<String, Object> selectProjectDetails(@Param("projectId") Long projectId);
|
Map<String, Object> selectProjectDetails(@Param("projectId") Long projectId);
|
||||||
|
|
||||||
|
Page<SysOaProjectVo> selectVoPlus(@Param("page") Page<SysOaProjectVo> build,@Param(Constants.WRAPPER) LambdaQueryWrapper<SysOaProject> lqw);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.ruoyi.oa.mapper;
|
||||||
|
|
||||||
|
import com.ruoyi.oa.domain.SysOaTaskItem;
|
||||||
|
import com.ruoyi.oa.domain.vo.SysOaTaskItemVo;
|
||||||
|
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 报工任务单元Mapper接口
|
||||||
|
*
|
||||||
|
* @author hdka
|
||||||
|
* @date 2025-03-27
|
||||||
|
*/
|
||||||
|
public interface SysOaTaskItemMapper extends BaseMapperPlus<SysOaTaskItemMapper, SysOaTaskItem, SysOaTaskItemVo> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,14 +1,17 @@
|
|||||||
package com.ruoyi.oa.mapper;
|
package com.ruoyi.oa.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.ruoyi.oa.domain.SysOaTask;
|
import com.ruoyi.oa.domain.SysOaTask;
|
||||||
|
import com.ruoyi.oa.domain.UserMonthlyData;
|
||||||
import com.ruoyi.oa.domain.vo.SysOaTaskVo;
|
import com.ruoyi.oa.domain.vo.SysOaTaskVo;
|
||||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务管理Mapper接口
|
* 任务管理Mapper接口
|
||||||
*
|
*
|
||||||
@@ -27,4 +30,18 @@ public interface SysOaTaskMapper extends BaseMapperPlus<SysOaTaskMapper, SysOaTa
|
|||||||
|
|
||||||
Page<SysOaTaskVo> selectListVoPage(@Param("page") Page<SysOaTaskVo> build, @Param(Constants.WRAPPER) QueryWrapper<SysOaTask> lqw);
|
Page<SysOaTaskVo> selectListVoPage(@Param("page") Page<SysOaTaskVo> build, @Param(Constants.WRAPPER) QueryWrapper<SysOaTask> lqw);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询详情
|
||||||
|
* @param taskId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
SysOaTaskVo selectDetailVoById(Long taskId);
|
||||||
|
|
||||||
|
|
||||||
|
List<UserMonthlyData> getMonthlyData(String month);
|
||||||
|
|
||||||
|
Page<SysOaTaskVo> queryPageListDocument(@Param("page") Page<SysOaTaskVo> build, @Param(Constants.WRAPPER) QueryWrapper<SysOaTask> lqw);
|
||||||
|
|
||||||
|
List<SysOaTaskVo> listDocumentProject(Long projectId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 2025-03-28
|
||||||
|
*/
|
||||||
|
public interface SysOaTaskUserMapper extends BaseMapperPlus<SysOaTaskUserMapper, SysOaTaskUser, SysOaTaskUserVo> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,8 +1,13 @@
|
|||||||
package com.ruoyi.oa.mapper;
|
package com.ruoyi.oa.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.ruoyi.oa.domain.SysOaWarehouse;
|
import com.ruoyi.oa.domain.SysOaWarehouse;
|
||||||
import com.ruoyi.oa.domain.vo.SysOaWarehouseVo;
|
import com.ruoyi.oa.domain.vo.SysOaWarehouseVo;
|
||||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 仓库管理Mapper接口
|
* 仓库管理Mapper接口
|
||||||
@@ -19,4 +24,8 @@ public interface SysOaWarehouseMapper extends BaseMapperPlus<SysOaWarehouseMappe
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
SysOaWarehouseVo selectVoByIdAndXml(Long warehouseId);
|
SysOaWarehouseVo selectVoByIdAndXml(Long warehouseId);
|
||||||
|
|
||||||
|
Page<SysOaWarehouseVo> selectVoPageThreshold(@Param("page")Page<SysOaWarehouseVo> build,@Param(Constants.WRAPPER) LambdaQueryWrapper<SysOaWarehouse> lqw);
|
||||||
|
|
||||||
|
Page<SysOaWarehouseVo> selectListVoPage(@Param("page")Page<SysOaWarehouseVo> build,@Param(Constants.WRAPPER) QueryWrapper<SysOaWarehouse> lqw);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.ruoyi.oa.mapper;
|
||||||
|
|
||||||
|
import com.ruoyi.oa.domain.SysOaWarehouseTask;
|
||||||
|
import com.ruoyi.oa.domain.vo.SysOaWarehouseTaskVo;
|
||||||
|
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购计划Mapper接口
|
||||||
|
*
|
||||||
|
* @author hdka
|
||||||
|
* @date 2025-03-30
|
||||||
|
*/
|
||||||
|
public interface SysOaWarehouseTaskMapper extends BaseMapperPlus<SysOaWarehouseTaskMapper, SysOaWarehouseTask, SysOaWarehouseTaskVo> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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);
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
Long insertByBoReturnId(SysOaFileBo bo);
|
Long insertByBoReturnId(SysOaFileBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增文件返回他们的ID
|
||||||
|
* @param fileUrls
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String insertFiles(List<String> fileUrls);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.ruoyi.oa.service;
|
package com.ruoyi.oa.service;
|
||||||
|
|
||||||
import com.ruoyi.common.core.domain.R;
|
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.vo.SysOaRemindVo;
|
||||||
import com.ruoyi.oa.domain.bo.SysOaRemindBo;
|
import com.ruoyi.oa.domain.bo.SysOaRemindBo;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
@@ -26,10 +25,12 @@ public interface ISysOaRemindService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询代办事件列表
|
* 查询代办事件列表
|
||||||
|
*
|
||||||
* @param bo
|
* @param bo
|
||||||
|
* @param pageQuery
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
R<List<SysOaRemindVo>> queryRemindList(SysOaRemindBo bo);
|
R<List<SysOaRemindVo>> queryRemindList(SysOaRemindBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
Long queryRemindCount(SysOaRemindBo bo);
|
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;
|
package com.ruoyi.oa.service;
|
||||||
|
|
||||||
import com.ruoyi.common.core.domain.R;
|
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.vo.SysOaTaskVo;
|
||||||
import com.ruoyi.oa.domain.bo.SysOaTaskBo;
|
import com.ruoyi.oa.domain.bo.SysOaTaskBo;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
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.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务管理Service接口
|
* 任务管理Service接口
|
||||||
@@ -83,4 +82,43 @@ public interface ISysOaTaskService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
TableDataInfo<SysOaTaskVo> queryPageListOwn(SysOaTaskBo bo, PageQuery pageQuery);
|
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;
|
package com.ruoyi.oa.service;
|
||||||
|
|
||||||
import com.ruoyi.oa.domain.SysOaWarehouse;
|
|
||||||
import com.ruoyi.oa.domain.vo.SysOaWarehouseVo;
|
import com.ruoyi.oa.domain.vo.SysOaWarehouseVo;
|
||||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseBo;
|
import com.ruoyi.oa.domain.bo.SysOaWarehouseBo;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
@@ -51,4 +50,14 @@ public interface ISysOaWarehouseService {
|
|||||||
* 根据一个name查询多个字段
|
* 根据一个name查询多个字段
|
||||||
*/
|
*/
|
||||||
TableDataInfo<SysOaWarehouseVo> listByMultiQuery(SysOaWarehouseBo bo, PageQuery pageQuery);
|
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.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件存储Service业务层处理
|
* 文件存储Service业务层处理
|
||||||
@@ -95,6 +96,28 @@ public class SysOaFileServiceImpl implements ISysOaFileService {
|
|||||||
return add.getFileId();
|
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
|
@Override
|
||||||
public TableDataInfo<SysOaProjectVo> queryPageList(SysOaProjectBo bo, PageQuery pageQuery) {
|
public TableDataInfo<SysOaProjectVo> queryPageList(SysOaProjectBo bo, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<SysOaProject> lqw = buildQueryWrapper(bo);
|
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);
|
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.getProjectNum()), SysOaProject::getProjectNum, bo.getProjectNum());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), SysOaProject::getProjectType, bo.getProjectType());
|
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.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,
|
lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
|
||||||
SysOaProject::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"));
|
SysOaProject::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"));
|
||||||
lqw.orderByDesc(SysOaProject::getCreateTime);
|
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.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
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 lombok.RequiredArgsConstructor;
|
||||||
import org.apache.catalina.security.SecurityUtil;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.ruoyi.oa.domain.bo.SysOaRemindBo;
|
import com.ruoyi.oa.domain.bo.SysOaRemindBo;
|
||||||
import com.ruoyi.oa.domain.vo.SysOaRemindVo;
|
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.mapper.SysOaRemindMapper;
|
||||||
import com.ruoyi.oa.service.ISysOaRemindService;
|
import com.ruoyi.oa.service.ISysOaRemindService;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Collection;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 事件提醒Service业务层处理
|
* 事件提醒Service业务层处理
|
||||||
@@ -35,6 +37,10 @@ public class SysOaRemindServiceImpl implements ISysOaRemindService {
|
|||||||
|
|
||||||
private final SysOaRemindMapper baseMapper;
|
private final SysOaRemindMapper baseMapper;
|
||||||
|
|
||||||
|
private final ISysOaTaskService sysOaTaskService;
|
||||||
|
|
||||||
|
private final ISysOaProjectService projectService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询事件提醒
|
* 查询事件提醒
|
||||||
*/
|
*/
|
||||||
@@ -45,13 +51,59 @@ public class SysOaRemindServiceImpl implements ISysOaRemindService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询代办事件列表
|
* 查询代办事件列表
|
||||||
|
*
|
||||||
* @param bo
|
* @param bo
|
||||||
|
* @param pageQuery
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public R<List<SysOaRemindVo>> queryRemindList(SysOaRemindBo bo){
|
public R<List<SysOaRemindVo>> queryRemindList(SysOaRemindBo bo, PageQuery pageQuery){
|
||||||
LambdaQueryWrapper<SysOaRemind> lqw = buildQueryWrapper(bo);
|
|
||||||
List<SysOaRemindVo> sysOaRemindVos = baseMapper.selectVoList(lqw);
|
// 任务的逾期情况,项目的逾期情况 目前就这个两个需要提醒
|
||||||
|
// 开始
|
||||||
|
// 首先查询任务存在不存在逾期问题
|
||||||
|
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);
|
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;
|
package com.ruoyi.oa.service.impl;
|
||||||
|
|
||||||
import cn.dev33.satoken.fun.SaParamRetFunction;
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.R;
|
||||||
import com.ruoyi.common.core.domain.entity.SysDictData;
|
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.helper.LoginHelper;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.core.domain.PageQuery;
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
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.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.ruoyi.oa.domain.SysOaAttendance;
|
import com.ruoyi.oa.domain.*;
|
||||||
import com.ruoyi.oa.domain.SysOaTaskUser;
|
import com.ruoyi.oa.domain.bo.SysOaTaskItemBo;
|
||||||
import com.ruoyi.oa.domain.bo.SysOaAttendanceBo;
|
import com.ruoyi.oa.mapper.SysOaTaskItemMapper;
|
||||||
import com.ruoyi.oa.domain.vo.SysOaAttendanceVo;
|
import com.ruoyi.oa.service.ISysOaFileService;
|
||||||
import com.ruoyi.oa.domain.vo.SysOaTaskUserVo;
|
import com.ruoyi.oa.service.ISysOaTaskItemService;
|
||||||
import com.ruoyi.oa.domain.vo.SysUserVo;
|
|
||||||
import com.ruoyi.oa.service.ISysOaAttendanceService;
|
|
||||||
import com.ruoyi.system.service.ISysDictTypeService;
|
import com.ruoyi.system.service.ISysDictTypeService;
|
||||||
import com.ruoyi.system.service.ISysUserService;
|
|
||||||
import liquibase.pro.packaged.A;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.ruoyi.oa.domain.bo.SysOaTaskBo;
|
import com.ruoyi.oa.domain.bo.SysOaTaskBo;
|
||||||
import com.ruoyi.oa.domain.vo.SysOaTaskVo;
|
import com.ruoyi.oa.domain.vo.SysOaTaskVo;
|
||||||
import com.ruoyi.oa.domain.SysOaTask;
|
|
||||||
import com.ruoyi.oa.mapper.SysOaTaskMapper;
|
import com.ruoyi.oa.mapper.SysOaTaskMapper;
|
||||||
import com.ruoyi.oa.service.ISysOaTaskService;
|
import com.ruoyi.oa.service.ISysOaTaskService;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.ZoneId;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -43,6 +36,7 @@ import java.util.stream.Collectors;
|
|||||||
* @author huangxing
|
* @author huangxing
|
||||||
* @date 2024-01-11
|
* @date 2024-01-11
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Service
|
@Service
|
||||||
public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
||||||
@@ -51,19 +45,18 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
|||||||
|
|
||||||
private final ISysDictTypeService dictTypeService;
|
private final ISysDictTypeService dictTypeService;
|
||||||
|
|
||||||
|
private final ISysOaTaskItemService taskItemService;
|
||||||
|
|
||||||
@Autowired
|
private final SysOaTaskItemMapper taskItemMapper;
|
||||||
private ISysUserService userService;
|
|
||||||
|
|
||||||
@Autowired
|
private final ISysOaFileService fileService;
|
||||||
private ISysOaAttendanceService attendanceService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询任务管理
|
* 查询任务管理
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public SysOaTaskVo queryById(Long taskId){
|
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);
|
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
|
* @param pid
|
||||||
@@ -134,10 +154,11 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<SysOaTaskVo> queryListByType(SysOaTaskBo bo){
|
public List<SysOaTaskVo> queryListByType(SysOaTaskBo bo){
|
||||||
QueryWrapper<SysOaTask> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<SysOaTask> lqw = new LambdaQueryWrapper<>();
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getTaskType()),"sot.task_type", bo.getTaskType());
|
lqw.eq(bo.getProjectId()!=null, SysOaTask::getProjectId, bo.getProjectId());
|
||||||
List<SysOaTaskVo> sysOaTaskVos = baseMapper.selectVoList(lqw);
|
lqw.like(bo.getTaskTitle()!=null, SysOaTask::getTaskTitle, bo.getTaskTitle());
|
||||||
return sysOaTaskVos;
|
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);
|
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) {
|
private QueryWrapper<SysOaTask> buildQueryWrapper(SysOaTaskBo bo) {
|
||||||
Map<String, Object> params = bo.getParams();
|
Map<String, Object> params = bo.getParams();
|
||||||
QueryWrapper<SysOaTask> lqw = Wrappers.query();
|
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.getWorkerId()!=null, "sot.worker_id", bo.getWorkerId());
|
||||||
lqw.eq(bo.getProjectId()!=null, "sot.project_id", bo.getProjectId());
|
lqw.eq(bo.getProjectId()!=null, "sot.project_id", bo.getProjectId());
|
||||||
lqw.eq(bo.getProjectNum()!=null, "sop.project_num", bo.getProjectNum());
|
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.getTaskTitle()!=null, "sot.task_title", bo.getTaskTitle());
|
||||||
lqw.like(bo.getCreateUserNickName()!=null, "su1.nick_name", bo.getCreateUserNickName());
|
lqw.like(bo.getCreateUserNickName()!=null, "su1.nick_name", bo.getCreateUserNickName());
|
||||||
lqw.like(bo.getWorkerNickName()!=null, "su2.nick_name", bo.getWorkerNickName());
|
lqw.like(bo.getWorkerNickName()!=null, "su2.nick_name", bo.getWorkerNickName());
|
||||||
|
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -177,6 +216,13 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
boolean flag = false;
|
boolean flag = false;
|
||||||
for (Long workerId : workerIdList) {
|
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);
|
SysOaTask add = BeanUtil.toBean(bo, SysOaTask.class);
|
||||||
add.setCreateUserId(LoginHelper.getUserId());
|
add.setCreateUserId(LoginHelper.getUserId());
|
||||||
validEntityBeforeSave(add);
|
validEntityBeforeSave(add);
|
||||||
@@ -188,7 +234,14 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
|||||||
}
|
}
|
||||||
// 判断是否为报工模式
|
// 判断是否为报工模式
|
||||||
if (bo.getStatus()==1L){
|
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
|
@Override
|
||||||
public Boolean postponeTask(SysOaTaskBo bo) {
|
public Boolean postponeTask(SysOaTaskBo bo) {
|
||||||
// 将时间交换位置,减少查询数据库次数
|
// 防止截止日期被写入 新增对象
|
||||||
bo.setFinishTime(bo.getTempTime());
|
SysOaTaskBo sysOaTaskBo = new SysOaTaskBo();
|
||||||
bo.setState(15L);
|
sysOaTaskBo.setTaskId(bo.getTaskId());
|
||||||
return updateByBo(bo);
|
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 sysOaTask = baseMapper.selectById(bo.getTaskId());
|
||||||
sysOaTask.setState(0L);
|
sysOaTask.setState(0L);
|
||||||
sysOaTask.setPostponements(sysOaTask.getPostponements() + 1);
|
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;
|
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
|
@Override
|
||||||
public TableDataInfo<SysOaOutWarehouseListVo> queryPageList(SysOaWarehouseDetailBo bo, PageQuery pageQuery) {
|
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);
|
Long total = baseMapper.defineQueryTotal(bo, pageQuery);
|
||||||
|
|
||||||
pageQuery.setPageNum(ObjectUtil.defaultIfNull(pageQuery.getPageNum(), 1));
|
pageQuery.setPageNum(ObjectUtil.defaultIfNull(pageQuery.getPageNum(), 1));
|
||||||
@@ -137,14 +131,11 @@ public class SysOaWarehouseDetailServiceImpl implements ISysOaWarehouseDetailSer
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增仓库出库
|
* 新增出入库细节
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean insertByBo(SysOaWarehouseDetailBo bo) {
|
public Boolean insertByBo(SysOaWarehouseDetailBo bo) {
|
||||||
bo.setCreateTime(new Date());
|
|
||||||
bo.setUpdateTime(new Date());
|
|
||||||
SysOaWarehouseDetail decrease = toBean(bo, SysOaWarehouseDetail.class);
|
SysOaWarehouseDetail decrease = toBean(bo, SysOaWarehouseDetail.class);
|
||||||
|
|
||||||
validEntityBeforeSave(decrease);
|
validEntityBeforeSave(decrease);
|
||||||
SysOaWarehouse warehouse = warehouseMapper.selectById(decrease.getWarehouseId());
|
SysOaWarehouse warehouse = warehouseMapper.selectById(decrease.getWarehouseId());
|
||||||
// 1 如果对应仓库表项目数量-将要出库数量<0,出库失败, 繁殖 , 增加该条
|
// 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.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
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.SysOaWarehouseBo;
|
||||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo;
|
import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo;
|
||||||
import com.ruoyi.oa.mapper.SysOaWarehouseDetailMapper;
|
import com.ruoyi.oa.mapper.SysOaWarehouseDetailMapper;
|
||||||
@@ -24,6 +25,8 @@ import com.ruoyi.oa.service.ISysOaWarehouseMasterService;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
import static cn.hutool.core.bean.BeanUtil.toBean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 出库单管理Service业务层处理
|
* 出库单管理Service业务层处理
|
||||||
*
|
*
|
||||||
@@ -37,8 +40,10 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
|||||||
private final SysOaWarehouseMasterMapper baseMapper;
|
private final SysOaWarehouseMasterMapper baseMapper;
|
||||||
|
|
||||||
private final ISysOaWarehouseDetailService warehouseDetailService;
|
private final ISysOaWarehouseDetailService warehouseDetailService;
|
||||||
|
private final SysOaWarehouseDetailMapper warehouseDetailMapper;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private final ISysOaWarehouseService warehouseService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询出库单管理
|
* 查询出库单管理
|
||||||
@@ -80,19 +85,21 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增出库单管理
|
* 新增单管理
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean insertByBo(SysOaWarehouseMasterBo bo) {
|
public Boolean insertByBo(SysOaWarehouseMasterBo bo) {
|
||||||
|
|
||||||
SysOaWarehouseMaster add = BeanUtil.toBean(bo, SysOaWarehouseMaster.class);
|
SysOaWarehouseMaster add = BeanUtil.toBean(bo, SysOaWarehouseMaster.class);
|
||||||
validEntityBeforeSave(add);
|
validEntityBeforeSave(add);
|
||||||
add.setSignUser(LoginHelper.getNickName());
|
add.setSignUser(LoginHelper.getNickName());
|
||||||
boolean flag = baseMapper.insert(add) > 0;
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
if (flag) {
|
if (flag) {
|
||||||
// 出库单新增后 新增出库元素同时减去现有的,这里要记录一个出库时单价
|
// 单子新增后 新增出库元素同时减去现有的,这里要记录一个出库时单价
|
||||||
for (SysOaWarehouseDetailBo sysOaWarehouseDetailBo : bo.getWarehouseList()) {
|
for (SysOaWarehouseDetailBo sysOaWarehouseDetailBo : bo.getWarehouseList()) {
|
||||||
sysOaWarehouseDetailBo.setMasterId(add.getMasterId());
|
sysOaWarehouseDetailBo.setMasterId(add.getMasterId());
|
||||||
warehouseDetailService.insertByBo(sysOaWarehouseDetailBo);
|
SysOaWarehouseDetail add2 = toBean(sysOaWarehouseDetailBo, SysOaWarehouseDetail.class);
|
||||||
|
warehouseDetailMapper.insert(add2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return flag;
|
return flag;
|
||||||
@@ -103,6 +110,8 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateByBo(SysOaWarehouseMasterBo bo) {
|
public Boolean updateByBo(SysOaWarehouseMasterBo bo) {
|
||||||
|
// 判断是否为采购单,采购单,用户是直接点击完成按钮,所以直接更新单子状态就可以
|
||||||
|
if (bo.getType()!=2L){
|
||||||
SysOaWarehouseMaster update = BeanUtil.toBean(bo, SysOaWarehouseMaster.class);
|
SysOaWarehouseMaster update = BeanUtil.toBean(bo, SysOaWarehouseMaster.class);
|
||||||
validEntityBeforeSave(update);
|
validEntityBeforeSave(update);
|
||||||
boolean flag = baseMapper.updateById(update) > 0;
|
boolean flag = baseMapper.updateById(update) > 0;
|
||||||
@@ -115,6 +124,12 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
|||||||
|
|
||||||
}
|
}
|
||||||
return flag;
|
return flag;
|
||||||
|
}else{
|
||||||
|
SysOaWarehouseMaster update = BeanUtil.toBean(bo, SysOaWarehouseMaster.class);
|
||||||
|
validEntityBeforeSave(update);
|
||||||
|
return baseMapper.updateById(update) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -138,7 +153,6 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int insertInWarehouse(SysOaWarehouseBo bo) {
|
public int insertInWarehouse(SysOaWarehouseBo bo) {
|
||||||
warehouseService.insertByBo(bo);
|
|
||||||
SysOaWarehouseMaster sysOaWarehouseMaster = new SysOaWarehouseMaster();
|
SysOaWarehouseMaster sysOaWarehouseMaster = new SysOaWarehouseMaster();
|
||||||
sysOaWarehouseMaster.setMasterNum(UUID.randomUUID().toString());
|
sysOaWarehouseMaster.setMasterNum(UUID.randomUUID().toString());
|
||||||
sysOaWarehouseMaster.setRemark(bo.getRemark());
|
sysOaWarehouseMaster.setRemark(bo.getRemark());
|
||||||
|
|||||||
@@ -1,13 +1,22 @@
|
|||||||
package com.ruoyi.oa.service.impl;
|
package com.ruoyi.oa.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
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.utils.StringUtils;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.core.domain.PageQuery;
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
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.SysOaWarehouseDetailMapper;
|
||||||
|
import com.ruoyi.oa.mapper.SysOaWarehouseMasterMapper;
|
||||||
|
import com.ruoyi.oa.service.ISysOaWarehouseMasterService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseBo;
|
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.mapper.SysOaWarehouseMapper;
|
||||||
import com.ruoyi.oa.service.ISysOaWarehouseService;
|
import com.ruoyi.oa.service.ISysOaWarehouseService;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Collection;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 仓库管理Service业务层处理
|
* 仓库管理Service业务层处理
|
||||||
@@ -34,6 +41,7 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
|
|||||||
|
|
||||||
private final SysOaWarehouseDetailMapper outWareMapper;
|
private final SysOaWarehouseDetailMapper outWareMapper;
|
||||||
|
|
||||||
|
private final ISysOaWarehouseMasterService masterService;
|
||||||
/**
|
/**
|
||||||
* 查询仓库管理
|
* 查询仓库管理
|
||||||
*/
|
*/
|
||||||
@@ -47,11 +55,54 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<SysOaWarehouseVo> queryPageList(SysOaWarehouseBo bo, PageQuery pageQuery) {
|
public TableDataInfo<SysOaWarehouseVo> queryPageList(SysOaWarehouseBo bo, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<SysOaWarehouse> lqw = buildQueryWrapper(bo);
|
QueryWrapper<SysOaWarehouse> lqw = new QueryWrapper<>();
|
||||||
Page<SysOaWarehouseVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
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);
|
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);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private LambdaQueryWrapper<SysOaWarehouse> buildQueryWrapper(SysOaWarehouseBo bo) {
|
private LambdaQueryWrapper<SysOaWarehouse> buildQueryWrapper(SysOaWarehouseBo bo) {
|
||||||
Map<String, Object> params = bo.getParams();
|
Map<String, Object> params = bo.getParams();
|
||||||
LambdaQueryWrapper<SysOaWarehouse> lqw = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<SysOaWarehouse> lqw = Wrappers.lambdaQuery();
|
||||||
lqw.eq(bo.getInventory() != null, SysOaWarehouse::getInventory, bo.getInventory());
|
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.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.like(StringUtils.isNotBlank(bo.getName()), SysOaWarehouse::getName, bo.getName());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getBrand()), SysOaWarehouse::getBrand, bo.getBrand());
|
lqw.eq(StringUtils.isNotBlank(bo.getBrand()), SysOaWarehouse::getBrand, bo.getBrand());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getSpecifications()), SysOaWarehouse::getSpecifications, bo.getSpecifications());
|
lqw.eq(StringUtils.isNotBlank(bo.getSpecifications()), SysOaWarehouse::getSpecifications, bo.getSpecifications());
|
||||||
@@ -101,6 +155,7 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
|
|||||||
flag = baseMapper.insert(add) > 0;
|
flag = baseMapper.insert(add) > 0;
|
||||||
} else {
|
} else {
|
||||||
select.setInventory(select.getInventory() + bo.getInventory());
|
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;
|
flag = baseMapper.updateById(select) > 0;
|
||||||
}
|
}
|
||||||
if (flag) {
|
if (flag) {
|
||||||
@@ -109,6 +164,30 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
|
|||||||
return flag;
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
54
ruoyi-oa/src/main/resources/mapper/oa/OaFeedbackMapper.xml
Normal file
54
ruoyi-oa/src/main/resources/mapper/oa/OaFeedbackMapper.xml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.ruoyi.oa.mapper.OaFeedbackMapper">
|
||||||
|
|
||||||
|
<resultMap type="com.ruoyi.oa.domain.OaFeedback" id="OaFeedbackResult">
|
||||||
|
<result property="feedbackId" column="feedback_id"/>
|
||||||
|
<result property="content" column="content"/>
|
||||||
|
<result property="status" column="status"/>
|
||||||
|
<result property="createTime" column="create_time"/>
|
||||||
|
<result property="createBy" column="create_by"/>
|
||||||
|
<result property="updateTime" column="update_time"/>
|
||||||
|
<result property="updateBy" column="update_by"/>
|
||||||
|
<result property="remark" column="remark"/>
|
||||||
|
<result property="delFlag" column="del_flag"/>
|
||||||
|
</resultMap>
|
||||||
|
<insert id="insertItem">
|
||||||
|
|
||||||
|
INSERT INTO oa_feedback_item (
|
||||||
|
feedback_id,
|
||||||
|
user_id
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
#{feedbackId},
|
||||||
|
su.user_id
|
||||||
|
FROM sys_user su
|
||||||
|
WHERE su.del_flag = 0
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
|
||||||
|
<update id="updateToRead">
|
||||||
|
update oa_feedback_item set status = 1 where feedback_id =#{feedbackId} and user_id = #{userId}
|
||||||
|
</update>
|
||||||
|
<delete id="delItem">
|
||||||
|
delete from oa_feedback_item where feedback_id =#{feedbackId} and user_id = #{userId}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectVoPageAndStatus" resultType="com.ruoyi.oa.domain.vo.OaFeedbackVo">
|
||||||
|
|
||||||
|
select
|
||||||
|
oaf.feedback_id,
|
||||||
|
oaf.content,
|
||||||
|
oaf.status,
|
||||||
|
oaf.title,
|
||||||
|
ofi.status as state
|
||||||
|
from oa_feedback oaf
|
||||||
|
left join oa_feedback_item ofi on oaf.feedback_id = ofi.feedback_id
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@@ -261,6 +261,42 @@
|
|||||||
WHERE p.project_id = #{projectId}
|
WHERE p.project_id = #{projectId}
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectVoPlus" resultType="com.ruoyi.oa.domain.vo.SysOaProjectVo">
|
||||||
|
SELECT
|
||||||
|
p.project_id,
|
||||||
|
p.project_name,
|
||||||
|
p.project_num,
|
||||||
|
p.project_type,
|
||||||
|
p.address,
|
||||||
|
p.funds,
|
||||||
|
p.functionary,
|
||||||
|
p.begin_time,
|
||||||
|
p.finish_time,
|
||||||
|
p.delivery,
|
||||||
|
p.guarantee,
|
||||||
|
p.introduction,
|
||||||
|
p.project_grade,
|
||||||
|
p.project_status,
|
||||||
|
p.contract_id,
|
||||||
|
p.invoice_name,
|
||||||
|
p.invoice_number,
|
||||||
|
p.invoice_address,
|
||||||
|
p.invoice_bank,
|
||||||
|
p.accessory,
|
||||||
|
p.bail,
|
||||||
|
p.remark,
|
||||||
|
p.create_by,
|
||||||
|
p.create_time,
|
||||||
|
p.update_by,
|
||||||
|
p.update_time,
|
||||||
|
p.is_postpone,
|
||||||
|
p.postpone_reason,
|
||||||
|
p.postpone_time,
|
||||||
|
p.color,
|
||||||
|
TIMESTAMPDIFF(DAY, NOW(), p.postpone_time) AS remainTime
|
||||||
|
FROM sys_oa_project p
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.ruoyi.oa.mapper.SysOaTaskItemMapper">
|
||||||
|
|
||||||
|
<resultMap type="com.ruoyi.oa.domain.SysOaTaskItem" id="SysOaTaskItemResult">
|
||||||
|
<result property="itemId" column="item_id"/>
|
||||||
|
<result property="taskId" column="task_id"/>
|
||||||
|
<result property="content" column="content"/>
|
||||||
|
<result property="files" column="files"/>
|
||||||
|
<result property="signTime" column="sign_time"/>
|
||||||
|
<result property="status" column="status"/>
|
||||||
|
<result property="beginTime" column="begin_time"/>
|
||||||
|
<result property="endTime" column="end_time"/>
|
||||||
|
<result property="originEndTime" column="origin_end_time"/>
|
||||||
|
<result property="tempTime" column="temp_time"/>
|
||||||
|
<result property="createBy" column="create_by"/>
|
||||||
|
<result property="createTime" column="create_time"/>
|
||||||
|
<result property="updateBy" column="update_by"/>
|
||||||
|
<result property="updateTime" column="update_time"/>
|
||||||
|
<result property="delFlag" column="del_flag"/>
|
||||||
|
<result property="remark" column="remark"/>
|
||||||
|
<result property="completedTime" column="completed_time"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.ruoyi.oa.mapper.SysOaTaskMapper">
|
<mapper namespace="com.ruoyi.oa.mapper.SysOaTaskMapper">
|
||||||
|
|
||||||
<resultMap type="com.ruoyi.oa.domain.SysOaTask" id="SysOaTaskResult">
|
<resultMap type="com.ruoyi.oa.domain.vo.SysOaTaskVo" id="SysOaTaskResult">
|
||||||
<result property="taskId" column="task_id"/>
|
<result property="taskId" column="task_id"/>
|
||||||
<result property="projectId" column="project_id"/>
|
<result property="projectId" column="project_id"/>
|
||||||
<result property="taskTitle" column="task_title"/>
|
<result property="taskTitle" column="task_title"/>
|
||||||
@@ -16,10 +16,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="content" column="content"/>
|
<result property="content" column="content"/>
|
||||||
<result property="accessory" column="accessory"/>
|
<result property="accessory" column="accessory"/>
|
||||||
<result property="remark" column="remark"/>
|
<result property="remark" column="remark"/>
|
||||||
|
<result property="state" column="state"/>
|
||||||
<result property="createBy" column="create_by"/>
|
<result property="createBy" column="create_by"/>
|
||||||
<result property="createTime" column="create_time"/>
|
<result property="createTime" column="create_time"/>
|
||||||
<result property="updateBy" column="update_by"/>
|
<result property="completedTime" column="completed_time"/>
|
||||||
<result property="updateTime" column="update_time"/>
|
<result property="createUserNickName" column="createUserNickName"/>
|
||||||
|
<result property="workerNickName" column="workerNickName"/>
|
||||||
|
<result property="postponements" column="postponements"/>
|
||||||
|
<collection property="taskItemVoList" ofType="com.ruoyi.oa.domain.vo.SysOaTaskItemVo" javaType="list">
|
||||||
|
<result property="itemId" column="item_id"/>
|
||||||
|
<result property="content" column="itemContent"/>
|
||||||
|
<result property="files" column="files"/>
|
||||||
|
<result property="signTime" column="sign_time"/>
|
||||||
|
<result property="status" column="itemStatus"/>
|
||||||
|
<result property="beginTime" column="itemBeginTime"/>
|
||||||
|
<result property="endTime" column="itemEndTime"/>
|
||||||
|
<result property="remark" column="itemRemark"/>
|
||||||
|
<result property="completedTime" column="itemCompletedTime"/>
|
||||||
|
</collection>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
@@ -40,13 +54,105 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
sot.task_type,
|
sot.task_type,
|
||||||
sot.task_grade,
|
sot.task_grade,
|
||||||
sot.collaborator,
|
sot.collaborator,
|
||||||
|
COALESCE(sot.finish_time, soti.end_time) AS finish_time,
|
||||||
|
COALESCE(sot.temp_time, soti.temp_time) AS temp_time,
|
||||||
sot.begin_time,
|
sot.begin_time,
|
||||||
sot.finish_time,
|
|
||||||
sot.origin_finish_time,
|
sot.origin_finish_time,
|
||||||
sot.postponements,
|
sot.postponements,
|
||||||
sot.completed_time,
|
sot.completed_time,
|
||||||
sot.content,
|
sot.content,
|
||||||
sot.accessory,
|
(
|
||||||
|
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||||
|
FROM sys_oa_file sof
|
||||||
|
WHERE FIND_IN_SET(sof.file_id, sot.accessory) > 0
|
||||||
|
) AS accessory,
|
||||||
|
|
||||||
|
sot.rank_number,
|
||||||
|
sot.remark,
|
||||||
|
sot.task_rank,
|
||||||
|
sot.state,
|
||||||
|
sot.time_gap,
|
||||||
|
sot.status,
|
||||||
|
sot.create_by,
|
||||||
|
sot.create_time,
|
||||||
|
sot.update_by,
|
||||||
|
sot.update_time,
|
||||||
|
sot.del_flag,
|
||||||
|
sot.own_rank,
|
||||||
|
sop.project_name,
|
||||||
|
soti.item_id,
|
||||||
|
sop.project_num,
|
||||||
|
su1.nick_name AS createUserNickName,
|
||||||
|
su2.nick_name AS workerNickName,
|
||||||
|
CASE
|
||||||
|
WHEN sot.completed_time IS NULL
|
||||||
|
THEN DATEDIFF(NOW(), COALESCE(sot.finish_time, soti.end_time))
|
||||||
|
ELSE 0
|
||||||
|
END AS overDays,
|
||||||
|
(
|
||||||
|
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||||
|
FROM sys_oa_file sof
|
||||||
|
WHERE FIND_IN_SET(sof.file_id, soti.files) > 0
|
||||||
|
) AS files
|
||||||
|
|
||||||
|
FROM sys_oa_task sot
|
||||||
|
LEFT JOIN sys_user su1 ON su1.user_id = sot.create_user_id
|
||||||
|
LEFT JOIN sys_user su2 ON su2.user_id = sot.worker_id
|
||||||
|
LEFT JOIN sys_oa_project sop ON sop.project_id = sot.project_id
|
||||||
|
LEFT JOIN sys_oa_task_item soti
|
||||||
|
ON soti.task_id = sot.task_id
|
||||||
|
AND soti.completed_time IS NULL
|
||||||
|
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectDetailVoById" resultMap="SysOaTaskResult">
|
||||||
|
SELECT
|
||||||
|
sot.task_id,
|
||||||
|
sot.project_id,
|
||||||
|
sot.create_user_id,
|
||||||
|
sot.worker_id,
|
||||||
|
sot.task_title,
|
||||||
|
sot.task_type,
|
||||||
|
sot.task_grade,
|
||||||
|
|
||||||
|
COALESCE(
|
||||||
|
sot.finish_time,
|
||||||
|
(
|
||||||
|
SELECT a.end_time
|
||||||
|
FROM sys_oa_task_item a
|
||||||
|
WHERE a.task_id = sot.task_id
|
||||||
|
AND a.completed_time IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
)
|
||||||
|
) AS finish_time,
|
||||||
|
COALESCE(
|
||||||
|
sot.temp_time,
|
||||||
|
(
|
||||||
|
SELECT a.temp_time
|
||||||
|
FROM sys_oa_task_item a
|
||||||
|
WHERE a.task_id = sot.task_id
|
||||||
|
AND a.completed_time IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
)
|
||||||
|
) AS temp_time,
|
||||||
|
|
||||||
|
sot.begin_time,
|
||||||
|
sot.origin_finish_time,
|
||||||
|
sot.postponements,
|
||||||
|
sot.completed_time,
|
||||||
|
sot.content,
|
||||||
|
su1.nick_name AS createUserNickName,
|
||||||
|
su2.nick_name AS workerNickName,
|
||||||
|
|
||||||
|
(
|
||||||
|
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||||
|
FROM sys_oa_file sof
|
||||||
|
WHERE FIND_IN_SET(sof.file_id, sot.accessory) > 0
|
||||||
|
) AS accessory,
|
||||||
|
|
||||||
sot.rank_number,
|
sot.rank_number,
|
||||||
sot.remark,
|
sot.remark,
|
||||||
sot.task_rank,
|
sot.task_rank,
|
||||||
@@ -61,19 +167,249 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
sot.own_rank,
|
sot.own_rank,
|
||||||
sop.project_name,
|
sop.project_name,
|
||||||
sop.project_num,
|
sop.project_num,
|
||||||
su1.nick_name AS createUserNickName,
|
|
||||||
su2.nick_name AS workerNickName,
|
soti.item_id,
|
||||||
|
soti.content AS itemContent,
|
||||||
|
soti.sign_time,
|
||||||
|
soti.status AS itemStatus,
|
||||||
|
soti.begin_time AS itemBeginTime,
|
||||||
|
soti.completed_time AS itemCompletedTime,
|
||||||
|
soti.end_time AS itemEndTime,
|
||||||
|
soti.remark AS itemRemark,
|
||||||
|
(
|
||||||
|
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||||
|
FROM sys_oa_file sof
|
||||||
|
WHERE FIND_IN_SET(sof.file_id, soti.files) > 0
|
||||||
|
) AS files,
|
||||||
CASE
|
CASE
|
||||||
WHEN sot.completed_time IS NULL
|
WHEN sot.completed_time IS NULL
|
||||||
THEN DATEDIFF(NOW(), sot.finish_time)
|
THEN DATEDIFF(
|
||||||
|
NOW(),
|
||||||
|
COALESCE(
|
||||||
|
sot.finish_time,
|
||||||
|
(
|
||||||
|
SELECT a.end_time
|
||||||
|
FROM sys_oa_task_item a
|
||||||
|
WHERE a.task_id = sot.task_id
|
||||||
|
AND a.completed_time IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
ELSE 0
|
ELSE 0
|
||||||
END AS overDays
|
END AS overDays
|
||||||
|
|
||||||
FROM sys_oa_task sot
|
FROM sys_oa_task sot
|
||||||
LEFT JOIN sys_user su1 ON su1.user_id = sot.create_user_id
|
LEFT JOIN sys_user su1 ON su1.user_id = sot.create_user_id
|
||||||
LEFT JOIN sys_user su2 ON su2.user_id = sot.worker_id
|
LEFT JOIN sys_user su2 ON su2.user_id = sot.worker_id
|
||||||
LEFT JOIN sys_oa_project sop ON sop.project_id = sot.project_id
|
LEFT JOIN sys_oa_project sop ON sop.project_id = sot.project_id
|
||||||
|
|
||||||
|
|
||||||
|
LEFT JOIN sys_oa_task_item soti
|
||||||
|
ON soti.task_id = sot.task_id
|
||||||
|
|
||||||
|
WHERE
|
||||||
|
sot.task_id = #{taskId}
|
||||||
|
AND sot.del_flag = '0'
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getMonthlyData"
|
||||||
|
parameterType="java.lang.String"
|
||||||
|
resultType="com.ruoyi.oa.domain.UserMonthlyData">
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
-- 员工昵称
|
||||||
|
su.nick_name AS nickName,
|
||||||
|
|
||||||
|
-- 拼接多个项目名称
|
||||||
|
GROUP_CONCAT(DISTINCT sop.project_name SEPARATOR ',') AS projectName,
|
||||||
|
|
||||||
|
-- 计算 totalTasks
|
||||||
|
(
|
||||||
|
-- 1) status=0 属于当月 => 加1
|
||||||
|
SUM(
|
||||||
|
CASE
|
||||||
|
WHEN sot.status = 0
|
||||||
|
AND DATE_FORMAT(sot.begin_time, '%Y-%m') = #{month}
|
||||||
|
THEN 1
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
)
|
||||||
|
+
|
||||||
|
-- 2) status=1 => 统计符合当月的子记录数量
|
||||||
|
COUNT(
|
||||||
|
CASE
|
||||||
|
WHEN sot.status = 1
|
||||||
|
AND DATE_FORMAT(soti.begin_time, '%Y-%m') = #{month}
|
||||||
|
THEN soti.item_id
|
||||||
|
END
|
||||||
|
)
|
||||||
|
) AS totalTasks,
|
||||||
|
|
||||||
|
-- 计算 completedTasks
|
||||||
|
(
|
||||||
|
-- status=0 当月 completed_time非空 => +1
|
||||||
|
SUM(
|
||||||
|
CASE
|
||||||
|
WHEN sot.status = 0
|
||||||
|
AND DATE_FORMAT(sot.begin_time, '%Y-%m') = #{month}
|
||||||
|
AND sot.completed_time IS NOT NULL
|
||||||
|
THEN 1
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
)
|
||||||
|
+
|
||||||
|
-- status=1 => 统计子记录当月 且 sign_time非空
|
||||||
|
COUNT(
|
||||||
|
CASE
|
||||||
|
WHEN sot.status = 1
|
||||||
|
AND DATE_FORMAT(soti.begin_time, '%Y-%m') = #{month}
|
||||||
|
AND soti.sign_time IS NOT NULL
|
||||||
|
THEN soti.item_id
|
||||||
|
END
|
||||||
|
)
|
||||||
|
) AS completedTasks,
|
||||||
|
|
||||||
|
-- 计算 delayedTimes
|
||||||
|
(
|
||||||
|
-- status=0 当月 => 累加 sot.postponements
|
||||||
|
SUM(
|
||||||
|
CASE
|
||||||
|
WHEN sot.status = 0
|
||||||
|
AND DATE_FORMAT(sot.begin_time, '%Y-%m') = #{month}
|
||||||
|
THEN sot.postponements
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
)
|
||||||
|
+
|
||||||
|
-- status=1 当月(子记录) => 同样加上 sot.postponements
|
||||||
|
SUM(
|
||||||
|
CASE
|
||||||
|
WHEN sot.status = 1
|
||||||
|
AND DATE_FORMAT(soti.begin_time, '%Y-%m') = #{month}
|
||||||
|
THEN sot.postponements
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
)
|
||||||
|
) AS delayedTimes
|
||||||
|
|
||||||
|
FROM sys_oa_task sot
|
||||||
|
LEFT JOIN sys_oa_task_item soti
|
||||||
|
ON soti.task_id = sot.task_id
|
||||||
|
LEFT JOIN sys_user su
|
||||||
|
ON su.user_id = sot.worker_id
|
||||||
|
LEFT JOIN sys_oa_project sop
|
||||||
|
ON sop.project_id = sot.project_id
|
||||||
|
|
||||||
|
-- 只按用户分组 => 每个nickName合并为一行
|
||||||
|
GROUP BY su.user_id
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="queryPageListDocument" resultType="com.ruoyi.oa.domain.vo.SysOaTaskVo">
|
||||||
|
SELECT
|
||||||
|
sot.task_id,
|
||||||
|
sot.project_id,
|
||||||
|
sot.create_user_id,
|
||||||
|
sot.worker_id,
|
||||||
|
sot.task_title,
|
||||||
|
sot.task_type,
|
||||||
|
sot.task_grade,
|
||||||
|
sot.collaborator,
|
||||||
|
COALESCE(sot.finish_time, soti.end_time) AS finish_time,
|
||||||
|
COALESCE(sot.temp_time, soti.temp_time) AS temp_time,
|
||||||
|
sot.begin_time,
|
||||||
|
sot.origin_finish_time,
|
||||||
|
sot.postponements,
|
||||||
|
sot.completed_time,
|
||||||
|
sot.content,
|
||||||
|
(
|
||||||
|
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||||
|
FROM sys_oa_file sof
|
||||||
|
WHERE FIND_IN_SET(sof.file_id, sot.accessory) > 0
|
||||||
|
) AS accessory,
|
||||||
|
|
||||||
|
sot.rank_number,
|
||||||
|
sot.remark,
|
||||||
|
sot.task_rank,
|
||||||
|
sot.state,
|
||||||
|
sot.time_gap,
|
||||||
|
sot.status,
|
||||||
|
sot.create_by,
|
||||||
|
sot.create_time,
|
||||||
|
sot.update_by,
|
||||||
|
sot.update_time,
|
||||||
|
sot.del_flag,
|
||||||
|
sot.own_rank,
|
||||||
|
sop.project_name,
|
||||||
|
soti.item_id,
|
||||||
|
sop.project_num,
|
||||||
|
su1.nick_name AS createUserNickName,
|
||||||
|
su2.nick_name AS workerNickName,
|
||||||
|
CASE
|
||||||
|
WHEN sot.completed_time IS NULL
|
||||||
|
THEN DATEDIFF(NOW(), COALESCE(sot.finish_time, soti.end_time))
|
||||||
|
ELSE 0
|
||||||
|
END AS overDays,
|
||||||
|
(
|
||||||
|
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||||
|
FROM sys_oa_file sof
|
||||||
|
WHERE FIND_IN_SET(sof.file_id, soti.files) > 0
|
||||||
|
) AS files
|
||||||
|
|
||||||
|
FROM sys_oa_task_user sotu
|
||||||
|
left join sys_oa_task sot on sot.task_id = sotu.task_id
|
||||||
|
LEFT JOIN sys_user su1 ON su1.user_id = sot.create_user_id
|
||||||
|
LEFT JOIN sys_user su2 ON su2.user_id = sot.worker_id
|
||||||
|
LEFT JOIN sys_oa_project sop ON sop.project_id = sot.project_id
|
||||||
|
|
||||||
|
LEFT JOIN sys_oa_task_item soti
|
||||||
|
ON soti.task_id = sot.task_id
|
||||||
|
AND soti.completed_time IS NULL
|
||||||
|
|
||||||
${ew.getCustomSqlSegment}
|
${ew.getCustomSqlSegment}
|
||||||
|
|
||||||
|
|
||||||
|
</select>
|
||||||
|
<select id="listDocumentProject" resultType="com.ruoyi.oa.domain.vo.SysOaTaskVo">
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
sot.create_user_id,
|
||||||
|
sot.worker_id,
|
||||||
|
(
|
||||||
|
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||||
|
FROM sys_oa_file sof
|
||||||
|
WHERE FIND_IN_SET(sof.file_id, sot.accessory) > 0
|
||||||
|
) AS accessory,
|
||||||
|
su1.nick_name AS createUserNickName,
|
||||||
|
su2.nick_name AS workerNickName,
|
||||||
|
(
|
||||||
|
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||||
|
FROM sys_oa_file sof
|
||||||
|
WHERE FIND_IN_SET(sof.file_id, soti.files) > 0
|
||||||
|
) AS files
|
||||||
|
FROM sys_oa_task sot
|
||||||
|
LEFT JOIN sys_user su1 ON su1.user_id = sot.create_user_id
|
||||||
|
LEFT JOIN sys_user su2 ON su2.user_id = sot.worker_id
|
||||||
|
LEFT JOIN sys_oa_project sop ON sop.project_id = sot.project_id
|
||||||
|
LEFT JOIN sys_oa_task_item soti ON soti.task_id = sot.task_id
|
||||||
|
WHERE
|
||||||
|
sot.project_id = #{projectId}
|
||||||
|
AND sot.del_flag = '0'
|
||||||
|
AND (
|
||||||
|
IFNULL((
|
||||||
|
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||||
|
FROM sys_oa_file sof
|
||||||
|
WHERE FIND_IN_SET(sof.file_id, sot.accessory) > 0
|
||||||
|
), '') != ''
|
||||||
|
OR IFNULL((
|
||||||
|
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||||
|
FROM sys_oa_file sof
|
||||||
|
WHERE FIND_IN_SET(sof.file_id, soti.files) > 0
|
||||||
|
), '') != ''
|
||||||
|
)
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.ruoyi.oa.mapper.SysOaTaskUserMapper">
|
||||||
|
|
||||||
|
<resultMap type="com.ruoyi.oa.domain.SysOaTaskUser" id="SysOaTaskUserResult">
|
||||||
|
<result property="taskUserId" column="task_user_id"/>
|
||||||
|
<result property="taskId" column="task_id"/>
|
||||||
|
<result property="itemId" column="item_id"/>
|
||||||
|
<result property="userId" column="user_id"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@@ -28,4 +28,53 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectVoPageThreshold" resultType="com.ruoyi.oa.domain.vo.SysOaWarehouseVo">
|
||||||
|
select id,
|
||||||
|
inventory,
|
||||||
|
model,
|
||||||
|
unit,
|
||||||
|
name,
|
||||||
|
brand,
|
||||||
|
specifications,
|
||||||
|
remark,
|
||||||
|
create_time,
|
||||||
|
create_by,
|
||||||
|
update_time,
|
||||||
|
update_by,
|
||||||
|
del_flag
|
||||||
|
from sys_oa_warehouse
|
||||||
|
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
<select id="selectListVoPage" resultType="com.ruoyi.oa.domain.vo.SysOaWarehouseVo">
|
||||||
|
select
|
||||||
|
sow.id,
|
||||||
|
sow.inventory,
|
||||||
|
sow.model,
|
||||||
|
sow.unit,
|
||||||
|
sow.name,
|
||||||
|
sow.brand,
|
||||||
|
sow.specifications,
|
||||||
|
sow.remark,
|
||||||
|
sow.create_time,
|
||||||
|
sow.create_by,
|
||||||
|
sow.update_time,
|
||||||
|
sow.update_by,
|
||||||
|
sow.del_flag,
|
||||||
|
sow.price,
|
||||||
|
sow.threshold,
|
||||||
|
(
|
||||||
|
select sum(sowt.task_inventory)
|
||||||
|
from sys_oa_warehouse_task sowt
|
||||||
|
left join sys_oa_warehouse_master sowm on sowm.master_id = sowt.master_id
|
||||||
|
where sowt.warehouse_id = sow.id
|
||||||
|
and sowm.type = 2
|
||||||
|
and sowm.status = 0
|
||||||
|
) as task_inventory
|
||||||
|
from sys_oa_warehouse sow
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
<result property="signUser" column="sign_user"/>
|
<result property="signUser" column="sign_user"/>
|
||||||
<result property="remark" column="remark"/>
|
<result property="remark" column="remark"/>
|
||||||
<result property="projectName" column="project_name"/>
|
<result property="projectName" column="project_name"/>
|
||||||
|
<result property="status" column="status"/>
|
||||||
<collection property="warehouseList" ofType="com.ruoyi.oa.domain.vo.SysOaWarehouseDetailVo" javaType="list">
|
<collection property="warehouseList" ofType="com.ruoyi.oa.domain.vo.SysOaWarehouseDetailVo" javaType="list">
|
||||||
<result property="signPrice" column="sign_price"/>
|
<result property="signPrice" column="sign_price"/>
|
||||||
<result property="id" column="outId"/>
|
<result property="id" column="outId"/>
|
||||||
@@ -23,26 +24,46 @@
|
|||||||
<result property="amount" column="amount"/>
|
<result property="amount" column="amount"/>
|
||||||
<result property="warehouseName" column="warehouseName"/>
|
<result property="warehouseName" column="warehouseName"/>
|
||||||
</collection>
|
</collection>
|
||||||
|
<collection property="warehouseTaskList" resultMap="SysOaWarehouseTaskResult" javaType="list"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
|
<resultMap type="com.ruoyi.oa.domain.SysOaWarehouseTask" id="SysOaWarehouseTaskResult">
|
||||||
|
<result property="taskId" column="task_id"/>
|
||||||
|
<result property="masterId" column="master_id"/>
|
||||||
|
<result property="name" column="name"/>
|
||||||
|
<result property="model" column="model"/>
|
||||||
|
<result property="taskInventory" column="task_inventory"/>
|
||||||
|
<result property="brand" column="brand"/>
|
||||||
|
<result property="specifications" column="specifications"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<select id="selectVoPagePlus" resultMap="SysOaWarehouseMasterResult">
|
<select id="selectVoPagePlus" resultMap="SysOaWarehouseMasterResult">
|
||||||
select sowm.master_id,
|
select sowm.master_id,
|
||||||
sowm.sign_time,
|
sowm.sign_time,
|
||||||
sowm.sign_user,
|
sowm.sign_user,
|
||||||
sowd.sign_price,
|
sowd.sign_price,
|
||||||
sowm.master_num,
|
sowm.master_num,
|
||||||
|
sowm.type,
|
||||||
sowd.amount,
|
sowd.amount,
|
||||||
sow.name as warehouseName,
|
sow.name as warehouseName,
|
||||||
sow.model,
|
|
||||||
sowm.remark,
|
sowm.remark,
|
||||||
sow.specifications,
|
|
||||||
sop.project_id,
|
sop.project_id,
|
||||||
sop.project_name,
|
sop.project_name,
|
||||||
sowd.id as outId
|
sowm.status,
|
||||||
|
sowd.id as outId,
|
||||||
|
task_id,
|
||||||
|
sowt.name,
|
||||||
|
COALESCE(sow.model,sowt.model) as model,
|
||||||
|
task_inventory,
|
||||||
|
COALESCE(sow.brand,sowt.brand) as brand,
|
||||||
|
COALESCE(sow.specifications,sowt.specifications) as specifications
|
||||||
from sys_oa_warehouse_master sowm
|
from sys_oa_warehouse_master sowm
|
||||||
left join sys_oa_warehouse_detail sowd on sowd.master_id = sowm.master_id and sowd.del_flag='0'
|
left join sys_oa_warehouse_detail sowd on sowd.master_id = sowm.master_id and sowd.del_flag='0'
|
||||||
left join sys_oa_warehouse sow on sow.id = sowd.warehouse_id
|
left join sys_oa_warehouse sow on sow.id = sowd.warehouse_id
|
||||||
|
left join sys_oa_warehouse_task sowt on sowm.master_id = sowt.master_id
|
||||||
left join sys_oa_project sop on sowm.project_id = sop.project_id
|
left join sys_oa_project sop on sowm.project_id = sop.project_id
|
||||||
${ew.getCustomSqlSegment}
|
${ew.getCustomSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.ruoyi.oa.mapper.SysOaWarehouseTaskMapper">
|
||||||
|
|
||||||
|
<resultMap type="com.ruoyi.oa.domain.SysOaWarehouseTask" id="SysOaWarehouseTaskResult">
|
||||||
|
<result property="taskId" column="task_id"/>
|
||||||
|
<result property="masterId" column="master_id"/>
|
||||||
|
<result property="name" column="name"/>
|
||||||
|
<result property="model" column="model"/>
|
||||||
|
<result property="taskInventory" column="task_inventory"/>
|
||||||
|
<result property="brand" column="brand"/>
|
||||||
|
<result property="specifications" column="specifications"/>
|
||||||
|
<result property="createBy" column="create_by"/>
|
||||||
|
<result property="createTime" column="create_time"/>
|
||||||
|
<result property="updateBy" column="update_by"/>
|
||||||
|
<result property="updateTime" column="update_time"/>
|
||||||
|
<result property="delFlag" column="del_flag"/>
|
||||||
|
<result property="remark" column="remark"/>
|
||||||
|
<result property="warehouseId" column="warehouse_id"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
||||||
Reference in New Issue
Block a user