This commit is contained in:
huangxing123
2024-07-07 21:09:28 +08:00
parent 0d98d5fe14
commit fc04b10d4f
1279 changed files with 149420 additions and 1 deletions

View File

@@ -0,0 +1,61 @@
package com.ruoyi.oa.config;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class ContextUtil implements ApplicationContextAware {
/**
* 上下文
*/
private static ApplicationContext applicationContext;
/**
* 设置上下文
* @param applicationContext 上下文实例
* @throws BeansException Bean异常
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ContextUtil.applicationContext = applicationContext;
}
/**
* 获取上下文
* @return
*/
public static ApplicationContext getContext() {
return ContextUtil.applicationContext;
}
/**
* 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型.
*/
@SuppressWarnings("all")
public static <T> T getBean(String name) {
assertContextInjected();
return (T) applicationContext.getBean(name);
}
/**
* 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型.
*/
public static <T> T getBean(Class<T> requiredType) {
assertContextInjected();
return applicationContext.getBean(requiredType);
}
/**
* 检查ApplicationContext不为空.
*/
private static void assertContextInjected() {
if (applicationContext == null) {
throw new IllegalStateException("applicationContext属性未注入");
}
}
}

View File

@@ -0,0 +1,118 @@
package com.ruoyi.oa.controller;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import com.ruoyi.oa.domain.SysOaArticle;
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.SysOaArticleVo;
import com.ruoyi.oa.domain.bo.SysOaArticleBo;
import com.ruoyi.oa.service.ISysOaArticleService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 知识管理
*
* @author huangxing
* @date 2024-01-17
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/article")
public class SysOaArticleController extends BaseController {
private final ISysOaArticleService iSysOaArticleService;
/**
* 查询知识管理列表
*/
@SaCheckPermission("oa:article:list")
@GetMapping("/list")
public TableDataInfo<SysOaArticleVo> list(SysOaArticleBo bo, PageQuery pageQuery) {
return iSysOaArticleService.queryPageList(bo, pageQuery);
}
/**
* 自定义查询知识管理列表
*/
@SaCheckPermission("oa:article:list")
@GetMapping("/listArticle")
public TableDataInfo<SysOaArticleVo> listArticle(SysOaArticleBo bo, PageQuery pageQuery) {
return iSysOaArticleService.selectArticlePageList(bo, pageQuery);
}
/**
* 导出知识管理列表
*/
@SaCheckPermission("oa:article:export")
@Log(title = "知识管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(SysOaArticleBo bo, HttpServletResponse response) {
List<SysOaArticleVo> list = iSysOaArticleService.queryList(bo);
ExcelUtil.exportExcel(list, "知识管理", SysOaArticleVo.class, response);
}
/**
* 获取知识管理详细信息
*
* @param articleId 主键
*/
@SaCheckPermission("oa:article:query")
@GetMapping("/{articleId}")
public R<SysOaArticle> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long articleId) {
SysOaArticle sysOaArticle = iSysOaArticleService.selectArticleById(articleId);
return R.ok(sysOaArticle);
}
/**
* 新增知识管理
*/
@SaCheckPermission("oa:article:add")
@Log(title = "知识管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaArticleBo bo) {
return toAjax(iSysOaArticleService.insertByBo(bo));
}
/**
* 修改知识管理
*/
@SaCheckPermission("oa:article:edit")
@Log(title = "知识管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaArticleBo bo) {
return toAjax(iSysOaArticleService.updateByBo(bo));
}
/**
* 删除知识管理
*
* @param articleIds 主键串
*/
@SaCheckPermission("oa:article:remove")
@Log(title = "知识管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{articleIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] articleIds) {
return toAjax(iSysOaArticleService.deleteWithValidByIds(Arrays.asList(articleIds), true));
}
}

View File

@@ -0,0 +1,108 @@
package com.ruoyi.oa.controller;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.SysOaBidVo;
import com.ruoyi.oa.domain.bo.SysOaBidBo;
import com.ruoyi.oa.service.ISysOaBidService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 投标管理
*
* @author huangxing
* @date 2024-02-23
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/oaBid")
public class SysOaBidController extends BaseController {
private final ISysOaBidService iSysOaBidService;
/**
* 查询投标管理列表
*/
@SaCheckPermission("oa:oaBid:list")
@GetMapping("/list")
public TableDataInfo<SysOaBidVo> list(SysOaBidBo bo, PageQuery pageQuery) {
return iSysOaBidService.queryPageList(bo, pageQuery);
}
/**
* 导出投标管理列表
*/
@SaCheckPermission("oa:oaBid:export")
@Log(title = "投标管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(SysOaBidBo bo, HttpServletResponse response) {
List<SysOaBidVo> list = iSysOaBidService.queryList(bo);
ExcelUtil.exportExcel(list, "投标管理", SysOaBidVo.class, response);
}
/**
* 获取投标管理详细信息
*
* @param bidId 主键
*/
@SaCheckPermission("oa:oaBid:query")
@GetMapping("/{bidId}")
public R<SysOaBidVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long bidId) {
return R.ok(iSysOaBidService.queryById(bidId));
}
/**
* 新增投标管理
*/
@SaCheckPermission("oa:oaBid:add")
@Log(title = "投标管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaBidBo bo) {
return toAjax(iSysOaBidService.insertByBo(bo));
}
/**
* 修改投标管理
*/
@SaCheckPermission("oa:oaBid:edit")
@Log(title = "投标管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaBidBo bo) {
return toAjax(iSysOaBidService.updateByBo(bo));
}
/**
* 删除投标管理
*
* @param bidIds 主键串
*/
@SaCheckPermission("oa:oaBid:remove")
@Log(title = "投标管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{bidIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] bidIds) {
return toAjax(iSysOaBidService.deleteWithValidByIds(Arrays.asList(bidIds), true));
}
}

View File

@@ -0,0 +1,108 @@
package com.ruoyi.oa.controller;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.SysOaCategoryVo;
import com.ruoyi.oa.domain.bo.SysOaCategoryBo;
import com.ruoyi.oa.service.ISysOaCategoryService;
/**
* 知识分类
*
* @author huangxing
* @date 2024-01-17
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/category")
public class SysOaCategoryController extends BaseController {
private final ISysOaCategoryService iSysOaCategoryService;
/**
* 查询知识分类列表
*/
@SaCheckPermission("oa:category:list")
@GetMapping("/list")
public R<List<SysOaCategoryVo>> list(SysOaCategoryBo bo) {
List<SysOaCategoryVo> list = iSysOaCategoryService.queryList(bo);
return R.ok(list);
}
/**
* 导出知识分类列表
*/
@SaCheckPermission("oa:category:export")
@Log(title = "知识分类", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(SysOaCategoryBo bo, HttpServletResponse response) {
List<SysOaCategoryVo> list = iSysOaCategoryService.queryList(bo);
ExcelUtil.exportExcel(list, "知识分类", SysOaCategoryVo.class, response);
}
/**
* 获取知识分类详细信息
*
* @param categoryId 主键
*/
@SaCheckPermission("oa:category:query")
@GetMapping("/{categoryId}")
public R<SysOaCategoryVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long categoryId) {
return R.ok(iSysOaCategoryService.queryById(categoryId));
}
/**
* 新增知识分类
*/
@SaCheckPermission("oa:category:add")
@Log(title = "知识分类", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaCategoryBo bo) {
return toAjax(iSysOaCategoryService.insertByBo(bo));
}
/**
* 修改知识分类
*/
@SaCheckPermission("oa:category:edit")
@Log(title = "知识分类", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaCategoryBo bo) {
return toAjax(iSysOaCategoryService.updateByBo(bo));
}
/**
* 删除知识分类
*
* @param categoryIds 主键串
*/
@SaCheckPermission("oa:category:remove")
@Log(title = "知识分类", businessType = BusinessType.DELETE)
@DeleteMapping("/{categoryIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] categoryIds) {
return toAjax(iSysOaCategoryService.deleteWithValidByIds(Arrays.asList(categoryIds), true));
}
}

View File

@@ -0,0 +1,130 @@
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.SysOaContractVo;
import com.ruoyi.oa.domain.bo.SysOaContractBo;
import com.ruoyi.oa.service.ISysOaContractService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 合同管理
*
* @author huangxing
* @date 2024-01-10
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/oaContract")
public class SysOaContractController extends BaseController {
private final ISysOaContractService iSysOaContractService;
/**
* 查询合同管理列表
*/
@SaCheckPermission("oa:oaContract:list")
@GetMapping("/list")
public TableDataInfo<SysOaContractVo> list(SysOaContractBo bo, PageQuery pageQuery) {
return iSysOaContractService.queryPageList(bo, pageQuery);
}
/**
* 导出合同管理列表
*/
@SaCheckPermission("oa:oaContract:export")
@Log(title = "合同管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(SysOaContractBo bo, HttpServletResponse response) {
List<SysOaContractVo> list = iSysOaContractService.queryList(bo);
ExcelUtil.exportExcel(list, "合同管理", SysOaContractVo.class, response);
}
/**
* 获取合同管理详细信息
*
* @param contractId 主键
*/
@SaCheckPermission("oa:oaContract:query")
@GetMapping("/{contractId}")
public R<SysOaContractVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long contractId) {
return R.ok(iSysOaContractService.queryById(contractId));
}
/**
* 根据项目id获取合同信息
* @param bo
* @return
*/
@SaCheckPermission("oa:oaContract:query")
@GetMapping("/findContract")
public R<SysOaContractVo> findContractByProjectId(SysOaContractBo bo){
return R.ok(iSysOaContractService.findContractByProjectId(bo));
}
/**
* 根据项目id查询合同列表
* @param bo
* @return
*/
@SaCheckPermission("oa:oaContract:query")
@GetMapping("/selectContract")
public R<List<SysOaContractVo>> selectContractByProjectId(SysOaContractBo bo){
return R.ok(iSysOaContractService.selectContractByProjectId(bo));
}
/**
* 新增合同管理
*/
@SaCheckPermission("oa:oaContract:add")
@Log(title = "合同管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaContractBo bo) {
return toAjax(iSysOaContractService.insertByBo(bo));
}
/**
* 修改合同管理
*/
@SaCheckPermission("oa:oaContract:edit")
@Log(title = "合同管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaContractBo bo) {
return toAjax(iSysOaContractService.updateByBo(bo));
}
/**
* 删除合同管理
*
* @param contractIds 主键串
*/
@SaCheckPermission("oa:oaContract:remove")
@Log(title = "合同管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{contractIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] contractIds) {
return toAjax(iSysOaContractService.deleteWithValidByIds(Arrays.asList(contractIds), true));
}
}

View File

@@ -0,0 +1,108 @@
package com.ruoyi.oa.controller;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.SysOaDetailVo;
import com.ruoyi.oa.domain.bo.SysOaDetailBo;
import com.ruoyi.oa.service.ISysOaDetailService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 进出账明细
*
* @author huangxing
* @date 2024-01-17
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/detail")
public class SysOaDetailController extends BaseController {
private final ISysOaDetailService iSysOaDetailService;
/**
* 查询进出账明细列表
*/
@SaCheckPermission("oa:detail:list")
@GetMapping("/list")
public TableDataInfo<SysOaDetailVo> list(SysOaDetailBo bo, PageQuery pageQuery) {
return iSysOaDetailService.queryPageList(bo, pageQuery);
}
/**
* 导出进出账明细列表
*/
@SaCheckPermission("oa:detail:export")
@Log(title = "进出账明细", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(SysOaDetailBo bo, HttpServletResponse response) {
List<SysOaDetailVo> list = iSysOaDetailService.queryList(bo);
ExcelUtil.exportExcel(list, "进出账明细", SysOaDetailVo.class, response);
}
/**
* 获取进出账明细详细信息
*
* @param detailId 主键
*/
@SaCheckPermission("oa:detail:query")
@GetMapping("/{detailId}")
public R<SysOaDetailVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long detailId) {
return R.ok(iSysOaDetailService.queryById(detailId));
}
/**
* 新增进出账明细
*/
@SaCheckPermission("oa:detail:add")
@Log(title = "进出账明细", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaDetailBo bo) {
return toAjax(iSysOaDetailService.insertByBo(bo));
}
/**
* 修改进出账明细
*/
@SaCheckPermission("oa:detail:edit")
@Log(title = "进出账明细", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaDetailBo bo) {
return toAjax(iSysOaDetailService.updateByBo(bo));
}
/**
* 删除进出账明细
*
* @param detailIds 主键串
*/
@SaCheckPermission("oa:detail:remove")
@Log(title = "进出账明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{detailIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] detailIds) {
return toAjax(iSysOaDetailService.deleteWithValidByIds(Arrays.asList(detailIds), true));
}
}

View File

@@ -0,0 +1,234 @@
package com.ruoyi.oa.controller;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;
import java.util.*;
import com.ruoyi.oa.domain.SysOaFinance;
import com.ruoyi.oa.domain.vo.SysOaProjectVo;
import com.ruoyi.oa.service.ISysOaDetailService;
import com.ruoyi.oa.service.ISysOaProjectService;
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.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.SysOaFinanceVo;
import com.ruoyi.oa.domain.bo.SysOaFinanceBo;
import com.ruoyi.oa.service.ISysOaFinanceService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 进出账管理
*
* @author huangxing
* @date 2024-01-17
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/finance")
public class SysOaFinanceController extends BaseController {
private final ISysOaFinanceService iSysOaFinanceService;
private ISysOaDetailService sysOaDetailService;
private final ISysOaProjectService sysOaProjectService;
/**
* 查询进出账管理列表
*/
@SaCheckPermission("oa:finance:list")
@GetMapping("/list")
public TableDataInfo<SysOaFinanceVo> list(SysOaFinanceBo bo, PageQuery pageQuery) {
TableDataInfo<SysOaFinanceVo> sysOaFinanceVoTableDataInfo = iSysOaFinanceService.selectPageFinanceList(bo, pageQuery);
return sysOaFinanceVoTableDataInfo;
}
@SaCheckPermission("oa:finance:list")
@GetMapping("/listPro")
public TableDataInfo<SysOaFinanceVo> listPro(SysOaFinanceBo bo, PageQuery pageQuery) {
TableDataInfo<SysOaFinanceVo> sysOaFinanceList = iSysOaFinanceService.selectFinanceList(bo, pageQuery);
return sysOaFinanceList;
}
/**
* 根据时间查询
*/
@SaCheckPermission("oa:finance:list")
@GetMapping("/getFinanceByTime")
public R<Map<String, Object>> findFinanceByTime(SysOaFinanceBo bo, @RequestParam Map<String, Object> params) {
Map<String, Object> params1 = params;
params1.put("financeType", "1");
BigDecimal finance1 = iSysOaFinanceService.findFinanceByTime(bo, params1);
Map<String, Object> params0 = params;
params0.put("financeType", "0");
BigDecimal finance0 = iSysOaFinanceService.findFinanceByTime(bo, params0);
Map<String, Object> ajax = new HashMap<>();
ajax.put("income", finance1);
ajax.put("out", finance0);
ajax.put("check", finance1.subtract(finance0));
return R.ok("ok",ajax);
}
/**
* 项目资金管理,根据时间查询
*/
@SaCheckPermission("oa:finance:list")
@GetMapping("/findFinanceByTimeAndProjectId")
public R<Map<String, Object>> findFinanceByTimeAndProjectId(SysOaFinanceBo bo) {
//项目总金额
SysOaProjectVo sysOaProjectVo = sysOaProjectService.queryById(bo.getProjectId());
BigDecimal funds = sysOaProjectVo.getFunds();
//入账总额
SysOaFinanceBo boOne = bo;
boOne.setFinanceType("1");
BigDecimal bigDecimalCome = iSysOaFinanceService.selectFinanceByProjectId(boOne);
//出账总额
SysOaFinanceBo boZero = bo;
boZero.setFinanceType("0");
BigDecimal bigDecimalOut = iSysOaFinanceService.selectFinanceByProjectId(boZero);
//遍历子表将价格遍历为数组并用map方法求和该方法类型使用map比较妥当
Map<String, Object> ajax = new HashMap<>();
ajax.put("funds", sysOaProjectVo.getFunds()); //项目总额
ajax.put("unliquidated", funds.subtract(bigDecimalCome)); //未结算
ajax.put("come", bigDecimalCome); //入账
ajax.put("out", bigDecimalOut); //出账
//subtract方法计算差
ajax.put("check", bigDecimalCome.subtract(bigDecimalOut));
return R.ok("ok", ajax);
}
/**
* 最近6个月的支出/收入情况
*/
@SaCheckPermission("oa:finance:list")
@PostMapping("/findFinanceByMonth")
public R<List<Object>> findFinanceByMonth(SysOaFinanceBo bo) {
LocalDate now = LocalDate.now();
/* 建立一个数组 */
int[] integers = {0,1, 2, 3, 4, 5};
List<Object> objects = new ArrayList<>();
/* 开始遍历 */
for (int j = 0; j<integers.length; j++){
int i = integers[j];
LocalDate date = now.plusMonths(-i);
String onMonth = date.getYear() + "" + date.getMonthValue() + "";
//上个月的第一天,再上个月继续加1
LocalDate with = now.minus(i, ChronoUnit.MONTHS).with(TemporalAdjusters.firstDayOfMonth());
String firstDay = with + " 00:00:00";
LocalDate with1 = now.minus(i, ChronoUnit.MONTHS).with(TemporalAdjusters.lastDayOfMonth());
String lastDay = with1 + " 23:59:59";
//支出
Map<String, Object> ajax = new HashMap<>();
Map<String, Object> outMap = new HashMap<>();
outMap.put("financeType", '0');
outMap.put("beginTime", firstDay);
outMap.put("endTime", lastDay);
BigDecimal financeOutReduce = iSysOaFinanceService.findFinanceByTime(bo, outMap);
//收入
Map<String, Object> comeMap = new HashMap<>();
comeMap.put("financeType", '1');
comeMap.put("beginTime", firstDay);
comeMap.put("endTime", lastDay);
BigDecimal financeComeReduce = iSysOaFinanceService.findFinanceByTime(bo, comeMap);
//收入减支出
BigDecimal subtract = financeComeReduce.subtract(financeOutReduce);
ajax.put("onMonth", onMonth);
ajax.put("financeOut", financeOutReduce);
ajax.put("financeCome", financeComeReduce);
ajax.put("count", subtract);
objects.add(ajax);
}
return R.ok(objects);
}
/**
* 导出进出账管理列表
*/
@SaCheckPermission("oa:finance:export")
@Log(title = "进出账管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(SysOaFinanceBo bo, HttpServletResponse response) {
List<SysOaFinanceVo> list = iSysOaFinanceService.queryList(bo);
ExcelUtil.exportExcel(list, "进出账管理", SysOaFinanceVo.class, response);
}
/**
* 根据id获取进出账管理详细信息
*
* @param financeId 主键
*/
@SaCheckPermission("oa:finance:query")
@GetMapping("/{financeId}")
public R<SysOaFinance> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long financeId) {
return R.ok(iSysOaFinanceService.selectFinanceById(financeId));
}
/**
* 新增进出账管理
*/
@SaCheckPermission("oa:finance:add")
@Log(title = "进出账管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaFinanceBo bo) {
return toAjax(iSysOaFinanceService.insertByBo(bo));
}
/**
* 修改进出账管理
*/
@SaCheckPermission("oa:finance:edit")
@Log(title = "进出账管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaFinanceBo bo) {
return toAjax(iSysOaFinanceService.updateByBo(bo));
}
/**
* 删除进出账管理
*
* @param financeId 主键串
*/
@SaCheckPermission("oa:finance:remove")
@Log(title = "进出账管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{financeId}")
public Boolean removeData(@NotNull(message = "主键不能为空") @PathVariable Long financeId) {
return iSysOaFinanceService.deleteSysOaFinanceById(financeId);
}
/* 已经改造为单条关联删除以下代码不需要了
@SaCheckPermission("oa:finance:remove")
@Log(title = "进出账管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{financeIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] financeIds) {
return toAjax(iSysOaFinanceService.deleteWithValidByIds(Arrays.asList(financeIds), true));
}*/
}

View File

@@ -0,0 +1,116 @@
package com.ruoyi.oa.controller;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.ruoyi.oa.mapper.SysOaTaskMapper;
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.SysOaProjectVo;
import com.ruoyi.oa.domain.bo.SysOaProjectBo;
import com.ruoyi.oa.service.ISysOaProjectService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 项目管理
*
* @author huangxing
* @date 2024-01-11
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/project")
public class SysOaProjectController extends BaseController {
private final ISysOaProjectService iSysOaProjectService;
private final SysOaTaskMapper sysOaTaskMapper;
/**
* 查询项目管理列表
*/
@SaCheckPermission("oa:project:list")
@GetMapping("/list")
public TableDataInfo<SysOaProjectVo> list(SysOaProjectBo bo, PageQuery pageQuery) {
return iSysOaProjectService.queryPageList(bo, pageQuery);
}
/**
* 导出项目管理列表
*/
@SaCheckPermission("oa:project:export")
@Log(title = "项目管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(SysOaProjectBo bo, HttpServletResponse response) {
List<SysOaProjectVo> list = iSysOaProjectService.queryList(bo);
ExcelUtil.exportExcel(list, "项目管理", SysOaProjectVo.class, response);
}
/**
* 获取项目管理详细信息
*
* @param projectId 主键
*/
@SaCheckPermission("oa:project:query")
@GetMapping("/{projectId}")
public R<SysOaProjectVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long projectId) {
return R.ok(iSysOaProjectService.queryById(projectId));
}
/**
* 新增项目管理
*/
@SaCheckPermission("oa:project:add")
@Log(title = "项目管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaProjectBo bo) {
System.out.println("date=====" + bo);
return toAjax(iSysOaProjectService.insertByBo(bo));
}
/**
* 修改项目管理
*/
@SaCheckPermission("oa:project:edit")
@Log(title = "项目管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaProjectBo bo) {
return toAjax(iSysOaProjectService.updateByBo(bo));
}
/**
* 删除项目管理,同时删除任务数据
* 该方法在列表中单条删除,多条删除也可以但是没有测试
*
* @param projectIds 主键串
*/
@SaCheckPermission("oa:project:remove")
@Log(title = "项目管理", businessType = BusinessType.DELETE)
@DSTransactional
@DeleteMapping("/{projectIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] projectIds) {
Arrays.asList(projectIds).forEach(v ->{
sysOaTaskMapper.deleteSysOaTaskByProjectId(v);
});
return toAjax(iSysOaProjectService.deleteWithValidByIds(Arrays.asList(projectIds), true));
}
}

View File

@@ -0,0 +1,108 @@
package com.ruoyi.oa.controller;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.SysOaPurposeVo;
import com.ruoyi.oa.domain.bo.SysOaPurposeBo;
import com.ruoyi.oa.service.ISysOaPurposeService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 采购意向
*
* @author huangxing
* @date 2024-03-31
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/purpose")
public class SysOaPurposeController extends BaseController {
private final ISysOaPurposeService iSysOaPurposeService;
/**
* 查询采购意向列表
*/
@SaCheckPermission("oa:purpose:list")
@GetMapping("/list")
public TableDataInfo<SysOaPurposeVo> list(SysOaPurposeBo bo, PageQuery pageQuery) {
return iSysOaPurposeService.queryPageList(bo, pageQuery);
}
/**
* 导出采购意向列表
*/
@SaCheckPermission("oa:purpose:export")
@Log(title = "采购意向", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(SysOaPurposeBo bo, HttpServletResponse response) {
List<SysOaPurposeVo> list = iSysOaPurposeService.queryList(bo);
ExcelUtil.exportExcel(list, "采购意向", SysOaPurposeVo.class, response);
}
/**
* 获取采购意向详细信息
*
* @param purposeId 主键
*/
@SaCheckPermission("oa:purpose:query")
@GetMapping("/{purposeId}")
public R<SysOaPurposeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long purposeId) {
return R.ok(iSysOaPurposeService.queryById(purposeId));
}
/**
* 新增采购意向
*/
@SaCheckPermission("oa:purpose:add")
@Log(title = "采购意向", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaPurposeBo bo) {
return toAjax(iSysOaPurposeService.insertByBo(bo));
}
/**
* 修改采购意向
*/
@SaCheckPermission("oa:purpose:edit")
@Log(title = "采购意向", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaPurposeBo bo) {
return toAjax(iSysOaPurposeService.updateByBo(bo));
}
/**
* 删除采购意向
*
* @param purposeIds 主键串
*/
@SaCheckPermission("oa:purpose:remove")
@Log(title = "采购意向", businessType = BusinessType.DELETE)
@DeleteMapping("/{purposeIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] purposeIds) {
return toAjax(iSysOaPurposeService.deleteWithValidByIds(Arrays.asList(purposeIds), true));
}
}

View File

@@ -0,0 +1,133 @@
package com.ruoyi.oa.controller;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import com.ruoyi.oa.domain.SysOaRemind;
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.SysOaRemindVo;
import com.ruoyi.oa.domain.bo.SysOaRemindBo;
import com.ruoyi.oa.service.ISysOaRemindService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 事件提醒
*
* @author huangxing
* @date 2024-04-02
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/remind")
public class SysOaRemindController extends BaseController {
private final ISysOaRemindService iSysOaRemindService;
/**
* 查询代办事件列表
* @param bo
* @return
*/
@SaCheckPermission("oa:remind:list")
@GetMapping("/getRemindList")
public R<List<SysOaRemindVo>> getRemindList(SysOaRemindBo bo){
R<List<SysOaRemindVo>> remindList = iSysOaRemindService.queryRemindList(bo);
return remindList;
}
/**
* 查询事件统计
* @param bo
* @return
*/
@SaCheckPermission("oa:remind:list")
@GetMapping("/getRemindCount")
public R getRemindCount(SysOaRemindBo bo){
Long aLong = iSysOaRemindService.queryRemindCount(bo);
return R.ok("okkkk", aLong);
}
/**
* 查询事件提醒列表
*/
@SaCheckPermission("oa:remind:list")
@GetMapping("/list")
public TableDataInfo<SysOaRemindVo> list(SysOaRemindBo bo, PageQuery pageQuery) {
return iSysOaRemindService.queryPageList(bo, pageQuery);
}
/**
* 导出事件提醒列表
*/
@SaCheckPermission("oa:remind:export")
@Log(title = "事件提醒", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(SysOaRemindBo bo, HttpServletResponse response) {
List<SysOaRemindVo> list = iSysOaRemindService.queryList(bo);
ExcelUtil.exportExcel(list, "事件提醒", SysOaRemindVo.class, response);
}
/**
* 获取事件提醒详细信息
*
* @param remindId 主键
*/
@SaCheckPermission("oa:remind:query")
@GetMapping("/{remindId}")
public R<SysOaRemindVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long remindId) {
return R.ok(iSysOaRemindService.queryById(remindId));
}
/**
* 新增事件提醒
*/
@SaCheckPermission("oa:remind:add")
@Log(title = "事件提醒", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaRemindBo bo) {
return toAjax(iSysOaRemindService.insertByBo(bo));
}
/**
* 修改事件提醒
*/
@SaCheckPermission("oa:remind:edit")
@Log(title = "事件提醒", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaRemindBo bo) {
return toAjax(iSysOaRemindService.updateByBo(bo));
}
/**
* 删除事件提醒
*
* @param remindIds 主键串
*/
@SaCheckPermission("oa:remind:remove")
@Log(title = "事件提醒", businessType = BusinessType.DELETE)
@DeleteMapping("/{remindIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] remindIds) {
return toAjax(iSysOaRemindService.deleteWithValidByIds(Arrays.asList(remindIds), true));
}
}

View File

@@ -0,0 +1,129 @@
package com.ruoyi.oa.controller;
import java.util.*;
import java.util.concurrent.TimeUnit;
import com.ruoyi.oa.domain.SysOaTask;
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.SysOaTaskVo;
import com.ruoyi.oa.domain.bo.SysOaTaskBo;
import com.ruoyi.oa.service.ISysOaTaskService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 任务管理
*
* @author huangxing
* @date 2024-01-11
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/task")
public class SysOaTaskController extends BaseController {
private final ISysOaTaskService iSysOaTaskService;
/**
* 查询任务管理列表
*/
@SaCheckPermission("oa:task:list")
@GetMapping("/list")
public TableDataInfo<SysOaTaskVo> list(SysOaTaskBo bo, PageQuery pageQuery) {
return iSysOaTaskService.queryPageList(bo, pageQuery);
}
/**
* 根据工作类型字典查询任务列表
* @param pid
* @return
*/
@GetMapping("/getTaskByDictType/{pid}")
public R taskByDictType(@PathVariable Long pid){
R taskByDictList = iSysOaTaskService.queryTaskByDictList(pid);
return R.ok("ok", taskByDictList);
}
/**
* 根据工作类型查询列表
* @param bo
* @return
*/
@SaCheckPermission("oa:task:list")
@GetMapping("/listByType")
public List<SysOaTaskVo> listByType(SysOaTaskBo bo){
return iSysOaTaskService.queryListByType(bo);
}
/**
* 导出任务管理列表
*/
@SaCheckPermission("oa:task:export")
@Log(title = "任务管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(SysOaTaskBo bo, HttpServletResponse response) {
List<SysOaTaskVo> list = iSysOaTaskService.queryList(bo);
ExcelUtil.exportExcel(list, "任务管理", SysOaTaskVo.class, response);
}
/**
* 获取任务管理详细信息
*
* @param taskId 主键
*/
@SaCheckPermission("oa:task:query")
@GetMapping("/{taskId}")
public R<SysOaTaskVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long taskId) {
return R.ok(iSysOaTaskService.queryById(taskId));
}
/**
* 新增任务管理
*/
@SaCheckPermission("oa:task:add")
@Log(title = "任务管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaTaskBo bo) {
return toAjax(iSysOaTaskService.insertByBo(bo));
}
/**
* 修改任务管理
*/
@SaCheckPermission("oa:task:edit")
@Log(title = "任务管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaTaskBo bo) {
return toAjax(iSysOaTaskService.updateByBo(bo));
}
/**
* 删除任务管理
*
* @param taskIds 主键串
*/
@SaCheckPermission("oa:task:remove")
@Log(title = "任务管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{taskIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] taskIds) {
return toAjax(iSysOaTaskService.deleteWithValidByIds(Arrays.asList(taskIds), true));
}
}

View File

@@ -0,0 +1,66 @@
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.List;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 知识管理对象 sys_oa_article
*
* @author huangxing
* @date 2024-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_oa_article")
public class SysOaArticle extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 文章id
*/
@TableId(value = "article_id")
private Long articleId;
/**
* 文章分类
*/
private Long categoryId;
/**
* 文章标题
*/
private String articleTitle;
/**
* 副标题
*/
private String subhead;
/**
* 来源
*/
private String source;
/**
* 内容
*/
private String content;
/**
* 查看数
*/
private Integer checkNum;
/**
* 附件
*/
private String accessory;
/**
* 备注
*/
private String remark;
private SysOaCategory category;
}

View File

@@ -0,0 +1,109 @@
package com.ruoyi.oa.domain;
import com.alibaba.excel.annotation.ExcelProperty;
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.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 投标管理对象 sys_oa_bid
*
* @author huangxing
* @date 2024-02-23
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_oa_bid")
public class SysOaBid extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 文章id
*/
@TableId(value = "bid_id")
private Long bidId;
/**
* 投标项目名称
*/
private String bidTitle;
/**
* 采购项目编号
*/
private String bidNumber;
/**
* 采购方式
*/
private String bidType;
/**
* 采购预算金额
*/
private String budget;
/**
* 项目分包情况
*/
private String packageInfo;
/**
* 公告发布时间
*/
private String noticeTime;
/**
* 获取文件期限
*/
private String deadline;
/**
* 报名方式
*/
private String signType;
/**
* 获取招标文件方式
*/
private String patternFile;
/**
* 投标截止时间
*/
private String expirationTime;
/**
* 开标地点
*/
private String bidAddress;
/**
* 采购人联系人
*/
private String clientName;
/**
* 采购代理机构
*/
private String agency;
/**
* 缴纳保证金情况
*/
private String document;
/**
* 缴纳保证金信息
*/
private String documentInfo;
/**
* 是否中标
*/
private String isWin;
/**
* 备注
*/
private String remark;
/**
* 附件
*/
private String accessory;
}

View File

@@ -0,0 +1,43 @@
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.TreeEntity;
/**
* 知识分类对象 sys_oa_category
*
* @author huangxing
* @date 2024-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_oa_category")
public class SysOaCategory extends TreeEntity<SysOaCategory> {
private static final long serialVersionUID=1L;
/**
* 产品id
*/
@TableId(value = "category_id")
private Long categoryId;
/**
* 分类名称
*/
private String categoryName;
/**
* 状态
*/
private String status;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,100 @@
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.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 合同管理对象 sys_oa_contract
*
* @author huangxing
* @date 2024-01-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_oa_contract")
public class SysOaContract extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 合同ID
*/
@TableId(value = "contract_id")
private Long contractId;
/**
* 项目id
*/
private Long projectId;
/**
* 合同编号
*/
private String contractNum;
/**
* 项目名称
*/
private String contractName;
/**
* 甲方名称
*/
private String firstName;
/**
* 甲方负责人
*/
private String firstPerson;
/**
* 甲方电话
*/
private String firstPhone;
/**
* 乙方名称
*/
private String secondName;
/**
* 乙方负责人
*/
private String secondPerson;
/**
* 乙方电话
*/
private String secondPhone;
/**
* 合同金额
*/
private String contractPrice;
/**
* 签订日期
*/
private Date signTime;
/**
* 有效期
*/
private String validity;
/**
* 类型
*/
private String contractType;
/**
* 状态
*/
private String contractStatus;
/**
* 附件
*/
private String accessory;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,54 @@
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.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 进出账明细对象 sys_oa_detail
*
* @author huangxing
* @date 2024-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_oa_detail")
public class SysOaDetail extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* ID
*/
@TableId(value = "detail_id")
private Long detailId;
/**
* 进出账ID
*/
private Long financeId;
/**
* 名称
*/
private String detailTitle;
/**
* 金额
*/
private BigDecimal price;
/**
* 大写金额
*/
private String bigPrice;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,100 @@
package com.ruoyi.oa.domain;
import com.alibaba.excel.annotation.ExcelProperty;
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 java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 进出账管理对象 sys_oa_finance
*
* @author huangxing
* @date 2024-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_oa_finance")
public class SysOaFinance extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* ID
*/
@TableId(value = "finance_id")
private Long financeId;
/**
* 项目ID
*/
private Long projectId;
/**
* 账务名称
*/
private String financeTitle;
/**
* 经手人/付款方
*/
private String financeParties;
/**
* 支付类型
*/
private String payType;
/**
* 进出账类型
*/
private String financeType;
/**
* 交易时间
*/
private Date financeTime;
/**
* 开票比例
*/
private String makeRatio;
/**
* 开票时间
*/
private String makeTime;
/**
* 开票金额
*/
private String makePrice;
/**
* 开票情况说明
*/
private String makeExplain;
/**
* 附件
*/
private String accessory;
/**
* 备注
*/
private String remark;
/**
* 一对一关联项目表
*/
private SysOaProject project;
/**
* 一对多关联进出账明细
*/
@TableField(exist = false)
private List<SysOaDetail> detailList;
}

View File

@@ -0,0 +1,118 @@
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_project
*
* @author huangxing
* @date 2024-01-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_oa_project")
public class SysOaProject extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* ID
*/
@TableId(value = "project_id")
private Long projectId;
/**
* 项目名称
*/
private String projectName;
/**
* 项目编号
*/
private String projectNum;
/**
* 项目类型
*/
private String projectType;
/**
* 项目地址
*/
private String address;
/**
* 项目总款
*/
private BigDecimal funds;
/**
* 项目负责人
*/
private String functionary;
/**
* 开始日期
*/
private Date beginTime;
/**
* 结束日期
*/
private Date finishTime;
/**
* 交货期
*/
private String delivery;
/**
* 质保期
*/
private String guarantee;
/**
* 项目介绍
*/
private String introduction;
/**
* 优先级
*/
private String projectGrade;
/**
* 状态
*/
private String projectStatus;
/**
* 关联合同ID
*/
private Long contractId;
/**
* 开票名称
*/
private String invoiceName;
/**
* 纳税人识别号
*/
private String invoiceNumber;
/**
* 地址电话
*/
private String invoiceAddress;
/**
* 开户行及账号
*/
private String invoiceBank;
/**
* 履约保证金
*/
private String bail;
/**
* 附件
*/
private String accessory;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,65 @@
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_purpose
*
* @author huangxing
* @date 2024-03-31
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_oa_purpose")
public class SysOaPurpose extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 项目id
*/
@TableId(value = "purpose_id")
private Long purposeId;
/**
* 项目名称
*/
private String purposeTitle;
/**
* 采购单位
*/
private String subhead;
/**
* 预算金额
*/
private String budget;
/**
* 采购需求情况
*/
private String content;
/**
* 预计采购时间
*/
private String purposeTime;
/**
* 是否投标
*/
private String isBid;
/**
* 附件
*/
private String accessory;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,83 @@
package com.ruoyi.oa.domain;
import com.alibaba.excel.annotation.ExcelProperty;
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_remind
*
* @author huangxing
* @date 2024-04-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_oa_remind")
public class SysOaRemind extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 提醒ID
*/
@TableId(value = "remind_id")
private Long remindId;
/**
* 提醒名称
*/
private String taskTitle;
/**
* 事件内容
*/
private String content;
/**
* 办理时间
*/
private Date taskTime;
/**
* 办理状态
*/
private String taskStatus;
/**
* 办理情况
*/
private String manage;
/**
* 附件
*/
private String accessory;
/**
* 备注
*/
private String remark;
/**
* 创建者
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改者
*/
private String updateBy;
/**
* 修改时间
*/
private Date updateTime;
}

View File

@@ -0,0 +1,73 @@
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
*
* @author huangxing
* @date 2024-01-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_oa_task")
public class SysOaTask extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* ID
*/
@TableId(value = "task_id")
private Long taskId;
/**
* 项目ID
*/
private Long projectId;
/**
* 任务主题
*/
private String taskTitle;
/**
* 工作类型
*/
private String taskType;
/**
* 优先级
*/
private String taskGrade;
/**
* 协作人员
*/
private String collaborator;
/**
* 开始时间
*/
private Date beginTime;
/**
* 结束时间
*/
private Date finishTime;
/**
* 详细描述
*/
private String content;
/**
* 附件
*/
private String accessory;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,77 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.oa.domain.SysOaCategory;
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_article
*
* @author huangxing
* @date 2024-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SysOaArticleBo extends BaseEntity {
/**
* 文章id
*/
@NotNull(message = "文章id不能为空", groups = { EditGroup.class })
private Long articleId;
/**
* 文章分类
*/
@NotNull(message = "文章分类不能为空", groups = { AddGroup.class, EditGroup.class })
private Long categoryId;
/**
* 文章标题
*/
@NotBlank(message = "文章标题不能为空", groups = { AddGroup.class, EditGroup.class })
private String articleTitle;
/**
* 副标题
*/
private String subhead;
/**
* 来源
*/
private String source;
/**
* 内容
*/
private String content;
/**
* 查看数
*/
private Integer checkNum;
/**
* 附件
*/
private String accessory;
/**
* 备注
*/
private String remark;
private SysOaCategory category;
}

View File

@@ -0,0 +1,128 @@
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.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 投标管理业务对象 sys_oa_bid
*
* @author huangxing
* @date 2024-02-23
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SysOaBidBo extends BaseEntity {
/**
* 文章id
*/
@NotNull(message = "文章id不能为空", groups = { EditGroup.class })
private Long bidId;
/**
* 投标项目名称
*/
@NotBlank(message = "投标项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String bidTitle;
/**
* 采购项目编号
*/
@NotBlank(message = "采购项目编号不能为空", groups = { AddGroup.class, EditGroup.class })
private String bidNumber;
/**
* 采购方式
*/
@NotBlank(message = "采购方式不能为空", groups = { AddGroup.class, EditGroup.class })
private String bidType;
/**
* 采购预算金额
*/
@NotNull(message = "采购预算金额不能为空", groups = { AddGroup.class, EditGroup.class })
private String budget;
/**
* 项目分包情况
*/
private String packageInfo;
/**
* 公告发布时间
*/
private String noticeTime;
/**
* 获取文件期限
*/
private String deadline;
/**
* 报名方式
*/
private String signType;
/**
* 获取招标文件方式
*/
private String patternFile;
/**
* 投标截止时间
*/
private String expirationTime;
/**
* 开标地点
*/
private String bidAddress;
/**
* 采购人联系人
*/
private String clientName;
/**
* 采购代理机构
*/
private String agency;
/**
* 缴纳保证金情况
*/
private String document;
/**
* 缴纳保证金信息
*/
private String documentInfo;
/**
* 是否中标
*/
private String isWin;
/**
* 备注
*/
private String remark;
/**
* 附件
*/
private String accessory;
}

View File

@@ -0,0 +1,48 @@
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.TreeEntity;
/**
* 知识分类业务对象 sys_oa_category
*
* @author huangxing
* @date 2024-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SysOaCategoryBo extends TreeEntity<SysOaCategoryBo> {
/**
* 产品id
*/
@NotNull(message = "产品id不能为空", groups = { EditGroup.class })
private Long categoryId;
/**
* 分类名称
*/
@NotBlank(message = "分类名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String categoryName;
/**
* 状态
*/
@NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
private String status;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,115 @@
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.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 合同管理业务对象 sys_oa_contract
*
* @author huangxing
* @date 2024-01-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SysOaContractBo extends BaseEntity {
private Long contractId;
/**
* 项目id
*/
private Long projectId;
/**
* 合同编号
*/
private String contractNum;
/**
* 项目名称
*/
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String contractName;
/**
* 甲方名称
*/
@NotBlank(message = "甲方名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String firstName;
/**
* 甲方负责人
*/
@NotBlank(message = "甲方负责人不能为空", groups = { AddGroup.class, EditGroup.class })
private String firstPerson;
/**
* 甲方电话
*/
@NotBlank(message = "甲方电话不能为空", groups = { AddGroup.class, EditGroup.class })
private String firstPhone;
/**
* 乙方名称
*/
private String secondName;
/**
* 乙方负责人
*/
private String secondPerson;
/**
* 乙方电话
*/
private String secondPhone;
/**
* 合同金额
*/
private String contractPrice;
/**
* 签订日期
*/
private Date signTime;
/**
* 有效期
*/
private String validity;
/**
* 类型
*/
private String contractType;
/**
* 状态
*/
private String contractStatus;
/**
* 附件
*/
private String accessory;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,61 @@
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.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 进出账明细业务对象 sys_oa_detail
*
* @author huangxing
* @date 2024-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SysOaDetailBo extends BaseEntity {
/**
* ID
*/
private Long detailId;
/**
* 进出账ID
*/
@NotNull(message = "进出账ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long financeId;
/**
* 名称
*/
@NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String detailTitle;
/**
* 金额
*/
@NotNull(message = "金额不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal price;
/**
* 大写金额
*/
@NotNull(message = "大写金额不能为空", groups = { AddGroup.class, EditGroup.class })
private String bigPrice;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,113 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.oa.domain.SysOaDetail;
import com.ruoyi.oa.domain.SysOaProject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.time.Instant;
import java.util.Date;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 进出账管理业务对象 sys_oa_finance
*
* @author huangxing
* @date 2024-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SysOaFinanceBo extends BaseEntity {
/**
* ID
*/
// @NotNull(message = "ID不能为空", groups = { EditGroup.class })
private Long financeId;
/**
* 项目ID
*/
// @NotNull(message = "项目ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long projectId;
/**
* 账务名称
*/
@NotBlank(message = "账务名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String financeTitle;
/**
* 经手人/付款方
*/
@NotBlank(message = "经手人/付款方不能为空", groups = { AddGroup.class, EditGroup.class })
private String financeParties;
/**
* 支付类型
*/
@NotBlank(message = "支付类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String payType;
/**
* 进出账类型
*/
@NotBlank(message = "进出账类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String financeType;
/**
* 交易时间
*/
@NotNull(message = "交易时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date financeTime;
/**
* 开票比例
*/
private String makeRatio;
/**
* 开票时间
*/
private String makeTime;
/**
* 开票金额
*/
private String makePrice;
/**
* 开票情况说明
*/
private String makeExplain;
/**
* 附件
*/
private String accessory;
/**
* 备注
*/
private String remark;
/**
* 一对一关联项目表
*/
private SysOaProject project;
/**
* 进出账明细
*/
private List<SysOaDetail> detailList;
}

View File

@@ -0,0 +1,144 @@
package com.ruoyi.oa.domain.bo;
import com.alibaba.excel.annotation.ExcelProperty;
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.math.BigDecimal;
import java.util.Date;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 项目管理业务对象 sys_oa_project
*
* @author huangxing
* @date 2024-01-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SysOaProjectBo extends BaseEntity {
/**
* ID
*/
@NotNull(message = "ID不能为空", groups = { EditGroup.class })
private Long projectId;
/**
* 项目名称
*/
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectName;
/**
* 项目编号
*/
@NotBlank(message = "项目编号不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectNum;
/**
* 项目类型
*/
// @NotBlank(message = "项目类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectType;
/**
* 项目地址
*/
private String address;
/**
* 项目总款
*/
private BigDecimal funds;
/**
* 项目负责人
*/
@NotBlank(message = "项目负责人不能为空", groups = { AddGroup.class, EditGroup.class })
private String functionary;
/**
* 开始日期
*/
@NotNull(message = "开始日期不能为空", groups = { AddGroup.class, EditGroup.class })
private Date beginTime;
/**
* 结束日期
*/
@NotNull(message = "结束日期不能为空", groups = { AddGroup.class, EditGroup.class })
private Date finishTime;
/**
* 交货期
*/
private String delivery;
/**
* 质保期
*/
private String guarantee;
/**
* 项目介绍
*/
private String introduction;
/**
* 优先级
*/
private String projectGrade;
/**
* 状态
*/
private String projectStatus;
/**
* 关联合同ID
*/
// @NotNull(message = "关联合同ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long contractId;
/**
* 开票名称
*/
private String invoiceName;
/**
* 纳税人识别号
*/
private String invoiceNumber;
/**
* 地址电话
*/
private String invoiceAddress;
/**
* 开户行及账号
*/
private String invoiceBank;
/**
* 履约保证金
*/
private String bail;
/**
* 附件
*/
private String accessory;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,78 @@
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;
/**
* 采购意向业务对象 sys_oa_purpose
*
* @author huangxing
* @date 2024-03-31
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SysOaPurposeBo extends BaseEntity {
/**
* 项目id
*/
@NotNull(message = "项目id不能为空", groups = { EditGroup.class })
private Long purposeId;
/**
* 项目名称
*/
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String purposeTitle;
/**
* 采购单位
*/
@NotBlank(message = "采购单位不能为空", groups = { AddGroup.class, EditGroup.class })
private String subhead;
/**
* 预算金额
*/
@NotBlank(message = "预算金额不能为空", groups = { AddGroup.class, EditGroup.class })
private String budget;
/**
* 采购需求情况
*/
@NotBlank(message = "采购需求情况不能为空", groups = { AddGroup.class, EditGroup.class })
private String content;
/**
* 预计采购时间
*/
@NotNull(message = "预计采购时间不能为空", groups = { AddGroup.class, EditGroup.class })
private String purposeTime;
/**
* 是否投标
*/
private String isBid;
/**
* 附件
*/
private String accessory;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,93 @@
package com.ruoyi.oa.domain.bo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
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;
/**
* 事件提醒业务对象 sys_oa_remind
*
* @author huangxing
* @date 2024-04-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SysOaRemindBo extends BaseEntity {
/**
* 提醒ID
*/
private Long remindId;
/**
* 提醒名称
*/
@NotBlank(message = "提醒名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String taskTitle;
/**
* 事件内容
*/
@NotBlank(message = "事件内容不能为空", groups = { AddGroup.class, EditGroup.class })
private String content;
/**
* 办理时间
*/
@NotNull(message = "办理时间不能为空", groups = { AddGroup.class, EditGroup.class })
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date taskTime;
/**
* 办理状态
*/
private String taskStatus;
/**
* 办理情况
*/
private String manage;
/**
* 附件
*/
private String accessory;
/**
* 备注
*/
private String remark;
/**
* 创建者
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改者
*/
private String updateBy;
/**
* 修改时间
*/
private Date updateTime;
}

View File

@@ -0,0 +1,88 @@
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;
/**
* 任务管理业务对象 sys_oa_task
*
* @author huangxing
* @date 2024-01-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SysOaTaskBo extends BaseEntity {
/**
* ID
*/
@NotNull(message = "ID不能为空", groups = { EditGroup.class })
private Long taskId;
/**
* 项目ID
*/
@NotNull(message = "项目ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long projectId;
/**
* 任务主题
*/
@NotBlank(message = "任务主题不能为空", groups = { AddGroup.class, EditGroup.class })
private String taskTitle;
/**
* 工作类型
*/
@NotBlank(message = "工作类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String taskType;
/**
* 优先级
*/
private String taskGrade;
/**
* 协作人员
*/
private String collaborator;
/**
* 开始时间
*/
@NotNull(message = "开始时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date beginTime;
/**
* 结束时间
*/
@NotNull(message = "结束时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date finishTime;
/**
* 详细描述
*/
private String content;
/**
* 附件
*/
private String accessory;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,89 @@
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 com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.oa.domain.SysOaArticle;
import com.ruoyi.oa.domain.SysOaCategory;
import com.ruoyi.oa.domain.SysOaProject;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;
/**
* 知识管理视图对象 sys_oa_article
*
* @author huangxing
* @date 2024-01-17
*/
@Data
@ExcelIgnoreUnannotated
public class SysOaArticleVo {
private static final long serialVersionUID = 1L;
/**
* 文章id
*/
@ExcelProperty(value = "文章id")
private Long articleId;
/**
* 文章分类
*/
@ExcelProperty(value = "文章分类")
private Long categoryId;
/**
* 文章标题
*/
@ExcelProperty(value = "文章标题")
private String articleTitle;
/**
* 文章标题
*/
@ExcelProperty(value = "文章副标题")
private String subhead;
/**
* 来源
*/
@ExcelProperty(value = "来源")
private String source;
/**
* 备注
*/
@ExcelProperty(value = "描述")
private String remark;
/**
* 查看数
*/
@ExcelProperty(value = "查看数")
private Integer checkNum;
/**
* 创建者
*/
@ExcelProperty(value = "创建者")
private String createBy;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间")
private Date createTime;
@ExcelProperty(value = "分类实体")
private SysOaCategory category;
}

View File

@@ -0,0 +1,150 @@
package com.ruoyi.oa.domain.vo;
import java.math.BigDecimal;
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 java.util.Date;
/**
* 投标管理视图对象 sys_oa_bid
*
* @author huangxing
* @date 2024-02-23
*/
@Data
@ExcelIgnoreUnannotated
public class SysOaBidVo {
private static final long serialVersionUID = 1L;
/**
* 文章id
*/
@ExcelProperty(value = "文章id")
private Long bidId;
/**
* 投标项目名称
*/
@ExcelProperty(value = "投标项目名称")
private String bidTitle;
/**
* 采购项目编号
*/
@ExcelProperty(value = "采购项目编号")
private String bidNumber;
/**
* 采购方式
*/
@ExcelProperty(value = "采购方式", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_bid_type")
private String bidType;
/**
* 采购预算金额
*/
@ExcelProperty(value = "采购预算金额")
private String budget;
/**
* 项目分包情况
*/
@ExcelProperty(value = "项目分包情况")
private String packageInfo;
/**
* 公告发布时间
*/
@ExcelProperty(value = "公告发布时间")
private String noticeTime;
/**
* 获取文件期限
*/
@ExcelProperty(value = "获取文件期限")
private String deadline;
/**
* 报名方式
*/
@ExcelProperty(value = "报名方式", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_sign_type")
private String signType;
/**
* 获取招标文件方式
*/
@ExcelProperty(value = "获取招标文件方式")
private String patternFile;
/**
* 投标截止时间
*/
@ExcelProperty(value = "投标截止时间")
private String expirationTime;
/**
* 开标地点
*/
@ExcelProperty(value = "开标地点")
private String bidAddress;
/**
* 采购人联系人
*/
@ExcelProperty(value = "采购人联系人")
private String clientName;
/**
* 采购代理机构
*/
@ExcelProperty(value = "采购代理机构")
private String agency;
/**
* 缴纳保证金情况
*/
@ExcelProperty(value = "缴纳保证金情况")
private String document;
/**
* 缴纳保证金信息
*/
@ExcelProperty(value = "缴纳保证金情况")
private String documentInfo;
/**
* 是否中标
*/
@ExcelProperty(value = "是否中标")
private String isWin;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间")
private Date createTime;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 附件
*/
@ExcelProperty(value = "附件")
private String accessory;
}

View File

@@ -0,0 +1,67 @@
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_category
*
* @author huangxing
* @date 2024-01-17
*/
@Data
@ExcelIgnoreUnannotated
public class SysOaCategoryVo {
private static final long serialVersionUID = 1L;
/**
* 产品id
*/
@ExcelProperty(value = "产品id")
private Long categoryId;
/**
* 父级分类id
*/
@ExcelProperty(value = "父级分类id")
private Long parentId;
/**
* 分类名称
*/
@ExcelProperty(value = "分类名称")
private String categoryName;
/**
* 状态
*/
@ExcelProperty(value = "状态")
private String status;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 创建者
*/
@ExcelProperty(value = "创建者")
private String createBy;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间")
private Date createTime;
}

View File

@@ -0,0 +1,141 @@
package com.ruoyi.oa.domain.vo;
import java.math.BigDecimal;
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 java.util.Date;
/**
* 合同管理视图对象 sys_oa_contract
*
* @author huangxing
* @date 2024-01-10
*/
@Data
@ExcelIgnoreUnannotated
public class SysOaContractVo {
private static final long serialVersionUID = 1L;
/**
* 合同ID
*/
@ExcelProperty(value = "合同ID")
private Long contractId;
/**
* 项目ID
*/
@ExcelProperty(value = "项目ID")
private Long projectId;
/**
* 合同编号
*/
@ExcelProperty(value = "合同编号")
private String contractNum;
/**
* 项目名称
*/
@ExcelProperty(value = "项目名称")
private String contractName;
/**
* 甲方名称
*/
@ExcelProperty(value = "甲方名称")
private String firstName;
/**
* 甲方负责人
*/
@ExcelProperty(value = "甲方负责人")
private String firstPerson;
/**
* 甲方电话
*/
@ExcelProperty(value = "甲方电话")
private String firstPhone;
/**
* 乙方名称
*/
@ExcelProperty(value = "乙方电话")
private String secondName;
/**
* 乙方负责人
*/
@ExcelProperty(value = "乙方负责人")
private String secondPerson;
/**
* 乙方电话
*/
@ExcelProperty(value = "乙方电话")
private String secondPhone;
/**
* 合同金额
*/
@ExcelProperty(value = "合同金额")
private String contractPrice;
/**
* 签订日期
*/
@ExcelProperty(value = "签订日期")
private Date signTime;
/**
* 有效期
*/
@ExcelProperty(value = "有效期")
private String validity;
/**
* 类型
*/
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
private String contractType;
/**
* 状态
*/
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_show_hide")
private String contractStatus;
/**
* 创建者
*/
@ExcelProperty(value = "创建者")
private String createBy;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间")
private Date createTime;
/**
* 附件
*/
@ExcelProperty(value = "附件")
private String accessory;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,62 @@
package com.ruoyi.oa.domain.vo;
import java.math.BigDecimal;
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_detail
*
* @author huangxing
* @date 2024-01-17
*/
@Data
@ExcelIgnoreUnannotated
public class SysOaDetailVo {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ExcelProperty(value = "ID")
private Long detailId;
/**
* 进出账ID
*/
@ExcelProperty(value = "进出账ID")
private Long financeId;
/**
* 名称
*/
@ExcelProperty(value = "名称")
private String detailTitle;
/**
* 金额
*/
@ExcelProperty(value = "金额")
private BigDecimal price;
/**
* 大写金额
*/
@ExcelProperty(value = "大写金额")
private String bigPrice;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,126 @@
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 com.ruoyi.oa.domain.SysOaDetail;
import com.ruoyi.oa.domain.SysOaProject;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* 进出账管理视图对象 sys_oa_finance
*
* @author huangxing
* @date 2024-01-17
*/
@Data
@ExcelIgnoreUnannotated
public class SysOaFinanceVo {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ExcelProperty(value = "ID")
private Long financeId;
/**
* 项目ID
*/
@ExcelProperty(value = "项目ID")
private Long projectId;
/**
* 账务名称
*/
@ExcelProperty(value = "账务名称")
private String financeTitle;
/**
* 经手人/付款方
*/
@ExcelProperty(value = "经手人/付款方")
private String financeParties;
/**
* 支付类型
*/
@ExcelProperty(value = "支付类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_pay_type")
private String payType;
/**
* 进出账类型
*/
@ExcelProperty(value = "进出账类型")
private String financeType;
/**
* 交易时间
*/
@ExcelProperty(value = "交易时间")
private Date financeTime;
/**
* 开票比例
*/
@ExcelProperty(value = "开票比例")
private String makeRatio;
/**
* 开票时间
*/
@ExcelProperty(value = "开票时间")
private String makeTime;
/**
* 开票金额
*/
@ExcelProperty(value = "开票金额")
private String makePrice;
/**
* 开票情况说明
*/
@ExcelProperty(value = "开票情况说明")
private String makeExplain;
/**
* 创建者
*/
@ExcelProperty(value = "创建者")
private String createBy;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间")
private Date createTime;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 一对一关联项目表
*/
private SysOaProject project;
/**
* 一对多关联进出账明细
*/
private List<SysOaDetail> detailList;
}

View File

@@ -0,0 +1,168 @@
package com.ruoyi.oa.domain.vo;
import java.math.BigDecimal;
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 java.util.Date;
/**
* 项目管理视图对象 sys_oa_project
*
* @author huangxing
* @date 2024-01-11
*/
@Data
@ExcelIgnoreUnannotated
public class SysOaProjectVo {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ExcelProperty(value = "ID")
private Long projectId;
/**
* 项目名称
*/
@ExcelProperty(value = "项目名称")
private String projectName;
/**
* 项目编号
*/
@ExcelProperty(value = "项目编号")
private String projectNum;
/**
* 项目类型
*/
@ExcelProperty(value = "项目类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_project_type")
private String projectType;
/**
* 项目地址
*/
@ExcelProperty(value = "项目地址")
private String address;
/**
* 项目总款
*/
@ExcelProperty(value = "项目总款")
private BigDecimal funds;
/**
* 项目负责人
*/
@ExcelProperty(value = "项目负责人")
private String functionary;
/**
* 开始日期
*/
@ExcelProperty(value = "开始日期")
private Date beginTime;
/**
* 结束日期
*/
@ExcelProperty(value = "结束日期")
private Date finishTime;
/**
* 交货期
*/
@ExcelProperty(value = "交货期")
private String delivery;
/**
* 质保期
*/
@ExcelProperty(value = "质保期")
private String guarantee;
/**
* 项目介绍
*/
@ExcelProperty(value = "项目介绍")
private String introduction;
/**
* 优先级
*/
@ExcelProperty(value = "优先级", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_sort_grade")
private String projectGrade;
/**
* 状态
*/
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_project_status")
private String projectStatus;
/**
* 合同ID
*/
@ExcelProperty(value = "关联合同", converter = ExcelDictConvert.class)
private Long contractId;
/**
* 开票名称
*/
@ExcelProperty(value = "开票名称")
private String invoiceName;
/**
* 纳税人识别号
*/
@ExcelProperty(value = "纳税人识别号")
private String invoiceNumber;
/**
* 地址电话
*/
@ExcelProperty(value = "地址电话")
private String invoiceAddress;
/**
* 开户行及账号
*/
@ExcelProperty(value = "开户行及账号")
private String invoiceBank;
/**
* 履约保证金
*/
@ExcelProperty(value = "履约保证金")
private String bail;
/**
* 附件
*/
@ExcelProperty(value = "附件")
private String accessory;
/**
* 创建者
*/
@ExcelProperty(value = "创建者")
private String createBy;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间")
private Date createTime;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,94 @@
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 java.util.Date;
/**
* 采购意向视图对象 sys_oa_purpose
*
* @author huangxing
* @date 2024-03-31
*/
@Data
@ExcelIgnoreUnannotated
public class SysOaPurposeVo {
private static final long serialVersionUID = 1L;
/**
* 项目id
*/
@ExcelProperty(value = "项目id")
private Long purposeId;
/**
* 项目名称
*/
@ExcelProperty(value = "项目名称")
private String purposeTitle;
/**
* 采购单位
*/
@ExcelProperty(value = "采购单位")
private String subhead;
/**
* 预算金额
*/
@ExcelProperty(value = "预算金额")
private String budget;
/**
* 采购需求情况
*/
@ExcelProperty(value = "采购需求情况")
private String content;
/**
* 预计采购时间
*/
@ExcelProperty(value = "预计采购时间")
private String purposeTime;
/**
* 是否投标
*/
@ExcelProperty(value = "是否投标", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_yes_no")
private String isBid;
/**
* 附件
*/
@ExcelProperty(value = "附件")
private String accessory;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 创建者
*/
@ExcelProperty(value = "创建者")
private String createBy;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间")
private Date createTime;
}

View File

@@ -0,0 +1,101 @@
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 java.util.Date;
/**
* 事件提醒视图对象 sys_oa_remind
*
* @author huangxing
* @date 2024-04-02
*/
@Data
@ExcelIgnoreUnannotated
public class SysOaRemindVo {
private static final long serialVersionUID = 1L;
/**
* 提醒ID
*/
@ExcelProperty(value = "提醒ID")
private Long remindId;
/**
* 提醒名称
*/
@ExcelProperty(value = "提醒名称")
private String taskTitle;
/**
* 事件内容
*/
@ExcelProperty(value = "事件内容")
private String content;
/**
* 办理时间
*/
@ExcelProperty(value = "办理时间")
private Date taskTime;
/**
* 办理状态
*/
@ExcelProperty(value = "办理状态")
private String taskStatus;
/**
* 办理情况
*/
@ExcelProperty(value = "办理情况")
private String manage;
/**
* 附件
*/
@ExcelProperty(value = "附件")
private String accessory;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 创建者
*/
@ExcelProperty(value = "创建者")
private String createBy;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间")
private Date createTime;
/**
* 修改者
*/
@ExcelProperty(value = "修改者")
private String updateBy;
/**
* 修改时间
*/
@ExcelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,106 @@
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 java.util.Date;
/**
* 任务管理视图对象 sys_oa_task
*
* @author huangxing
* @date 2024-01-11
*/
@Data
@ExcelIgnoreUnannotated
public class SysOaTaskVo {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ExcelProperty(value = "ID")
private Long taskId;
/**
* 项目ID
*/
@ExcelProperty(value = "项目ID")
private Long projectId;
/**
* 任务主题
*/
@ExcelProperty(value = "任务主题")
private String taskTitle;
/**
* 工作类型
*/
@ExcelProperty(value = "工作类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_work_type")
private String taskType;
/**
* 优先级
*/
@ExcelProperty(value = "优先级")
private String taskGrade;
/**
* 协作人员
*/
@ExcelProperty(value = "协作人员")
private String collaborator;
/**
* 开始时间
*/
@ExcelProperty(value = "开始时间")
private Date beginTime;
/**
* 结束时间
*/
@ExcelProperty(value = "结束时间")
private Date finishTime;
/**
* 详细描述
*/
@ExcelProperty(value = "详细描述")
private String content;
/**
* 附件
*/
@ExcelProperty(value = "附件")
private String accessory;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 创建者
*/
@ExcelProperty(value = "创建者")
private String createBy;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间")
private Date createTime;
}

View File

@@ -0,0 +1,30 @@
package com.ruoyi.oa.listener;
import com.ruoyi.oa.config.ContextUtil;
import com.ruoyi.oa.domain.bo.SysOaContractBo;
import com.ruoyi.oa.service.ISysOaContractService;
import com.ruoyi.oa.service.impl.SysOaContractServiceImpl;
import org.flowable.engine.delegate.TaskListener;
import org.flowable.task.service.delegate.DelegateTask;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
public class ContractListener implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
if (EVENTNAME_COMPLETE.equals(delegateTask.getEventName())){
System.out.println("--- 任务完成 ---");
Map<String, Object> variables = delegateTask.getVariables();
SysOaContractBo sysOaContractBo = new SysOaContractBo();
sysOaContractBo.setContractName(variables.get("contract_name").toString());
sysOaContractBo.setContractNum(variables.get("contract_no").toString());
sysOaContractBo.setFirstName(variables.get("first_name").toString());
sysOaContractBo.setSecondName(variables.get("second_name").toString());
sysOaContractBo.setRemark(variables.get("remark").toString());
ISysOaContractService oaContractService = ContextUtil.getBean(SysOaContractServiceImpl.class);
oaContractService.insertByBo(sysOaContractBo);
}
}
}

View File

@@ -0,0 +1,38 @@
package com.ruoyi.oa.listener;
import ch.qos.logback.core.util.ContextUtil;
import com.ruoyi.oa.domain.bo.SysOaContractBo;
import com.ruoyi.oa.service.ISysOaContractService;
import com.ruoyi.oa.service.impl.SysOaBidServiceImpl;
import lombok.AllArgsConstructor;
import org.flowable.engine.ProcessEngine;
import org.flowable.engine.ProcessEngines;
import org.flowable.engine.TaskService;
import org.flowable.engine.delegate.TaskListener;
import org.flowable.task.service.delegate.DelegateTask;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component(value = "contractTaskListener")
@AllArgsConstructor
public class ContractTaskListener implements TaskListener {
// private final ISysOaContractService sysOaContractService;
@Override
public void notify(DelegateTask delegateTask) {
//TODO 实现你的任务监听器逻辑
System.out.println("执行任务监听器...");
System.out.println("delegateTask===" + delegateTask.getId());
Map<String, Object> variables = delegateTask.getVariables();
System.out.println("SysOaContractBo===" + variables);
// sysOaContractService.inserByProcess(variables);
}
}

View File

@@ -0,0 +1,81 @@
package com.ruoyi.oa.listener;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.oa.config.ContextUtil;
import com.ruoyi.oa.domain.bo.SysOaBidBo;
import com.ruoyi.oa.service.impl.SysOaBidServiceImpl;
import org.flowable.engine.delegate.TaskListener;
import org.flowable.task.service.delegate.DelegateTask;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@Component
public class saveBidFormListener implements TaskListener {
public void notify(DelegateTask delegateTask) {
//TODO 实现你的任务监听器逻辑
System.out.println("执行任务监听器..." + delegateTask.getVariables());
if (EVENTNAME_COMPLETE.equals(delegateTask.getEventName())) {
Map<String, Object> variables = delegateTask.getVariables();
SysOaBidBo sysOaBidBo = new SysOaBidBo();
sysOaBidBo.setBidTitle(variables.get("project_name").toString());
sysOaBidBo.setBidNumber(variables.get("project_num").toString());
sysOaBidBo.setBidType(variables.get("project_mode").toString());
// sysOaBidBo.setBudget(new BigDecimal(variables.get("budget").toString()));
sysOaBidBo.setBudget(variables.get("budget").toString());
sysOaBidBo.setPackageInfo(variables.get("package_info").toString());
//字符串转日期
/* LocalDate releaseTime = LocalDate.parse(variables.get("release_time").toString(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
ZonedDateTime zonedDateTime = releaseTime.atStartOfDay(ZoneId.systemDefault());
sysOaBidBo.setNoticeTime(Date.from(zonedDateTime.toInstant()));*/
sysOaBidBo.setNoticeTime(variables.get("release_time").toString());
sysOaBidBo.setDeadline(variables.get("range_time").toString());
sysOaBidBo.setSignType(variables.get("sign_type").toString());
sysOaBidBo.setPatternFile(variables.get("pattern_file").toString());
//字符串转日期
/*LocalDate release = LocalDate.parse(variables.get("start_time").toString(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
ZonedDateTime zonedDate = release.atStartOfDay(ZoneId.systemDefault());*/
sysOaBidBo.setExpirationTime(variables.get("start_time").toString());
sysOaBidBo.setBidAddress(variables.get("address").toString());
sysOaBidBo.setClientName(variables.get("client_name").toString());
sysOaBidBo.setAgency(variables.get("agency").toString());
sysOaBidBo.setDocument(variables.get("document_price").toString());
// 递归获取Object的value值
Object attachment1 = variables.get("attachment");
//借鉴https://blog.csdn.net/weixin_30608131/article/details/95453992
List<String> list = new ArrayList<>();
if(attachment1 instanceof List){
for(int i=0; i<((List) attachment1).size(); i++){
//得到对象数组里的对象值
Object set = ((List) attachment1).set(i, ((List) attachment1).get(i));
//对象转json
String s = JSONObject.toJSONString(set);
//json转对象
JSONObject jsonObjects = JSON.parseObject(s);
//对象添加到list数组
list.add(jsonObjects.get("ossId").toString());
}
}
String collect = list.stream().collect(Collectors.joining(","));
sysOaBidBo.setAccessory(collect);
if(variables.get("remark") != null){
sysOaBidBo.setRemark(variables.get("remark").toString());
}
SysOaBidServiceImpl sysOaBidService = ContextUtil.getBean(SysOaBidServiceImpl.class);
sysOaBidService.insertByBo(sysOaBidBo);
}
}
}

View File

@@ -0,0 +1,34 @@
package com.ruoyi.oa.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.annotation.DataColumn;
import com.ruoyi.common.annotation.DataPermission;
import com.ruoyi.oa.domain.SysOaArticle;
import com.ruoyi.oa.domain.SysOaFinance;
import com.ruoyi.oa.domain.vo.SysOaArticleVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.oa.domain.vo.SysOaFinanceVo;
import org.apache.ibatis.annotations.Param;
/**
* 知识管理Mapper接口
*
* @author huangxing
* @date 2024-01-17
*/
public interface SysOaArticleMapper extends BaseMapperPlus<SysOaArticleMapper, SysOaArticle, SysOaArticleVo> {
@DataPermission({
@DataColumn(key = "categoryName", value = "c.category_id"),
@DataColumn(key = "articleTitle", value = "a.article_id")
})
Page<SysOaArticleVo> selectArticlePageList(@Param("page") Page<SysOaArticle> page, @Param(Constants.WRAPPER)Wrapper<SysOaArticle> queryWrapper);
SysOaArticle selectArticleById(Long articleId);
}

View File

@@ -0,0 +1,15 @@
package com.ruoyi.oa.mapper;
import com.ruoyi.oa.domain.SysOaBid;
import com.ruoyi.oa.domain.vo.SysOaBidVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
/**
* 投标管理Mapper接口
*
* @author huangxing
* @date 2024-02-23
*/
public interface SysOaBidMapper extends BaseMapperPlus<SysOaBidMapper, SysOaBid, SysOaBidVo> {
}

View File

@@ -0,0 +1,15 @@
package com.ruoyi.oa.mapper;
import com.ruoyi.oa.domain.SysOaCategory;
import com.ruoyi.oa.domain.vo.SysOaCategoryVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
/**
* 知识分类Mapper接口
*
* @author huangxing
* @date 2024-01-17
*/
public interface SysOaCategoryMapper extends BaseMapperPlus<SysOaCategoryMapper, SysOaCategory, SysOaCategoryVo> {
}

View File

@@ -0,0 +1,17 @@
package com.ruoyi.oa.mapper;
import com.ruoyi.oa.domain.SysOaContract;
import com.ruoyi.oa.domain.vo.SysOaContractVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Mapper;
/**
* 合同管理Mapper接口
*
* @author huangxing
* @date 2024-01-10
*/
@Mapper
public interface SysOaContractMapper extends BaseMapperPlus<SysOaContractMapper, SysOaContract, SysOaContractVo> {
}

View File

@@ -0,0 +1,33 @@
package com.ruoyi.oa.mapper;
import com.ruoyi.oa.domain.SysOaDetail;
import com.ruoyi.oa.domain.vo.SysOaDetailVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import java.util.List;
/**
* 进出账明细Mapper接口
*
* @author huangxing
* @date 2024-01-17
*/
public interface SysOaDetailMapper extends BaseMapperPlus<SysOaDetailMapper, SysOaDetail, SysOaDetailVo> {
/**
* 批量删除明细表
*
* @param financeId 需要删除的数据主键集合
* @return 结果
*/
int deleteSysOaDetailByfinanceId(Long financeId);
/**
* 批量插入明细数据
* @param sysOaDetails 明细列表
* @return
*/
int batchSysOaDetail(List<SysOaDetail> sysOaDetails);
}

View File

@@ -0,0 +1,74 @@
package com.ruoyi.oa.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.annotation.DataColumn;
import com.ruoyi.common.annotation.DataPermission;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.oa.domain.SysOaFinance;
import com.ruoyi.oa.domain.bo.SysOaFinanceBo;
import com.ruoyi.oa.domain.vo.SysOaFinanceVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 进出账管理Mapper接口
*
* @author huangxing
* @date 2024-01-17
*/
public interface SysOaFinanceMapper extends BaseMapperPlus<SysOaFinanceMapper, SysOaFinance, SysOaFinanceVo> {
/**
* 根据条件分页查询进出账列表
* @param page
* @param queryWrapper
* @return
*/
@DataPermission({
@DataColumn(key = "detailTitle", value = "b.detail_id"),
@DataColumn(key = "financeTitle", value = "a.finance_id")
})
Page<SysOaFinanceVo> selectPageFinanceList(@Param("page") Page<SysOaFinanceVo> page, @Param(Constants.WRAPPER) Wrapper<SysOaFinance> queryWrapper);
/**
* 项目进出账查询
* @param page
* @param queryWrapper
* @return
*/
Page<SysOaFinanceVo> selectFinanceList(@Param("page") Page<SysOaFinanceVo> page, @Param(Constants.WRAPPER) Wrapper<SysOaFinance> queryWrapper);
/**
* 关联查询根据主表id查询
* @param financeId
* @return
*/
SysOaFinance selectFinanceById(Long financeId);
List<SysOaFinance> selectFinanceByProjectId(SysOaFinanceBo bo);
/**
* 根据时间范围查询列表数据
* @param params
* @return
*/
List<SysOaFinance> findFinanceByTime(Map params);
/**
* 项目资金管理,根据时间范围查询列表数据
* @param params
* @return
*/
// List<SysOaFinance> findFinanceByTimeAndProjectId(Map params);
}

View File

@@ -0,0 +1,15 @@
package com.ruoyi.oa.mapper;
import com.ruoyi.oa.domain.SysOaProject;
import com.ruoyi.oa.domain.vo.SysOaProjectVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
/**
* 项目管理Mapper接口
*
* @author huangxing
* @date 2024-01-11
*/
public interface SysOaProjectMapper extends BaseMapperPlus<SysOaProjectMapper, SysOaProject, SysOaProjectVo> {
}

View File

@@ -0,0 +1,15 @@
package com.ruoyi.oa.mapper;
import com.ruoyi.oa.domain.SysOaPurpose;
import com.ruoyi.oa.domain.vo.SysOaPurposeVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
/**
* 采购意向Mapper接口
*
* @author huangxing
* @date 2024-03-31
*/
public interface SysOaPurposeMapper extends BaseMapperPlus<SysOaPurposeMapper, SysOaPurpose, SysOaPurposeVo> {
}

View File

@@ -0,0 +1,15 @@
package com.ruoyi.oa.mapper;
import com.ruoyi.oa.domain.SysOaRemind;
import com.ruoyi.oa.domain.vo.SysOaRemindVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
/**
* 事件提醒Mapper接口
*
* @author huangxing
* @date 2024-04-02
*/
public interface SysOaRemindMapper extends BaseMapperPlus<SysOaRemindMapper, SysOaRemind, SysOaRemindVo> {
}

View File

@@ -0,0 +1,23 @@
package com.ruoyi.oa.mapper;
import com.ruoyi.oa.domain.SysOaTask;
import com.ruoyi.oa.domain.vo.SysOaTaskVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
/**
* 任务管理Mapper接口
*
* @author huangxing
* @date 2024-01-11
*/
public interface SysOaTaskMapper extends BaseMapperPlus<SysOaTaskMapper, SysOaTask, SysOaTaskVo> {
/**
* 批量删除
*
* @param projectId 需要删除的数据主键集合
* @return 结果
*/
int deleteSysOaTaskByProjectId(Long projectId);
}

View File

@@ -0,0 +1,52 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.SysOaArticle;
import com.ruoyi.oa.domain.vo.SysOaArticleVo;
import com.ruoyi.oa.domain.bo.SysOaArticleBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 知识管理Service接口
*
* @author huangxing
* @date 2024-01-17
*/
public interface ISysOaArticleService {
/**
* 查询知识管理
*/
SysOaArticle selectArticleById(Long articleId);
/**
* 查询知识管理列表
*/
TableDataInfo<SysOaArticleVo> queryPageList(SysOaArticleBo bo, PageQuery pageQuery);
/**
* 查询知识管理列表
*/
List<SysOaArticleVo> queryList(SysOaArticleBo bo);
TableDataInfo<SysOaArticleVo> selectArticlePageList(SysOaArticleBo bo, PageQuery pageQuery);
/**
* 新增知识管理
*/
Boolean insertByBo(SysOaArticleBo bo);
/**
* 修改知识管理
*/
Boolean updateByBo(SysOaArticleBo bo);
/**
* 校验并批量删除知识管理信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.SysOaBid;
import com.ruoyi.oa.domain.vo.SysOaBidVo;
import com.ruoyi.oa.domain.bo.SysOaBidBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 投标管理Service接口
*
* @author huangxing
* @date 2024-02-23
*/
public interface ISysOaBidService {
/**
* 查询投标管理
*/
SysOaBidVo queryById(Long bidId);
/**
* 查询投标管理列表
*/
TableDataInfo<SysOaBidVo> queryPageList(SysOaBidBo bo, PageQuery pageQuery);
/**
* 查询投标管理列表
*/
List<SysOaBidVo> queryList(SysOaBidBo bo);
/**
* 新增投标管理
*/
Boolean insertByBo(SysOaBidBo bo);
/**
* 修改投标管理
*/
Boolean updateByBo(SysOaBidBo bo);
/**
* 校验并批量删除投标管理信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,43 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.SysOaCategory;
import com.ruoyi.oa.domain.vo.SysOaCategoryVo;
import com.ruoyi.oa.domain.bo.SysOaCategoryBo;
import java.util.Collection;
import java.util.List;
/**
* 知识分类Service接口
*
* @author huangxing
* @date 2024-01-17
*/
public interface ISysOaCategoryService {
/**
* 查询知识分类
*/
SysOaCategoryVo queryById(Long categoryId);
/**
* 查询知识分类列表
*/
List<SysOaCategoryVo> queryList(SysOaCategoryBo bo);
/**
* 新增知识分类
*/
Boolean insertByBo(SysOaCategoryBo bo);
/**
* 修改知识分类
*/
Boolean updateByBo(SysOaCategoryBo bo);
/**
* 校验并批量删除知识分类信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,71 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.SysOaContract;
import com.ruoyi.oa.domain.vo.SysOaContractVo;
import com.ruoyi.oa.domain.bo.SysOaContractBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 合同管理Service接口
*
* @author huangxing
* @date 2024-01-10
*/
public interface ISysOaContractService {
/**
* 查询合同管理
*/
SysOaContractVo queryById(Long contractId);
/**
* 查询合同管理列表
*/
TableDataInfo<SysOaContractVo> queryPageList(SysOaContractBo bo, PageQuery pageQuery);
/**
* 查询合同管理列表
*/
List<SysOaContractVo> queryList(SysOaContractBo bo);
/**
* 根据项目id查询合同管理
* @param bo
* @return
*/
SysOaContractVo findContractByProjectId(SysOaContractBo bo);
/**
* 根据项目id查询合同列表
* @param bo
* @return
*/
List<SysOaContractVo> selectContractByProjectId(SysOaContractBo bo);
/**
* 新增合同管理
*/
Boolean insertByBo(SysOaContractBo bo);
/**
* 合同流程结束自动保存
* @param param
* @return
*/
void inserByProcess(Map<String, Object> param);
/**
* 修改合同管理
*/
Boolean updateByBo(SysOaContractBo bo);
/**
* 校验并批量删除合同管理信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.SysOaDetail;
import com.ruoyi.oa.domain.vo.SysOaDetailVo;
import com.ruoyi.oa.domain.bo.SysOaDetailBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 进出账明细Service接口
*
* @author huangxing
* @date 2024-01-17
*/
public interface ISysOaDetailService {
/**
* 查询进出账明细
*/
SysOaDetailVo queryById(Long detailId);
/**
* 查询进出账明细列表
*/
TableDataInfo<SysOaDetailVo> queryPageList(SysOaDetailBo bo, PageQuery pageQuery);
/**
* 查询进出账明细列表
*/
List<SysOaDetailVo> queryList(SysOaDetailBo bo);
/**
* 新增进出账明细
*/
Boolean insertByBo(SysOaDetailBo bo);
/**
* 修改进出账明细
*/
Boolean updateByBo(SysOaDetailBo bo);
/**
* 校验并批量删除进出账明细信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,92 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.SysOaFinance;
import com.ruoyi.oa.domain.vo.SysOaFinanceVo;
import com.ruoyi.oa.domain.bo.SysOaFinanceBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 进出账管理Service接口
*
* @author huangxing
* @date 2024-01-17
*/
public interface ISysOaFinanceService {
/**
* 根据分页查询列表
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<SysOaFinanceVo> selectPageFinanceList(SysOaFinanceBo bo, PageQuery pageQuery);
/**
* 项目进出账查询
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<SysOaFinanceVo> selectFinanceList(SysOaFinanceBo bo, PageQuery pageQuery);
/**
* 根据id查询详细信息
* @param financeId
* @return
*/
SysOaFinance selectFinanceById(Long financeId);
BigDecimal selectFinanceByProjectId(SysOaFinanceBo bo);
/**
* 查询进出账管理
*/
SysOaFinanceVo queryById(Long financeId);
/**
* 查询进出账管理列表
*/
TableDataInfo<SysOaFinanceVo> queryPageList(SysOaFinanceBo bo, PageQuery pageQuery);
/**
* 查询进出账管理列表
*/
List<SysOaFinanceVo> queryList(SysOaFinanceBo bo);
/**
* 根据时间范围查询列表
*/
BigDecimal findFinanceByTime(SysOaFinanceBo bo, Map paramsMap);
/**
* 新增进出账管理
*/
Boolean insertByBo(SysOaFinanceBo bo);
/**
* 修改进出账管理
*/
Boolean updateByBo(SysOaFinanceBo bo);
/**
* 校验并批量删除进出账管理信息
*/
// Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 根据id删除单条数据并删除关联数据
* @param financeId
* @return
*/
Boolean deleteSysOaFinanceById(Long financeId);
}

View File

@@ -0,0 +1,49 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.SysOaProject;
import com.ruoyi.oa.domain.vo.SysOaProjectVo;
import com.ruoyi.oa.domain.bo.SysOaProjectBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 项目管理Service接口
*
* @author huangxing
* @date 2024-01-11
*/
public interface ISysOaProjectService {
/**
* 查询项目管理
*/
SysOaProjectVo queryById(Long projectId);
/**
* 查询项目管理列表
*/
TableDataInfo<SysOaProjectVo> queryPageList(SysOaProjectBo bo, PageQuery pageQuery);
/**
* 查询项目管理列表
*/
List<SysOaProjectVo> queryList(SysOaProjectBo bo);
/**
* 新增项目管理
*/
Boolean insertByBo(SysOaProjectBo bo);
/**
* 修改项目管理
*/
Boolean updateByBo(SysOaProjectBo bo);
/**
* 校验并批量删除项目管理信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.SysOaPurpose;
import com.ruoyi.oa.domain.vo.SysOaPurposeVo;
import com.ruoyi.oa.domain.bo.SysOaPurposeBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 采购意向Service接口
*
* @author huangxing
* @date 2024-03-31
*/
public interface ISysOaPurposeService {
/**
* 查询采购意向
*/
SysOaPurposeVo queryById(Long purposeId);
/**
* 查询采购意向列表
*/
TableDataInfo<SysOaPurposeVo> queryPageList(SysOaPurposeBo bo, PageQuery pageQuery);
/**
* 查询采购意向列表
*/
List<SysOaPurposeVo> queryList(SysOaPurposeBo bo);
/**
* 新增采购意向
*/
Boolean insertByBo(SysOaPurposeBo bo);
/**
* 修改采购意向
*/
Boolean updateByBo(SysOaPurposeBo bo);
/**
* 校验并批量删除采购意向信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,60 @@
package com.ruoyi.oa.service;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.oa.domain.SysOaRemind;
import com.ruoyi.oa.domain.vo.SysOaRemindVo;
import com.ruoyi.oa.domain.bo.SysOaRemindBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 事件提醒Service接口
*
* @author huangxing
* @date 2024-04-02
*/
public interface ISysOaRemindService {
/**
* 查询事件提醒
*/
SysOaRemindVo queryById(Long remindId);
/**
* 查询代办事件列表
* @param bo
* @return
*/
R<List<SysOaRemindVo>> queryRemindList(SysOaRemindBo bo);
Long queryRemindCount(SysOaRemindBo bo);
/**
* 查询事件提醒列表
*/
TableDataInfo<SysOaRemindVo> queryPageList(SysOaRemindBo bo, PageQuery pageQuery);
/**
* 查询事件提醒列表
*/
List<SysOaRemindVo> queryList(SysOaRemindBo bo);
/**
* 新增事件提醒
*/
Boolean insertByBo(SysOaRemindBo bo);
/**
* 修改事件提醒
*/
Boolean updateByBo(SysOaRemindBo bo);
/**
* 校验并批量删除事件提醒信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,64 @@
package com.ruoyi.oa.service;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.oa.domain.SysOaTask;
import com.ruoyi.oa.domain.vo.SysOaTaskVo;
import com.ruoyi.oa.domain.bo.SysOaTaskBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 任务管理Service接口
*
* @author huangxing
* @date 2024-01-11
*/
public interface ISysOaTaskService {
/**
* 查询任务管理
*/
SysOaTaskVo queryById(Long taskId);
/**
* 查询任务管理列表
*/
TableDataInfo<SysOaTaskVo> queryPageList(SysOaTaskBo bo, PageQuery pageQuery);
/**
* 查询任务管理列表
*/
List<SysOaTaskVo> queryList(SysOaTaskBo bo);
/****
* 据工作类型字典查询任务列表
* @param pid
* @return
*/
R queryTaskByDictList(Long pid);
/**
* 根据工作类型查询列表
* @param bo
* @return
*/
List<SysOaTaskVo> queryListByType(SysOaTaskBo bo);
/**
* 新增任务管理
*/
Boolean insertByBo(SysOaTaskBo bo);
/**
* 修改任务管理
*/
Boolean updateByBo(SysOaTaskBo bo);
/**
* 校验并批量删除任务管理信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,137 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.SysOaCategory;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.ruoyi.oa.domain.bo.SysOaArticleBo;
import com.ruoyi.oa.domain.vo.SysOaArticleVo;
import com.ruoyi.oa.domain.SysOaArticle;
import com.ruoyi.oa.mapper.SysOaArticleMapper;
import com.ruoyi.oa.service.ISysOaArticleService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 知识管理Service业务层处理
*
* @author huangxing
* @date 2024-01-17
*/
@RequiredArgsConstructor
@Service
public class SysOaArticleServiceImpl implements ISysOaArticleService {
private final SysOaArticleMapper baseMapper;
/**
* 查询知识管理
*/
@Override
public SysOaArticle selectArticleById(Long articleId){
SysOaArticle sysOaArticleInfo = baseMapper.selectArticleById(articleId);
//更新阅读数量
SysOaArticleBo sysOaArticleBo = new SysOaArticleBo();
sysOaArticleBo.setArticleId(articleId);
sysOaArticleBo.setCheckNum(sysOaArticleInfo.getCheckNum() + 1);
this.updateByBo(sysOaArticleBo);
return sysOaArticleInfo;
}
/**
* 查询知识管理列表
*/
@Override
public TableDataInfo<SysOaArticleVo> queryPageList(SysOaArticleBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SysOaArticle> lqw = buildQueryWrapper(bo);
Page<SysOaArticleVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 自定义-查询知识管理列表
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<SysOaArticleVo> selectArticlePageList(SysOaArticleBo bo, PageQuery pageQuery){
LambdaQueryWrapper<SysOaArticle> lqw = buildQueryWrapper(bo);
Page<SysOaArticleVo> articlePageList = baseMapper.selectArticlePageList(pageQuery.build(), lqw);
System.out.println(articlePageList);
return TableDataInfo.build(articlePageList);
}
/**
* 查询知识管理列表
*/
@Override
public List<SysOaArticleVo> queryList(SysOaArticleBo bo) {
LambdaQueryWrapper<SysOaArticle> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<SysOaArticle> buildQueryWrapper(SysOaArticleBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOaArticle> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getCategoryId() != null, SysOaArticle::getCategoryId, bo.getCategoryId());
lqw.eq(StringUtils.isNotBlank(bo.getArticleTitle()), SysOaArticle::getArticleTitle, bo.getArticleTitle());
lqw.orderByDesc(SysOaArticle::getCreateTime);
return lqw;
}
/**
* 新增知识管理
*/
@Override
public Boolean insertByBo(SysOaArticleBo bo) {
SysOaArticle add = BeanUtil.toBean(bo, SysOaArticle.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setArticleId(add.getArticleId());
}
return flag;
}
/**
* 修改知识管理
*/
@Override
public Boolean updateByBo(SysOaArticleBo bo) {
SysOaArticle update = BeanUtil.toBean(bo, SysOaArticle.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SysOaArticle entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除知识管理
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,116 @@
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.SysOaProject;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.ruoyi.oa.domain.bo.SysOaBidBo;
import com.ruoyi.oa.domain.vo.SysOaBidVo;
import com.ruoyi.oa.domain.SysOaBid;
import com.ruoyi.oa.mapper.SysOaBidMapper;
import com.ruoyi.oa.service.ISysOaBidService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 投标管理Service业务层处理
*
* @author huangxing
* @date 2024-02-23
*/
@RequiredArgsConstructor
@Service
public class SysOaBidServiceImpl implements ISysOaBidService {
private final SysOaBidMapper baseMapper;
/**
* 查询投标管理
*/
@Override
public SysOaBidVo queryById(Long bidId){
return baseMapper.selectVoById(bidId);
}
/**
* 查询投标管理列表
*/
@Override
public TableDataInfo<SysOaBidVo> queryPageList(SysOaBidBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SysOaBid> lqw = buildQueryWrapper(bo);
Page<SysOaBidVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询投标管理列表
*/
@Override
public List<SysOaBidVo> queryList(SysOaBidBo bo) {
LambdaQueryWrapper<SysOaBid> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<SysOaBid> buildQueryWrapper(SysOaBidBo bo) {
Map<String, Object> params = bo.getParams();
// System.out.println("params===123==" + params);
LambdaQueryWrapper<SysOaBid> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getBidTitle()), SysOaBid::getBidTitle, bo.getBidTitle());
lqw.eq(StringUtils.isNotBlank(bo.getBidNumber()), SysOaBid::getBidNumber, bo.getBidNumber());
lqw.eq(StringUtils.isNotBlank(bo.getIsWin()), SysOaBid::getIsWin, bo.getIsWin());
lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
SysOaBid::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"));
lqw.orderByDesc(SysOaBid::getCreateTime);
return lqw;
}
/**
* 新增投标管理
*/
@Override
public Boolean insertByBo(SysOaBidBo bo) {
SysOaBid add = BeanUtil.toBean(bo, SysOaBid.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setBidId(add.getBidId());
}
return flag;
}
/**
* 修改投标管理
*/
@Override
public Boolean updateByBo(SysOaBidBo bo) {
SysOaBid update = BeanUtil.toBean(bo, SysOaBid.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SysOaBid entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除投标管理
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,100 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.oa.domain.SysOaTask;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.ruoyi.oa.domain.bo.SysOaCategoryBo;
import com.ruoyi.oa.domain.vo.SysOaCategoryVo;
import com.ruoyi.oa.domain.SysOaCategory;
import com.ruoyi.oa.mapper.SysOaCategoryMapper;
import com.ruoyi.oa.service.ISysOaCategoryService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 知识分类Service业务层处理
*
* @author huangxing
* @date 2024-01-17
*/
@RequiredArgsConstructor
@Service
public class SysOaCategoryServiceImpl implements ISysOaCategoryService {
private final SysOaCategoryMapper baseMapper;
/**
* 查询知识分类
*/
@Override
public SysOaCategoryVo queryById(Long categoryId){
return baseMapper.selectVoById(categoryId);
}
/**
* 查询知识分类列表
*/
@Override
public List<SysOaCategoryVo> queryList(SysOaCategoryBo bo) {
LambdaQueryWrapper<SysOaCategory> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<SysOaCategory> buildQueryWrapper(SysOaCategoryBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOaCategory> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getCategoryName()), SysOaCategory::getCategoryName, bo.getCategoryName());
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysOaCategory::getStatus, bo.getStatus());
lqw.orderByDesc(SysOaCategory::getCreateTime);
return lqw;
}
/**
* 新增知识分类
*/
@Override
public Boolean insertByBo(SysOaCategoryBo bo) {
SysOaCategory add = BeanUtil.toBean(bo, SysOaCategory.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setCategoryId(add.getCategoryId());
}
return flag;
}
/**
* 修改知识分类
*/
@Override
public Boolean updateByBo(SysOaCategoryBo bo) {
SysOaCategory update = BeanUtil.toBean(bo, SysOaCategory.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SysOaCategory entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除知识分类
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,167 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.core.domain.R;
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.SysOaBid;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.oa.domain.bo.SysOaContractBo;
import com.ruoyi.oa.domain.vo.SysOaContractVo;
import com.ruoyi.oa.domain.SysOaContract;
import com.ruoyi.oa.mapper.SysOaContractMapper;
import com.ruoyi.oa.service.ISysOaContractService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 合同管理Service业务层处理
*
* @author huangxing
* @date 2024-01-10
*/
@RequiredArgsConstructor
@Service
public class SysOaContractServiceImpl implements ISysOaContractService {
@Autowired
private SysOaContractMapper contractMapper;
/**
* 查询合同管理
*/
@Override
public SysOaContractVo queryById(Long contractId){
return contractMapper.selectVoById(contractId);
}
/**
* 查询合同管理列表
*/
@Override
public TableDataInfo<SysOaContractVo> queryPageList(SysOaContractBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SysOaContract> lqw = buildQueryWrapper(bo);
Page<SysOaContractVo> result = contractMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询合同管理列表
*/
@Override
public List<SysOaContractVo> queryList(SysOaContractBo bo) {
LambdaQueryWrapper<SysOaContract> lqw = buildQueryWrapper(bo);
return contractMapper.selectVoList(lqw);
}
/**
* 根据项目id查询合同
* @param bo
* @return
*/
@Override
public SysOaContractVo findContractByProjectId(SysOaContractBo bo){
LambdaQueryWrapper<SysOaContract> sysOaContractLambdaQueryWrapper = buildContractWrapper(bo);
return contractMapper.selectVoOne(sysOaContractLambdaQueryWrapper);
}
/**
* 根据项目id查询合同列表
* @param bo
* @return
*/
@Override
public List<SysOaContractVo> selectContractByProjectId(SysOaContractBo bo){
LambdaQueryWrapper<SysOaContract> sysOaContractLambdaQueryWrapper = buildContractWrapper(bo); ;
return contractMapper.selectVoList(sysOaContractLambdaQueryWrapper);
}
private LambdaQueryWrapper<SysOaContract> buildQueryWrapper(SysOaContractBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOaContract> lqw = Wrappers.lambdaQuery();
lqw.eq(SysOaContract::getContractType, '0');
lqw.eq(StringUtils.isNotBlank(bo.getContractNum()), SysOaContract::getContractNum, bo.getContractNum());
lqw.like(StringUtils.isNotBlank(bo.getContractName()), SysOaContract::getContractName, bo.getContractName());
lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
SysOaContract::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"));
lqw.orderByDesc(SysOaContract::getCreateTime);
return lqw;
}
private LambdaQueryWrapper<SysOaContract> buildContractWrapper(SysOaContractBo bo) {
LambdaQueryWrapper<SysOaContract> lqw = Wrappers.lambdaQuery();
lqw.eq(SysOaContract::getProjectId, bo.getProjectId());
lqw.eq(SysOaContract::getContractType, bo.getContractType());
return lqw;
}
/**
* 新增合同管理
*/
@Override
public Boolean insertByBo(SysOaContractBo bo) {
SysOaContract add = BeanUtil.toBean(bo, SysOaContract.class);
validEntityBeforeSave(add);
boolean flag = contractMapper.insert(add) > 0;
if (flag) {
bo.setContractId(add.getContractId());
}
return flag;
}
/**
* 合同流程结束自动保存
* @param param
* @return
*/
@Override
public void inserByProcess(Map<String, Object> param){
System.out.println("map=====" + param);
/*if(param.size() > 0){
return true;
}else {
return false;
}*/
}
/**
* 修改合同管理
*/
@Override
public Boolean updateByBo(SysOaContractBo bo) {
SysOaContract update = BeanUtil.toBean(bo, SysOaContract.class);
validEntityBeforeSave(update);
return contractMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SysOaContract entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除合同管理
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return contractMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,110 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.ruoyi.oa.domain.bo.SysOaDetailBo;
import com.ruoyi.oa.domain.vo.SysOaDetailVo;
import com.ruoyi.oa.domain.SysOaDetail;
import com.ruoyi.oa.mapper.SysOaDetailMapper;
import com.ruoyi.oa.service.ISysOaDetailService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 进出账明细Service业务层处理
*
* @author huangxing
* @date 2024-01-17
*/
@RequiredArgsConstructor
@Service
public class SysOaDetailServiceImpl implements ISysOaDetailService {
private final SysOaDetailMapper baseMapper;
/**
* 查询进出账明细
*/
@Override
public SysOaDetailVo queryById(Long detailId){
return baseMapper.selectVoById(detailId);
}
/**
* 查询进出账明细列表
*/
@Override
public TableDataInfo<SysOaDetailVo> queryPageList(SysOaDetailBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SysOaDetail> lqw = buildQueryWrapper(bo);
Page<SysOaDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询进出账明细列表
*/
@Override
public List<SysOaDetailVo> queryList(SysOaDetailBo bo) {
LambdaQueryWrapper<SysOaDetail> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<SysOaDetail> buildQueryWrapper(SysOaDetailBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOaDetail> lqw = Wrappers.lambdaQuery();
// lqw.eq(bo.getFinanceId() != null, SysOaDetail::getFinanceId, bo.getFinanceId());
lqw.eq(StringUtils.isNotBlank(bo.getDetailTitle()), SysOaDetail::getDetailTitle, bo.getDetailTitle());
return lqw;
}
/**
* 新增进出账明细
*/
@Override
public Boolean insertByBo(SysOaDetailBo bo) {
SysOaDetail add = BeanUtil.toBean(bo, SysOaDetail.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setDetailId(add.getDetailId());
}
return flag;
}
/**
* 修改进出账明细
*/
@Override
public Boolean updateByBo(SysOaDetailBo bo) {
SysOaDetail update = BeanUtil.toBean(bo, SysOaDetail.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SysOaDetail entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除进出账明细
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,276 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.core.domain.entity.SysUser;
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.config.ContextUtil;
import com.ruoyi.oa.domain.SysOaDetail;
import com.ruoyi.oa.domain.bo.SysOaDetailBo;
import com.ruoyi.oa.mapper.SysOaDetailMapper;
import lombok.RequiredArgsConstructor;
import org.apache.ibatis.javassist.runtime.Desc;
import org.springframework.stereotype.Service;
import com.ruoyi.oa.domain.bo.SysOaFinanceBo;
import com.ruoyi.oa.domain.vo.SysOaFinanceVo;
import com.ruoyi.oa.domain.SysOaFinance;
import com.ruoyi.oa.mapper.SysOaFinanceMapper;
import com.ruoyi.oa.service.ISysOaFinanceService;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 进出账管理Service业务层处理
*
* @author huangxing
* @date 2024-01-17
*/
@RequiredArgsConstructor
@Service
public class SysOaFinanceServiceImpl implements ISysOaFinanceService {
private final SysOaFinanceMapper baseMapper;
private final SysOaDetailMapper sysOaDetailMapper;
/**
* 关联进出账明细查询列表
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<SysOaFinanceVo> selectPageFinanceList(SysOaFinanceBo bo, PageQuery pageQuery) {
Page<SysOaFinanceVo> sysOaFinanceVoPage = baseMapper.selectPageFinanceList(pageQuery.build(), this.buildQueryWrapper(bo));
return TableDataInfo.build(sysOaFinanceVoPage);
}
/**
* 项目进出账查询
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<SysOaFinanceVo> selectFinanceList(SysOaFinanceBo bo, PageQuery pageQuery) {
Page<SysOaFinanceVo> sysOaFinanceVoList = baseMapper.selectFinanceList(pageQuery.build(), this.buildQueryWrapperByFinance(bo));
return TableDataInfo.build(sysOaFinanceVoList);
}
private Wrapper<SysOaFinance> buildQueryWrapperByFinance(SysOaFinanceBo bo) {
Map<String, Object> params = bo.getParams();
QueryWrapper<SysOaFinance> lqw = Wrappers.query();
//前端设定了projectId的值为0和10非项目进出账添加时候默认为01项目进出账项目的id是数字串整数添加时候该字段存储gt大于0表示项目字段值
// lqw.ge("a.project_id ",bo.getProjectId());
lqw.eq(ObjectUtil.isNotNull(bo.getProjectId()), "a.project_id", bo.getProjectId());
lqw.eq(StringUtils.isNotBlank(bo.getFinanceType()), "a.finance_type", bo.getFinanceType());
lqw.orderByDesc("a.create_time");
return lqw;
}
/**
* 根据时间范围(非项目)查询进出账核算
*/
@Override
public BigDecimal findFinanceByTime(SysOaFinanceBo bo, Map params) {
//通过参数查询主表列表,同时一对多查出子表
Map<String, Object> paramsMap = bo.getParams();
paramsMap.put("financeType", params.get("financeType"));
paramsMap.put("beginTime", params.get("beginTime"));
paramsMap.put("endTime", params.get("endTime"));
List<SysOaFinance> financeByTime = baseMapper.findFinanceByTime(paramsMap);
//遍历子表将价格遍历为数组并用map方法求和该方法类型使用map比较妥当
ArrayList<BigDecimal> objects = new ArrayList<>();
financeByTime.forEach(v -> {
BigDecimal reduce = v.getDetailList().stream().map(s -> s.getPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
objects.add(reduce);
});
//主表再次求和
BigDecimal reduce = objects.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
return reduce;
}
/**
* 根据id查询列表
*
* @param financeId
* @return
*/
@Override
public SysOaFinance selectFinanceById(Long financeId) {
return baseMapper.selectFinanceById(financeId);
}
/**
* 项目核算
*
* @param bo
* @return
*/
@Override
public BigDecimal selectFinanceByProjectId(SysOaFinanceBo bo) {
List<SysOaFinance> sysOaFinances = baseMapper.selectFinanceByProjectId(bo);
System.out.println("sysOaFinances===" + sysOaFinances);
System.out.println("sysOaFinances000===" + sysOaFinances.size());
if (sysOaFinances.size() > 0) {
ArrayList<BigDecimal> objects = new ArrayList<>();
sysOaFinances.forEach(v -> {
System.out.println("vvvv" + v.getDetailList());
BigDecimal reduce = v.getDetailList().stream().map(s -> s.getPrice() == null ? new BigDecimal(0) : s.getPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
objects.add(reduce);
});
//主表再次求和
BigDecimal reduce = objects.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println("hehehehe999===" + reduce);
return reduce;
} else {
BigDecimal reduce = new BigDecimal(0);
System.out.println("hehehehe===" + reduce);
return reduce;
}
}
/**
* 查询进出账管理
*/
@Override
public SysOaFinanceVo queryById(Long financeId) {
return baseMapper.selectVoById(financeId);
}
/**
* 查询进出账管理列表
*/
@Override
public TableDataInfo<SysOaFinanceVo> queryPageList(SysOaFinanceBo bo, PageQuery pageQuery) {
// LambdaQueryWrapper<SysOaFinance> lqw = buildQueryWrapper(bo);
Wrapper<SysOaFinance> lqw = buildQueryWrapper(bo);
Page<SysOaFinanceVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询进出账管理列表
*/
@Override
public List<SysOaFinanceVo> queryList(SysOaFinanceBo bo) {
Wrapper<SysOaFinance> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
// private LambdaQueryWrapper<SysOaFinance> buildQueryWrapper(SysOaFinanceBo bo) {
private Wrapper<SysOaFinance> buildQueryWrapper(SysOaFinanceBo bo) {
Map<String, Object> params = bo.getParams();
QueryWrapper<SysOaFinance> lqw = Wrappers.query();
//前端设定了projectId的值为0和10非项目进出账添加时候默认为01项目进出账项目的id是数字串整数添加时候该字段存储gt大于0表示项目字段值
lqw.eq("a.project_id", bo.getProjectId());
lqw.like(StringUtils.isNotBlank(bo.getFinanceTitle()), "a.finance_title", bo.getFinanceTitle());
lqw.like(StringUtils.isNotBlank(bo.getFinanceParties()), "a.finance_parties", bo.getFinanceParties());
lqw.eq(StringUtils.isNotBlank(bo.getFinanceType()), "a.finance_type", bo.getFinanceType());
lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
"a.create_time", params.get("beginCreateTime"), params.get("endCreateTime"));
lqw.orderByDesc("create_time");
return lqw;
}
/**
* 新增进出账管理
*/
@Override
public Boolean insertByBo(SysOaFinanceBo bo) {
SysOaFinance add = BeanUtil.toBean(bo, SysOaFinance.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setFinanceId(add.getFinanceId());
}
//子表数据插入
insertSysOaDetail(bo);
return flag;
}
/**
* 修改进出账管理
*/
@Override
public Boolean updateByBo(SysOaFinanceBo bo) {
SysOaFinance update = BeanUtil.toBean(bo, SysOaFinance.class);
validEntityBeforeSave(update);
//先删除原来数据
sysOaDetailMapper.deleteSysOaDetailByfinanceId(bo.getFinanceId());
//再插入修改后的数据
insertSysOaDetail(bo);
return baseMapper.updateById(update) > 0;
}
/**
* 关联子表的数据新增和修改
*
* @param bo
*/
public void insertSysOaDetail(SysOaFinanceBo bo) {
List<SysOaDetail> detailList = bo.getDetailList();
Long financeId = bo.getFinanceId();
if (detailList.size() > 0) {
List<SysOaDetail> sysOaDetails = new ArrayList<>();
for (SysOaDetail list : detailList) {
list.setFinanceId(financeId);
sysOaDetails.add(list);
}
if (sysOaDetails.size() > 0) {
sysOaDetailMapper.batchSysOaDetail(sysOaDetails);
}
}
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SysOaFinance entity) {
//TODO 做一些数据校验,如唯一约束
}
/**
* 根据id删除单条数据并删除关联数据
*
* @param financeId
* @return
*/
@Override
public Boolean deleteSysOaFinanceById(Long financeId) {
sysOaDetailMapper.deleteSysOaDetailByfinanceId(financeId);
return baseMapper.deleteById(financeId) > 0;
}
/**
* 批量删除进出账管理
*/
/*@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}*/
}

View File

@@ -0,0 +1,114 @@
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.SysOaContract;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.ruoyi.oa.domain.bo.SysOaProjectBo;
import com.ruoyi.oa.domain.vo.SysOaProjectVo;
import com.ruoyi.oa.domain.SysOaProject;
import com.ruoyi.oa.mapper.SysOaProjectMapper;
import com.ruoyi.oa.service.ISysOaProjectService;
import java.util.*;
/**
* 项目管理Service业务层处理
*
* @author huangxing
* @date 2024-01-11
*/
@RequiredArgsConstructor
@Service
public class SysOaProjectServiceImpl implements ISysOaProjectService {
private final SysOaProjectMapper baseMapper;
/**
* 查询项目管理
*/
@Override
public SysOaProjectVo queryById(Long projectId){
return baseMapper.selectVoById(projectId);
}
/**
* 查询项目管理列表
*/
@Override
public TableDataInfo<SysOaProjectVo> queryPageList(SysOaProjectBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SysOaProject> lqw = buildQueryWrapper(bo);
Page<SysOaProjectVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询项目管理列表
*/
@Override
public List<SysOaProjectVo> queryList(SysOaProjectBo bo) {
LambdaQueryWrapper<SysOaProject> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<SysOaProject> buildQueryWrapper(SysOaProjectBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOaProject> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), SysOaProject::getProjectName, bo.getProjectName());
lqw.eq(StringUtils.isNotBlank(bo.getProjectNum()), SysOaProject::getProjectNum, bo.getProjectNum());
lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), SysOaProject::getProjectType, bo.getProjectType());
lqw.eq(StringUtils.isNotBlank(bo.getProjectStatus()), SysOaProject::getProjectStatus, bo.getProjectStatus());
lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
SysOaProject::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"));
lqw.orderByDesc(SysOaProject::getCreateTime);
return lqw;
}
/**
* 新增项目管理
*/
@Override
public Boolean insertByBo(SysOaProjectBo bo) {
SysOaProject add = BeanUtil.toBean(bo, SysOaProject.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setProjectId(add.getProjectId());
}
return flag;
}
/**
* 修改项目管理
*/
@Override
public Boolean updateByBo(SysOaProjectBo bo) {
SysOaProject update = BeanUtil.toBean(bo, SysOaProject.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SysOaProject entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除项目管理
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,111 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.ruoyi.oa.domain.bo.SysOaPurposeBo;
import com.ruoyi.oa.domain.vo.SysOaPurposeVo;
import com.ruoyi.oa.domain.SysOaPurpose;
import com.ruoyi.oa.mapper.SysOaPurposeMapper;
import com.ruoyi.oa.service.ISysOaPurposeService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 采购意向Service业务层处理
*
* @author huangxing
* @date 2024-03-31
*/
@RequiredArgsConstructor
@Service
public class SysOaPurposeServiceImpl implements ISysOaPurposeService {
private final SysOaPurposeMapper baseMapper;
/**
* 查询采购意向
*/
@Override
public SysOaPurposeVo queryById(Long purposeId){
return baseMapper.selectVoById(purposeId);
}
/**
* 查询采购意向列表
*/
@Override
public TableDataInfo<SysOaPurposeVo> queryPageList(SysOaPurposeBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SysOaPurpose> lqw = buildQueryWrapper(bo);
Page<SysOaPurposeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询采购意向列表
*/
@Override
public List<SysOaPurposeVo> queryList(SysOaPurposeBo bo) {
LambdaQueryWrapper<SysOaPurpose> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<SysOaPurpose> buildQueryWrapper(SysOaPurposeBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOaPurpose> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getPurposeTitle()), SysOaPurpose::getPurposeTitle, bo.getPurposeTitle());
lqw.like(StringUtils.isNotBlank(bo.getSubhead()), SysOaPurpose::getSubhead, bo.getSubhead());
lqw.eq(StringUtils.isNotBlank(bo.getIsBid()), SysOaPurpose::getIsBid, bo.getIsBid());
return lqw;
}
/**
* 新增采购意向
*/
@Override
public Boolean insertByBo(SysOaPurposeBo bo) {
SysOaPurpose add = BeanUtil.toBean(bo, SysOaPurpose.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setPurposeId(add.getPurposeId());
}
return flag;
}
/**
* 修改采购意向
*/
@Override
public Boolean updateByBo(SysOaPurposeBo bo) {
SysOaPurpose update = BeanUtil.toBean(bo, SysOaPurpose.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SysOaPurpose entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除采购意向
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,143 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.core.domain.R;
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 org.apache.catalina.security.SecurityUtil;
import org.springframework.stereotype.Service;
import com.ruoyi.oa.domain.bo.SysOaRemindBo;
import com.ruoyi.oa.domain.vo.SysOaRemindVo;
import com.ruoyi.oa.domain.SysOaRemind;
import com.ruoyi.oa.mapper.SysOaRemindMapper;
import com.ruoyi.oa.service.ISysOaRemindService;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 事件提醒Service业务层处理
*
* @author huangxing
* @date 2024-04-02
*/
@RequiredArgsConstructor
@Service
public class SysOaRemindServiceImpl implements ISysOaRemindService {
private final SysOaRemindMapper baseMapper;
/**
* 查询事件提醒
*/
@Override
public SysOaRemindVo queryById(Long remindId){
return baseMapper.selectVoById(remindId);
}
/**
* 查询代办事件列表
* @param bo
* @return
*/
@Override
public R<List<SysOaRemindVo>> queryRemindList(SysOaRemindBo bo){
LambdaQueryWrapper<SysOaRemind> lqw = buildQueryWrapper(bo);
List<SysOaRemindVo> sysOaRemindVos = baseMapper.selectVoList(lqw);
return R.ok(sysOaRemindVos);
}
@Override
public Long queryRemindCount(SysOaRemindBo bo){
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOaRemind> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getTaskStatus()), SysOaRemind::getTaskStatus, bo.getTaskStatus());
lqw.between(params.get("beginTime") != null && params.get("endTime") != null, SysOaRemind::getTaskTime, params.get("beginTime"), params.get("endTime"));
Long aLong = baseMapper.selectCount(lqw);
return aLong;
}
/**
* 查询事件提醒列表
*/
@Override
public TableDataInfo<SysOaRemindVo> queryPageList(SysOaRemindBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SysOaRemind> lqw = buildQueryWrapper(bo);
Page<SysOaRemindVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询事件提醒列表
*/
@Override
public List<SysOaRemindVo> queryList(SysOaRemindBo bo) {
LambdaQueryWrapper<SysOaRemind> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<SysOaRemind> buildQueryWrapper(SysOaRemindBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOaRemind> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getTaskTitle()), SysOaRemind::getTaskTitle, bo.getTaskTitle());
// lqw.eq(bo.getTaskTime() != null, SysOaRemind::getTaskTime, bo.getTaskTime());
lqw.eq(StringUtils.isNotBlank(bo.getTaskStatus()), SysOaRemind::getTaskStatus, bo.getTaskStatus());
lqw.between(params.get("beginTime") != null && params.get("endTime") != null, SysOaRemind::getTaskTime, params.get("beginTime"), params.get("endTime"));
lqw.orderByDesc(SysOaRemind::getCreateTime);
return lqw;
}
/**
* 新增事件提醒
*/
@Override
public Boolean insertByBo(SysOaRemindBo bo) {
bo.setCreateBy(LoginHelper.getUsername());
bo.setCreateTime(new Date());
SysOaRemind add = BeanUtil.toBean(bo, SysOaRemind.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setRemindId(add.getRemindId());
}
return flag;
}
/**
* 修改事件提醒
*/
@Override
public Boolean updateByBo(SysOaRemindBo bo) {
bo.setUpdateBy(LoginHelper.getUsername());
bo.setUpdateTime(new Date());
SysOaRemind update = BeanUtil.toBean(bo, SysOaRemind.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SysOaRemind entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除事件提醒
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,177 @@
package com.ruoyi.oa.service.impl;
import cn.dev33.satoken.fun.SaParamRetFunction;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.core.domain.entity.SysDictType;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.system.service.ISysDictTypeService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.ruoyi.oa.domain.bo.SysOaTaskBo;
import com.ruoyi.oa.domain.vo.SysOaTaskVo;
import com.ruoyi.oa.domain.SysOaTask;
import com.ruoyi.oa.mapper.SysOaTaskMapper;
import com.ruoyi.oa.service.ISysOaTaskService;
import java.util.*;
import java.util.stream.Collectors;
/**
* 任务管理Service业务层处理
*
* @author huangxing
* @date 2024-01-11
*/
@RequiredArgsConstructor
@Service
public class SysOaTaskServiceImpl implements ISysOaTaskService {
private final SysOaTaskMapper baseMapper;
private final ISysDictTypeService dictTypeService;
/**
* 查询任务管理
*/
@Override
public SysOaTaskVo queryById(Long taskId){
return baseMapper.selectVoById(taskId);
}
/**
* 查询任务管理列表
*/
@Override
public TableDataInfo<SysOaTaskVo> queryPageList(SysOaTaskBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SysOaTask> lqw = buildQueryWrapper(bo);
//查询当前用户下的数据列表
lqw.eq(StringUtils.isNotBlank(LoginHelper.getLoginUser().getUsername()), SysOaTask::getCreateBy,LoginHelper.getLoginUser().getUsername());
Page<SysOaTaskVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 据工作类型字典查询任务列表
* @param pid
* @return
*/
@Override
public R queryTaskByDictList(Long pid){
List<Object> objects = new ArrayList<>();
List<SysDictData> sysWorkType = dictTypeService.selectDictDataByType("sys_work_type");
sysWorkType.forEach(item -> {
SysOaTaskBo sysOaTaskBo = new SysOaTaskBo();
sysOaTaskBo.setProjectId(pid);
sysOaTaskBo.setTaskType(item.getDictValue());
List<SysOaTaskVo> sysOaTaskVos = this.queryListByType(sysOaTaskBo);
Map<String, Object> ajax = new HashMap<>();
ajax.put("dictLabel", item.getDictLabel());
ajax.put("dictValue", item.getDictValue());
ajax.put("taskList", sysOaTaskVos);
ajax.put("size", "large");
ajax.put("type", "primary");
ajax.put("icon", "el-icon-more");
ajax.put("color", "#cccccc");
objects.add(ajax);
});
//根据项目id获取任务列表类型属性最大的值
SysOaTaskBo task = new SysOaTaskBo();
task.setProjectId(pid);
List<SysOaTaskVo> taskVos = this.queryListByType(task);
List<Integer> collect = taskVos.stream().map(v -> Integer.parseInt(v.getTaskType())).collect(Collectors.toList());
OptionalInt max = collect.stream().mapToInt(Integer::intValue).max();
Map<String, Object> map = new HashMap<>();
if(max.isPresent()){
map.put("active", max.getAsInt());
}else {
map.put("active", 0);
}
map.put("taskList", objects);
return R.ok(map);
}
/**
* 根据工作类型查询列表
* @param bo
* @return
*/
@Override
public List<SysOaTaskVo> queryListByType(SysOaTaskBo bo){
LambdaQueryWrapper<SysOaTask> lqw = buildQueryWrapper(bo);
lqw.eq(StringUtils.isNotEmpty(bo.getProjectId().toString()), SysOaTask::getProjectId, bo.getProjectId());
lqw.eq(StringUtils.isNotBlank(bo.getTaskType()),SysOaTask::getTaskType, bo.getTaskType());
return baseMapper.selectVoList(lqw);
}
/**
* 查询任务管理列表
*/
@Override
public List<SysOaTaskVo> queryList(SysOaTaskBo bo) {
LambdaQueryWrapper<SysOaTask> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<SysOaTask> buildQueryWrapper(SysOaTaskBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOaTask> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getProjectId().toString()), SysOaTask::getProjectId, bo.getProjectId());
lqw.eq(StringUtils.isNotBlank(bo.getTaskType()), SysOaTask::getTaskType, bo.getTaskType());
lqw.like(StringUtils.isNotBlank(bo.getTaskTitle()), SysOaTask::getTaskTitle, bo.getTaskTitle());
lqw.orderByDesc(SysOaTask::getCreateTime);
return lqw;
}
/**
* 新增任务管理
*/
@Override
public Boolean insertByBo(SysOaTaskBo bo) {
SysOaTask add = BeanUtil.toBean(bo, SysOaTask.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setTaskId(add.getTaskId());
}
return flag;
}
/**
* 修改任务管理
*/
@Override
public Boolean updateByBo(SysOaTaskBo bo) {
SysOaTask update = BeanUtil.toBean(bo, SysOaTask.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SysOaTask entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除任务管理
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}