From ed7012e2dd7e6973d6da57b165853f8433b8cbf0 Mon Sep 17 00:00:00 2001 From: hdka <823267011@qq.com> Date: Wed, 19 Mar 2025 21:37:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=89=E6=9C=9F=E5=86=85=E5=AE=B9=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/domain/entity/SysUser.java | 7 + .../SysOaWarehouseMasterController.java | 108 ++++++++++++ .../java/com/ruoyi/oa/domain/OaSalary.java | 5 + .../ruoyi/oa/domain/SysOaReceiveAccount.java | 5 + .../ruoyi/oa/domain/SysOaWarehouseMaster.java | 58 +++++++ .../com/ruoyi/oa/domain/bo/OaSalaryBo.java | 2 + .../oa/domain/bo/SysOaReceiveAccountBo.java | 6 + .../oa/domain/bo/SysOaWarehouseMasterBo.java | 57 +++++++ .../com/ruoyi/oa/domain/vo/MaterialVO.java | 7 +- .../com/ruoyi/oa/domain/vo/OaSalaryVo.java | 2 + .../ruoyi/oa/domain/vo/SysOaCostAllVo.java | 1 + .../oa/domain/vo/SysOaReceiveAccountVo.java | 6 + .../oa/domain/vo/SysOaWarehouseMasterVo.java | 63 +++++++ .../oa/mapper/SysOaWarehouseMasterMapper.java | 15 ++ .../service/ISysOaWarehouseMasterService.java | 49 ++++++ .../service/impl/OaCustomerServiceImpl.java | 25 ++- .../oa/service/impl/OaSalaryServiceImpl.java | 5 +- .../impl/SysOaWarehouseMasterServiceImpl.java | 112 ++++++++++++ .../resources/mapper/oa/OaBusinessMapper.xml | 6 +- .../resources/mapper/oa/OaCustomerMapper.xml | 30 +++- .../resources/mapper/oa/OaSalaryMapper.xml | 3 + .../mapper/oa/SysOaProjectMapper.xml | 161 ++++++++++-------- .../mapper/oa/SysOaWarehouseMasterMapper.xml | 22 +++ .../resources/mapper/system/SysUserMapper.xml | 12 +- 24 files changed, 671 insertions(+), 96 deletions(-) create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaWarehouseMasterController.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaWarehouseMaster.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaWarehouseMasterBo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaWarehouseMasterVo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaWarehouseMasterMapper.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaWarehouseMasterService.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseMasterServiceImpl.java create mode 100644 ruoyi-oa/src/main/resources/mapper/oa/SysOaWarehouseMasterMapper.xml diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java index 1cffffb..ef95916 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java @@ -41,6 +41,8 @@ public class SysUser extends BaseEntity { */ private Long deptId; + + /** * 用户账号 */ @@ -146,6 +148,11 @@ public class SysUser extends BaseEntity { private String bankCard; + /** + * 保险费 + */ + private Double insure; + private Long laborCost; @TableField(exist = false) diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaWarehouseMasterController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaWarehouseMasterController.java new file mode 100644 index 0000000..1fba462 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaWarehouseMasterController.java @@ -0,0 +1,108 @@ +package com.ruoyi.oa.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.core.validate.QueryGroup; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.oa.domain.vo.SysOaWarehouseMasterVo; +import com.ruoyi.oa.domain.bo.SysOaWarehouseMasterBo; +import com.ruoyi.oa.service.ISysOaWarehouseMasterService; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 出库单管理 + * + * @author hdak + * @date 2025-03-19 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/oa/oaWarehouseMaster") +public class SysOaWarehouseMasterController extends BaseController { + + private final ISysOaWarehouseMasterService iSysOaWarehouseMasterService; + + /** + * 查询出库单管理列表 + */ + @SaCheckPermission("oa:oaWarehouseMaster:list") + @GetMapping("/list") + public TableDataInfo list(SysOaWarehouseMasterBo bo, PageQuery pageQuery) { + return iSysOaWarehouseMasterService.queryPageList(bo, pageQuery); + } + + /** + * 导出出库单管理列表 + */ + @SaCheckPermission("oa:oaWarehouseMaster:export") + @Log(title = "出库单管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysOaWarehouseMasterBo bo, HttpServletResponse response) { + List list = iSysOaWarehouseMasterService.queryList(bo); + ExcelUtil.exportExcel(list, "出库单管理", SysOaWarehouseMasterVo.class, response); + } + + /** + * 获取出库单管理详细信息 + * + * @param masterId 主键 + */ + @SaCheckPermission("oa:oaWarehouseMaster:query") + @GetMapping("/{masterId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long masterId) { + return R.ok(iSysOaWarehouseMasterService.queryById(masterId)); + } + + /** + * 新增出库单管理 + */ + @SaCheckPermission("oa:oaWarehouseMaster:add") + @Log(title = "出库单管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysOaWarehouseMasterBo bo) { + return toAjax(iSysOaWarehouseMasterService.insertByBo(bo)); + } + + /** + * 修改出库单管理 + */ + @SaCheckPermission("oa:oaWarehouseMaster:edit") + @Log(title = "出库单管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysOaWarehouseMasterBo bo) { + return toAjax(iSysOaWarehouseMasterService.updateByBo(bo)); + } + + /** + * 删除出库单管理 + * + * @param masterIds 主键串 + */ + @SaCheckPermission("oa:oaWarehouseMaster:remove") + @Log(title = "出库单管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{masterIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] masterIds) { + return toAjax(iSysOaWarehouseMasterService.deleteWithValidByIds(Arrays.asList(masterIds), true)); + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalary.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalary.java index 766cb83..18bbc41 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalary.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalary.java @@ -55,4 +55,9 @@ public class OaSalary extends BaseEntity { */ private String remark; + /** + * 保险 + */ + private Double insure; + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaReceiveAccount.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaReceiveAccount.java index c39385a..94299d5 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaReceiveAccount.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaReceiveAccount.java @@ -43,6 +43,11 @@ public class SysOaReceiveAccount extends BaseEntity { @ExcelProperty(value = "父节点") private Long parentId; + /** + * 余额 + */ + private Double balance; + diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaWarehouseMaster.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaWarehouseMaster.java new file mode 100644 index 0000000..f7d7e30 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaWarehouseMaster.java @@ -0,0 +1,58 @@ +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_warehouse_master + * + * @author hdak + * @date 2025-03-19 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_oa_warehouse_master") +public class SysOaWarehouseMaster extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键id + */ + @TableId(value = "master_id") + private Long masterId; + /** + * 0出库单1入库单 + */ + private Long type; + /** + * 绑定项目 + */ + private Long projectId; + /** + * 编写日期 + */ + private Date signTime; + /** + * 导入人 + */ + private String signUser; + /** + * 删除标志 + */ + @TableLogic + private Long delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryBo.java index 8e42efc..2f8e674 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryBo.java @@ -62,5 +62,7 @@ public class OaSalaryBo extends BaseEntity { private String filePath; + private Double insure; + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaReceiveAccountBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaReceiveAccountBo.java index 7ba9bd2..d33b595 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaReceiveAccountBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaReceiveAccountBo.java @@ -46,4 +46,10 @@ public class SysOaReceiveAccountBo extends BaseEntity { @ExcelProperty(value = "父节点") private Long parentId; + /** + * 余额 + */ + private Double balance; + + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaWarehouseMasterBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaWarehouseMasterBo.java new file mode 100644 index 0000000..a713ff1 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaWarehouseMasterBo.java @@ -0,0 +1,57 @@ +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_warehouse_master + * + * @author hdak + * @date 2025-03-19 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class SysOaWarehouseMasterBo extends BaseEntity { + + /** + * 主键id + */ + private Long masterId; + + /** + * 0出库单1入库单 + */ + private Long type; + + /** + * 绑定项目 + */ + private Long projectId; + + /** + * 编写日期 + */ + private Date signTime; + + /** + * 导入人 + */ + private String signUser; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/MaterialVO.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/MaterialVO.java index 28d61f5..a7ee454 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/MaterialVO.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/MaterialVO.java @@ -5,8 +5,9 @@ import lombok.Data; // 物料出库明细VO @Data public class MaterialVO { - private Long materialId; - private String name; + private Long detailId; + private String detailTitle; private Double price; - private Integer amount; + private String financeParties; + private String remark; } \ No newline at end of file diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryVo.java index 2e9eeca..4bdc69e 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryVo.java @@ -74,4 +74,6 @@ public class OaSalaryVo extends OaSalary { private Double punishSalary; private Double laborCost; + + private Double insure; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaCostAllVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaCostAllVo.java index 0ce05a0..0297d3b 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaCostAllVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaCostAllVo.java @@ -45,4 +45,5 @@ public class SysOaCostAllVo { private Double peopleDay; + private Double funds; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaReceiveAccountVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaReceiveAccountVo.java index b37bb52..7eddd06 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaReceiveAccountVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaReceiveAccountVo.java @@ -54,5 +54,11 @@ public class SysOaReceiveAccountVo { */ private String label; + /** + * 余额 + */ + private Double balance; + + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaWarehouseMasterVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaWarehouseMasterVo.java new file mode 100644 index 0000000..d9b92af --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaWarehouseMasterVo.java @@ -0,0 +1,63 @@ +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_warehouse_master + * + * @author hdak + * @date 2025-03-19 + */ +@Data +@ExcelIgnoreUnannotated +public class SysOaWarehouseMasterVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long masterId; + + /** + * 0出库单1入库单 + */ + @ExcelProperty(value = "0出库单1入库单") + private Long type; + + /** + * 绑定项目 + */ + @ExcelProperty(value = "绑定项目") + private Long projectId; + + /** + * 编写日期 + */ + @ExcelProperty(value = "编写日期") + private Date signTime; + + /** + * 导入人 + */ + @ExcelProperty(value = "导入人") + private String signUser; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaWarehouseMasterMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaWarehouseMasterMapper.java new file mode 100644 index 0000000..52f0323 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaWarehouseMasterMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.oa.mapper; + +import com.ruoyi.oa.domain.SysOaWarehouseMaster; +import com.ruoyi.oa.domain.vo.SysOaWarehouseMasterVo; +import com.ruoyi.common.core.mapper.BaseMapperPlus; + +/** + * 出库单管理Mapper接口 + * + * @author hdak + * @date 2025-03-19 + */ +public interface SysOaWarehouseMasterMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaWarehouseMasterService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaWarehouseMasterService.java new file mode 100644 index 0000000..6f4105f --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaWarehouseMasterService.java @@ -0,0 +1,49 @@ +package com.ruoyi.oa.service; + +import com.ruoyi.oa.domain.SysOaWarehouseMaster; +import com.ruoyi.oa.domain.vo.SysOaWarehouseMasterVo; +import com.ruoyi.oa.domain.bo.SysOaWarehouseMasterBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 出库单管理Service接口 + * + * @author hdak + * @date 2025-03-19 + */ +public interface ISysOaWarehouseMasterService { + + /** + * 查询出库单管理 + */ + SysOaWarehouseMasterVo queryById(Long masterId); + + /** + * 查询出库单管理列表 + */ + TableDataInfo queryPageList(SysOaWarehouseMasterBo bo, PageQuery pageQuery); + + /** + * 查询出库单管理列表 + */ + List queryList(SysOaWarehouseMasterBo bo); + + /** + * 新增出库单管理 + */ + Boolean insertByBo(SysOaWarehouseMasterBo bo); + + /** + * 修改出库单管理 + */ + Boolean updateByBo(SysOaWarehouseMasterBo bo); + + /** + * 校验并批量删除出库单管理信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaCustomerServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaCustomerServiceImpl.java index 8c72f48..c4202df 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaCustomerServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaCustomerServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.oa.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.core.page.TableDataInfo; @@ -45,7 +46,7 @@ public class OaCustomerServiceImpl implements IOaCustomerService { */ @Override public TableDataInfo queryPageList(OaCustomerBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); + QueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -55,20 +56,18 @@ public class OaCustomerServiceImpl implements IOaCustomerService { */ @Override public List queryList(OaCustomerBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); + QueryWrapper lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } - private LambdaQueryWrapper buildQueryWrapper(OaCustomerBo bo) { + private QueryWrapper buildQueryWrapper(OaCustomerBo bo) { Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.like(StringUtils.isNotBlank(bo.getName()), OaCustomer::getName, bo.getName()); - lqw.eq(bo.getFollowUpStatus() != null, OaCustomer::getFollowUpStatus, bo.getFollowUpStatus()); - lqw.eq(bo.getContactLastTime() != null, OaCustomer::getContactLastTime, bo.getContactLastTime()); - lqw.eq(StringUtils.isNotBlank(bo.getContactLastContent()), OaCustomer::getContactLastContent, bo.getContactLastContent()); - lqw.eq(bo.getContactNextTime() != null, OaCustomer::getContactNextTime, bo.getContactNextTime()); - lqw.eq(bo.getDealStatus() != null, OaCustomer::getDealStatus, bo.getDealStatus()); - lqw.eq(bo.getAreaId() != null, OaCustomer::getAreaId, bo.getAreaId()); + QueryWrapper lqw = Wrappers.query(); + lqw.like(StringUtils.isNotBlank(bo.getName()), "oc.name", bo.getName()); + lqw.eq(bo.getAreaId() != null, "oc.area_id", bo.getAreaId()); + lqw.eq(bo.getIndustryId() != null, "oc.industry_id", bo.getAreaId()); + lqw.eq(bo.getLevel() != null, "oc.level", bo.getAreaId()); + lqw.eq("oc.del_flag", 0L); return lqw; } @@ -116,14 +115,14 @@ public class OaCustomerServiceImpl implements IOaCustomerService { @Override public TableDataInfo queryPageListToUser(OaCustomerBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); + QueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPageToUser(pageQuery.build(), lqw); return TableDataInfo.build(result); } @Override public TableDataInfo queryPageListToSea(OaCustomerBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); + QueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPageToUser(pageQuery.build(), lqw); return TableDataInfo.build(result); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryServiceImpl.java index 0c090dc..e7a61a3 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryServiceImpl.java @@ -118,7 +118,7 @@ public class OaSalaryServiceImpl implements IOaSalaryService { // 写入真实薪资 为日薪乘以工作日-罚金 for (OaSalaryVo record : result.getRecords()) { - record.setRealSalary(record.getBaseSalary()+record.getPunishSalary()); + record.setRealSalary(record.getBaseSalary()+record.getPunishSalary()-record.getInsure()); } return TableDataInfo.build(result); } @@ -141,7 +141,7 @@ public class OaSalaryServiceImpl implements IOaSalaryService { // 写入真实薪资 为日薪乘以工作日-罚金 for (OaSalaryVo record : result.getRecords()) { - record.setRealSalary(record.getBaseSalary()*dayNum+record.getPunishSalary()); + record.setRealSalary(record.getBaseSalary()*dayNum+record.getPunishSalary()-record.getInsure()); } return TableDataInfo.build(result); } @@ -154,6 +154,7 @@ public class OaSalaryServiceImpl implements IOaSalaryService { if(Objects.nonNull(user)){ OaSalary oaSalary = new OaSalary(); oaSalary.setUserId(user.getUserId()); + oaSalary.setInsure(user.getInsure()); oaSalary.setBaseSalary(Double.valueOf(user.getLaborCost())); oaSalary.setPayTime(payTime); baseMapper.insert(oaSalary); diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseMasterServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseMasterServiceImpl.java new file mode 100644 index 0000000..008c46f --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseMasterServiceImpl.java @@ -0,0 +1,112 @@ +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.SysOaWarehouseMasterBo; +import com.ruoyi.oa.domain.vo.SysOaWarehouseMasterVo; +import com.ruoyi.oa.domain.SysOaWarehouseMaster; +import com.ruoyi.oa.mapper.SysOaWarehouseMasterMapper; +import com.ruoyi.oa.service.ISysOaWarehouseMasterService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 出库单管理Service业务层处理 + * + * @author hdak + * @date 2025-03-19 + */ +@RequiredArgsConstructor +@Service +public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterService { + + private final SysOaWarehouseMasterMapper baseMapper; + + /** + * 查询出库单管理 + */ + @Override + public SysOaWarehouseMasterVo queryById(Long masterId){ + return baseMapper.selectVoById(masterId); + } + + /** + * 查询出库单管理列表 + */ + @Override + public TableDataInfo queryPageList(SysOaWarehouseMasterBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询出库单管理列表 + */ + @Override + public List queryList(SysOaWarehouseMasterBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SysOaWarehouseMasterBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getType() != null, SysOaWarehouseMaster::getType, bo.getType()); + lqw.eq(bo.getProjectId() != null, SysOaWarehouseMaster::getProjectId, bo.getProjectId()); + lqw.eq(bo.getSignTime() != null, SysOaWarehouseMaster::getSignTime, bo.getSignTime()); + lqw.eq(StringUtils.isNotBlank(bo.getSignUser()), SysOaWarehouseMaster::getSignUser, bo.getSignUser()); + return lqw; + } + + /** + * 新增出库单管理 + */ + @Override + public Boolean insertByBo(SysOaWarehouseMasterBo bo) { + SysOaWarehouseMaster add = BeanUtil.toBean(bo, SysOaWarehouseMaster.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setMasterId(add.getMasterId()); + } + return flag; + } + + /** + * 修改出库单管理 + */ + @Override + public Boolean updateByBo(SysOaWarehouseMasterBo bo) { + SysOaWarehouseMaster update = BeanUtil.toBean(bo, SysOaWarehouseMaster.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysOaWarehouseMaster entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除出库单管理 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessMapper.xml index fe6a44e..84ef850 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessMapper.xml @@ -30,9 +30,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update oa_business set follow_up_status = 1 where business_id=#{businessId} + - delete from oa_business - business_id=#{businessId} + delete from oa_business where + business_id=#{businessId} @@ -43,6 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join oa_product op on obp.product_id = op.product_id ${ew.getCustomSqlSegment} + - select oc.customer_id, nick_name,name, follow_up_status, contact_last_time, contact_last_content, contact_next_time, owner_user_id, owner_time, deal_status, mobile, telephone, qq, wechat, oc.email, area_id, detail_address, industry_id, level, source, oc.remark,oc.create_by, oc.create_time, oc.update_by, oc.update_time, oc.del_flag from oa_customer oc - left join fad_oa.sys_user su on oc.owner_user_id = su.user_id + select oc.customer_id, + nick_name, + name, + follow_up_status, + contact_last_time, + contact_last_content, + contact_next_time, + owner_user_id, + owner_time, + deal_status, + mobile, + telephone, + qq, + wechat, + oc.email, + area_id, + detail_address, + industry_id, + level, + source, + oc.remark, + oc.create_by, + oc.create_time, + oc.update_by, + oc.update_time, + oc.del_flag + from oa_customer oc + left join fad_oa.sys_user su on oc.owner_user_id = su.user_id ${ew.getCustomSqlSegment} diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMapper.xml index d7e04cb..a5ee5fc 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMapper.xml @@ -18,6 +18,7 @@ + @@ -40,6 +41,7 @@ os.pay_time, su.nick_name, os.base_salary, + os.insure, COALESCE( SUM( CASE @@ -97,6 +99,7 @@ osi.reason, osi.price, osi.sign_time, + os.insure, su.nick_name FROM oa_salary os LEFT JOIN oa_salary_item osi diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml index b9e3fa0..d3da918 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml @@ -117,7 +117,7 @@ - SELECT - JSON_OBJECT( - 'userCostList', COALESCE(( - SELECT JSON_ARRAYAGG( - JSON_OBJECT( - 'userId', CAST(uc.userId AS CHAR), - 'nickName', COALESCE(uc.nickName, ''), - 'laborCost', ROUND(COALESCE(uc.laborCost, 0),1), - 'attendenceNum', ROUND(COALESCE(uc.attendenceNum, 0),1) - ) - ) - FROM ( - SELECT - a.user_id AS userId, - u.nick_name AS nickName, - COALESCE(SUM(ROUND((a.day_length * 9 + a.hour) / 9,1) * u.labor_cost), 0) AS laborCost, - COALESCE(ROUND(SUM((a.day_length * 9 + a.hour) / 9),1), 0) AS attendenceNum - FROM sys_oa_attendance a - INNER JOIN sys_user u ON a.user_id = u.user_id - WHERE a.project_id = #{projectId} AND a.del_flag = 0 - GROUP BY a.user_id - ) uc - ), JSON_ARRAY()), + SELECT JSON_OBJECT( + 'userCostList', + COALESCE( + ( + SELECT JSON_ARRAYAGG( + JSON_OBJECT( + 'userId', CAST(uc.userId AS CHAR), + 'nickName', COALESCE(uc.nickName, ''), + 'laborCost', ROUND(COALESCE(uc.laborCost, 0), 1), + 'attendenceNum', ROUND(COALESCE(uc.attendenceNum, 0), 1) + ) + ) + FROM ( + SELECT + a.user_id AS userId, + u.nick_name AS nickName, + COALESCE( + SUM( + ROUND((a.day_length * 9 + a.hour) / 9, 1) * u.labor_cost + ), + 0 + ) AS laborCost, + COALESCE( + ROUND( + SUM((a.day_length * 9 + a.hour) / 9), 1 + ), + 0 + ) AS attendenceNum + FROM sys_oa_attendance a + INNER JOIN sys_user u + ON a.user_id = u.user_id + WHERE a.project_id = #{projectId} + AND a.del_flag = 0 + GROUP BY a.user_id + ) uc + ), + JSON_ARRAY() + ), - 'materialList', COALESCE(( - SELECT JSON_ARRAYAGG( - JSON_OBJECT( - 'materialId', CAST(ml.materialId AS CHAR), - 'name', COALESCE(ml.name, ''), - 'price', COALESCE(ml.price, 0), - 'amount', COALESCE(ml.amount, 0) - ) - ) - FROM ( - SELECT - ow.id AS materialId, - COALESCE(w.name, '') AS name, - COALESCE(w.price, 0) AS price, - COALESCE(ow.amount, 0) AS amount - FROM sys_oa_out_warehouse ow - INNER JOIN sys_oa_warehouse w ON ow.warehouse_id = w.id - WHERE ow.project_id = #{projectId} AND ow.del_flag = 0 - ) ml - ), JSON_ARRAY()), + 'materialList', + COALESCE( + ( + SELECT JSON_ARRAYAGG( + JSON_OBJECT( + 'detailId', CAST(d.detail_id AS CHAR), + 'detailTitle', COALESCE(d.detail_title, ''), + 'price', COALESCE(d.price, 0), + 'financeParties', COALESCE(f.finance_parties, ''), + 'remark', COALESCE(f.remark, '') + ) + ) + FROM sys_oa_finance f + INNER JOIN sys_oa_detail d + ON f.finance_id = d.finance_id + WHERE f.project_id = #{projectId} + AND f.finance_type = 0 + ), + JSON_ARRAY() + ), - 'claimList', COALESCE(( - SELECT JSON_ARRAYAGG( - JSON_OBJECT( - 'claimId', CAST(cl.claimId AS CHAR), - 'nickName', COALESCE(cl.nickName, ''), - 'cost', COALESCE(cl.cost, 0), - 'remark', COALESCE(cl.remark, '') - ) - ) - FROM ( - SELECT - c.claim_id AS claimId, - COALESCE(u.nick_name, '') AS nickName, - COALESCE(c.cost, 0) AS cost, - COALESCE(c.remark, '') AS remark - FROM sys_oa_claim c - INNER JOIN sys_user u ON c.user_id = u.user_id - WHERE c.project_id = #{projectId} AND c.del_flag = 0 - ) cl - ), JSON_ARRAY()) - ) AS data + 'claimList', + COALESCE( + ( + SELECT JSON_ARRAYAGG( + JSON_OBJECT( + 'claimId', CAST(cl.claimId AS CHAR), + 'nickName', COALESCE(cl.nickName, ''), + 'cost', COALESCE(cl.cost, 0), + 'remark', COALESCE(cl.remark, '') + ) + ) + FROM ( + SELECT + c.claim_id AS claimId, + COALESCE(u.nick_name, '') AS nickName, + COALESCE(c.cost, 0) AS cost, + COALESCE(c.remark, '') AS remark + FROM sys_oa_claim c + INNER JOIN sys_user u + ON c.user_id = u.user_id + WHERE c.project_id = #{projectId} + AND c.del_flag = 0 + ) cl + ), + JSON_ARRAY() + ) + ) AS data FROM sys_oa_project p WHERE p.project_id = #{projectId} + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaWarehouseMasterMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaWarehouseMasterMapper.xml new file mode 100644 index 0000000..d97fe6d --- /dev/null +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaWarehouseMasterMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 7edf3cc..88572d7 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -26,6 +26,7 @@ + @@ -65,6 +66,7 @@ select u.user_id, u.dept_id, u.user_name, + u.insure, u.nick_name, u.user_type, u.email, @@ -102,7 +104,7 @@ - select user_id,user_name,nick_name,labor_cost from sys_user where del_flag ='0' + select user_id,user_name, u.insure,nick_name,labor_cost from sys_user where del_flag ='0'