Merge remote-tracking branch 'origin/lcj'

This commit is contained in:
2025-08-15 03:09:02 +08:00
27 changed files with 1654 additions and 15 deletions

View File

@ -26,4 +26,15 @@ public class SseMessageDto implements Serializable {
* 需要发送的消息 * 需要发送的消息
*/ */
private String message; private String message;
/**
* 路由
*/
private String route;
/**
* 详情
*/
private String detailId;
} }

View File

@ -0,0 +1,105 @@
package org.dromara.cailiaoshebei.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.cailiaoshebei.domain.vo.BusPhysicalsupplyVo;
import org.dromara.cailiaoshebei.domain.bo.BusPhysicalsupplyBo;
import org.dromara.cailiaoshebei.service.IBusPhysicalsupplyService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 物资-使用情况
*
* @author Lion Li
* @date 2025-08-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cailiaoshebei/physicalsupply")
public class BusPhysicalsupplyController extends BaseController {
private final IBusPhysicalsupplyService busPhysicalsupplyService;
/**
* 查询物资-使用情况列表
*/
@SaCheckPermission("cailiaoshebei:physicalsupply:list")
@GetMapping("/list")
public TableDataInfo<BusPhysicalsupplyVo> list(BusPhysicalsupplyBo bo, PageQuery pageQuery) {
return busPhysicalsupplyService.queryPageList(bo, pageQuery);
}
/**
* 导出物资-使用情况列表
*/
@SaCheckPermission("cailiaoshebei:physicalsupply:export")
@Log(title = "物资-使用情况", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BusPhysicalsupplyBo bo, HttpServletResponse response) {
List<BusPhysicalsupplyVo> list = busPhysicalsupplyService.queryList(bo);
ExcelUtil.exportExcel(list, "物资-使用情况", BusPhysicalsupplyVo.class, response);
}
/**
* 获取物资-使用情况详细信息
*
* @param id 主键
*/
@SaCheckPermission("cailiaoshebei:physicalsupply:query")
@GetMapping("/{id}")
public R<BusPhysicalsupplyVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(busPhysicalsupplyService.queryById(id));
}
/**
* 新增物资-使用情况
*/
@SaCheckPermission("cailiaoshebei:physicalsupply:add")
@Log(title = "物资-使用情况", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BusPhysicalsupplyBo bo) {
return toAjax(busPhysicalsupplyService.insertByBo(bo));
}
/**
* 修改物资-使用情况
*/
@SaCheckPermission("cailiaoshebei:physicalsupply:edit")
@Log(title = "物资-使用情况", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusPhysicalsupplyBo bo) {
return toAjax(busPhysicalsupplyService.updateByBo(bo));
}
/**
* 删除物资-使用情况
*
* @param ids 主键串
*/
@SaCheckPermission("cailiaoshebei:physicalsupply:remove")
@Log(title = "物资-使用情况", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(busPhysicalsupplyService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,105 @@
package org.dromara.cailiaoshebei.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.cailiaoshebei.domain.vo.BusPhysicalsupplySonVo;
import org.dromara.cailiaoshebei.domain.bo.BusPhysicalsupplySonBo;
import org.dromara.cailiaoshebei.service.IBusPhysicalsupplySonService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 物资-使用情况子数据
*
* @author Lion Li
* @date 2025-08-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cailiaoshebei/physicalsupplySon")
public class BusPhysicalsupplySonController extends BaseController {
private final IBusPhysicalsupplySonService busPhysicalsupplySonService;
/**
* 查询物资-使用情况子数据列表
*/
@SaCheckPermission("cailiaoshebei:physicalsupplySon:list")
@GetMapping("/list")
public TableDataInfo<BusPhysicalsupplySonVo> list(BusPhysicalsupplySonBo bo, PageQuery pageQuery) {
return busPhysicalsupplySonService.queryPageList(bo, pageQuery);
}
/**
* 导出物资-使用情况子数据列表
*/
@SaCheckPermission("cailiaoshebei:physicalsupplySon:export")
@Log(title = "物资-使用情况子数据", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BusPhysicalsupplySonBo bo, HttpServletResponse response) {
List<BusPhysicalsupplySonVo> list = busPhysicalsupplySonService.queryList(bo);
ExcelUtil.exportExcel(list, "物资-使用情况子数据", BusPhysicalsupplySonVo.class, response);
}
/**
* 获取物资-使用情况子数据详细信息
*
* @param id 主键
*/
@SaCheckPermission("cailiaoshebei:physicalsupplySon:query")
@GetMapping("/{id}")
public R<BusPhysicalsupplySonVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(busPhysicalsupplySonService.queryById(id));
}
/**
* 新增物资-使用情况子数据
*/
@SaCheckPermission("cailiaoshebei:physicalsupplySon:add")
@Log(title = "物资-使用情况子数据", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BusPhysicalsupplySonBo bo) {
return toAjax(busPhysicalsupplySonService.insertByBo(bo));
}
/**
* 修改物资-使用情况子数据
*/
@SaCheckPermission("cailiaoshebei:physicalsupplySon:edit")
@Log(title = "物资-使用情况子数据", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusPhysicalsupplySonBo bo) {
return toAjax(busPhysicalsupplySonService.updateByBo(bo));
}
/**
* 删除物资-使用情况子数据
*
* @param ids 主键串
*/
@SaCheckPermission("cailiaoshebei:physicalsupplySon:remove")
@Log(title = "物资-使用情况子数据", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(busPhysicalsupplySonService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,98 @@
package org.dromara.cailiaoshebei.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 物资-使用情况对象 bus_physicalsupply
*
* @author Lion Li
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("bus_physicalsupply")
public class BusPhysicalsupply extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 项目ID
*/
private Long projectId;
/**
* 材料名称
*/
private String name;
/**
* 规格
*/
private String specification;
/**
* 供应商
*/
private String supplier;
/**
* 合同签订时间
*/
private Date contractSigning;
/**
* 供货要求
*/
private String supplyRequirements;
/**
* 生产周期
*/
private Long productionPhase;
/**
* 运算周期
*/
private Long executionCycle;
/**
* 安装量
*/
private String installationQuantity;
/**
* 安装比列
*/
private String installationRatio;
/**
* 备注
*/
private String remark;
/**
* 采购提交
*/
private String purchaseSubmission;
/**
* 材料提交
*/
private String submissionMaterials;
}

View File

@ -0,0 +1,168 @@
package org.dromara.cailiaoshebei.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 物资-使用情况子数据对象 bus_physicalsupply_son
*
* @author Lion Li
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("bus_physicalsupply_son")
public class BusPhysicalsupplySon extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 使用情况ID
*/
private Long physicalsupplyId;
/**
* 到货要求
*/
private String deliveryRequirements;
/**
* 转换为合同
*/
private String transition;
/**
* 批次
*/
private String batch;
/**
* 联系单下达时间
*/
private Date issuanceTime;
/**
* 要求到货时间
*/
private Date requireDelivery;
/**
* 要求到货数量
*/
private String requiredQuantity;
/**
* 采购备注
*/
private String cgRemark;
/**
* 计划到货时间
*/
private Date scheduledDelivery;
/**
* 计划到货数量
*/
private String plannedQuantity;
/**
* 差异量
*/
private String differenceQuantity;
/**
* 供应商备注
*/
private String gysRemark;
/**
* 实际到货时间
*/
private Date actualDelivery;
/**
* 验收移交时间
*/
private Date acceptanceCheck;
/**
* 交接方式
*/
private String associate;
/**
* 实际到货验收数量
*/
private String actualAcceptance;
/**
* 到货差异量
*/
private String dhDifferenceQuantity;
/**
* 逾期状态
*/
private String expectedState;
/**
* 到货备注
*/
private String dhRemark;
/**
* 货物金额
*/
private String cargoAmount;
/**
* 结算金额
*/
private String settlementAmount;
/**
* 预付款
*/
private String advance;
/**
* 投料款
*/
private String feed;
/**
* 到货验收款
*/
private String acceptancePayment;
/**
* 质保金
*/
private String qualityGuarantee;
/**
* 调试款
*/
private String debugging;
/**
* 结算备注
*/
private String jsRemark;
}

View File

@ -4,6 +4,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.time.LocalDate;
import java.util.Date; import java.util.Date;
import java.io.Serial; import java.io.Serial;
@ -41,7 +43,7 @@ public class BusTotalsupplyplan extends BaseEntity {
/** /**
* 编制日期 * 编制日期
*/ */
private Date compileDate; private LocalDate compileDate;
/** /**
* 计划编号 * 计划编号

View File

@ -0,0 +1,103 @@
package org.dromara.cailiaoshebei.domain.bo;
import org.dromara.cailiaoshebei.domain.BusPhysicalsupply;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 物资-使用情况业务对象 bus_physicalsupply
*
* @author Lion Li
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BusPhysicalsupply.class, reverseConvertGenerate = false)
public class BusPhysicalsupplyBo extends BaseEntity {
/**
* 主键ID
*/
private Long id;
/**
* 采购1 或 材料2 或 查询所有3
*/
@NotNull(message = "采购或材料填写不能为空", groups = { EditGroup.class })
private String findType;
/**
* 项目ID
*/
private Long projectId;
/**
* 材料名称
*/
private String name;
/**
* 规格
*/
private String specification;
/**
* 供应商
*/
private String supplier;
/**
* 合同签订时间
*/
private Date contractSigning;
/**
* 供货要求
*/
private String supplyRequirements;
/**
* 生产周期
*/
private Long productionPhase;
/**
* 运算周期
*/
private Long executionCycle;
/**
* 安装量
*/
private String installationQuantity;
/**
* 安装比列
*/
private String installationRatio;
/**
* 备注
*/
private String remark;
/**
* 采购提交
*/
private String purchaseSubmission;
/**
* 材料提交
*/
private String submissionMaterials;
}

View File

@ -0,0 +1,167 @@
package org.dromara.cailiaoshebei.domain.bo;
import org.dromara.cailiaoshebei.domain.BusPhysicalsupplySon;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 物资-使用情况子数据业务对象 bus_physicalsupply_son
*
* @author Lion Li
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BusPhysicalsupplySon.class, reverseConvertGenerate = false)
public class BusPhysicalsupplySonBo extends BaseEntity {
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long id;
/**
* 使用情况ID
*/
private Long physicalsupplyId;
/**
* 到货要求
*/
private String deliveryRequirements;
/**
* 转换为合同
*/
private String transition;
/**
* 批次
*/
private String batch;
/**
* 联系单下达时间
*/
private Date issuanceTime;
/**
* 要求到货时间
*/
private Date requireDelivery;
/**
* 要求到货数量
*/
private String requiredQuantity;
/**
* 采购备注
*/
private String cgRemark;
/**
* 计划到货时间
*/
private Date scheduledDelivery;
/**
* 计划到货数量
*/
private String plannedQuantity;
/**
* 差异量
*/
private String differenceQuantity;
/**
* 供应商备注
*/
private String gysRemark;
/**
* 实际到货时间
*/
private Date actualDelivery;
/**
* 验收移交时间
*/
private Date acceptanceCheck;
/**
* 交接方式
*/
private String associate;
/**
* 实际到货验收数量
*/
private String actualAcceptance;
/**
* 到货差异量
*/
private String dhDifferenceQuantity;
/**
* 逾期状态
*/
private String expectedState;
/**
* 到货备注
*/
private String dhRemark;
/**
* 货物金额
*/
private String cargoAmount;
/**
* 结算金额
*/
private String settlementAmount;
/**
* 预付款
*/
private String advance;
/**
* 投料款
*/
private String feed;
/**
* 到货验收款
*/
private String acceptancePayment;
/**
* 质保金
*/
private String qualityGuarantee;
/**
* 调试款
*/
private String debugging;
/**
* 结算备注
*/
private String jsRemark;
}

View File

@ -7,6 +7,8 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import java.time.LocalDate;
import java.util.Date; import java.util.Date;
/** /**
@ -34,7 +36,7 @@ public class BusTotalsupplyplanBo extends BaseEntity {
/** /**
* 预计使用日期 * 预计使用日期
*/ */
private Date dateService; private LocalDate dateService;
/** /**
* 交货地点 * 交货地点

View File

@ -0,0 +1,202 @@
package org.dromara.cailiaoshebei.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.cailiaoshebei.domain.BusPhysicalsupplySon;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 物资-使用情况子数据视图对象 bus_physicalsupply_son
*
* @author Lion Li
* @date 2025-08-14
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusPhysicalsupplySon.class)
public class BusPhysicalsupplySonVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 使用情况ID
*/
@ExcelProperty(value = "使用情况ID")
private Long physicalsupplyId;
/**
* 到货要求
*/
@ExcelProperty(value = "到货要求")
private String deliveryRequirements;
/**
* 转换为合同
*/
@ExcelProperty(value = "转换为合同")
private String transition;
/**
* 批次
*/
@ExcelProperty(value = "批次")
private String batch;
/**
* 联系单下达时间
*/
@ExcelProperty(value = "联系单下达时间")
private Date issuanceTime;
/**
* 要求到货时间
*/
@ExcelProperty(value = "要求到货时间")
private Date requireDelivery;
/**
* 要求到货数量
*/
@ExcelProperty(value = "要求到货数量")
private String requiredQuantity;
/**
* 采购备注
*/
@ExcelProperty(value = "采购备注")
private String cgRemark;
/**
* 计划到货时间
*/
@ExcelProperty(value = "计划到货时间")
private Date scheduledDelivery;
/**
* 计划到货数量
*/
@ExcelProperty(value = "计划到货数量")
private String plannedQuantity;
/**
* 差异量
*/
@ExcelProperty(value = "差异量")
private String differenceQuantity;
/**
* 供应商备注
*/
@ExcelProperty(value = "供应商备注")
private String gysRemark;
/**
* 实际到货时间
*/
@ExcelProperty(value = "实际到货时间")
private Date actualDelivery;
/**
* 验收移交时间
*/
@ExcelProperty(value = "验收移交时间")
private Date acceptanceCheck;
/**
* 交接方式
*/
@ExcelProperty(value = "交接方式")
private String associate;
/**
* 实际到货验收数量
*/
@ExcelProperty(value = "实际到货验收数量")
private String actualAcceptance;
/**
* 到货差异量
*/
@ExcelProperty(value = "到货差异量")
private String dhDifferenceQuantity;
/**
* 逾期状态
*/
@ExcelProperty(value = "逾期状态")
private String expectedState;
/**
* 到货备注
*/
@ExcelProperty(value = "到货备注")
private String dhRemark;
/**
* 货物金额
*/
@ExcelProperty(value = "货物金额")
private String cargoAmount;
/**
* 结算金额
*/
@ExcelProperty(value = "结算金额")
private String settlementAmount;
/**
* 预付款
*/
@ExcelProperty(value = "预付款")
private String advance;
/**
* 投料款
*/
@ExcelProperty(value = "投料款")
private String feed;
/**
* 到货验收款
*/
@ExcelProperty(value = "到货验收款")
private String acceptancePayment;
/**
* 质保金
*/
@ExcelProperty(value = "质保金")
private String qualityGuarantee;
/**
* 调试款
*/
@ExcelProperty(value = "调试款")
private String debugging;
/**
* 结算备注
*/
@ExcelProperty(value = "结算备注")
private String jsRemark;
}

View File

@ -0,0 +1,118 @@
package org.dromara.cailiaoshebei.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.cailiaoshebei.domain.BusPhysicalsupply;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 物资-使用情况视图对象 bus_physicalsupply
*
* @author Lion Li
* @date 2025-08-14
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusPhysicalsupply.class)
public class BusPhysicalsupplyVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 项目ID
*/
@ExcelProperty(value = "项目ID")
private Long projectId;
/**
* 材料名称
*/
@ExcelProperty(value = "材料名称")
private String name;
/**
* 规格
*/
@ExcelProperty(value = "规格")
private String specification;
/**
* 供应商
*/
@ExcelProperty(value = "供应商")
private String supplier;
/**
* 合同签订时间
*/
@ExcelProperty(value = "合同签订时间")
private Date contractSigning;
/**
* 供货要求
*/
@ExcelProperty(value = "供货要求")
private String supplyRequirements;
/**
* 生产周期
*/
@ExcelProperty(value = "生产周期")
private Long productionPhase;
/**
* 运算周期
*/
@ExcelProperty(value = "运算周期")
private Long executionCycle;
/**
* 安装量
*/
@ExcelProperty(value = "安装量")
private String installationQuantity;
/**
* 安装比列
*/
@ExcelProperty(value = "安装比列")
private String installationRatio;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 采购提交
*/
@ExcelProperty(value = "采购提交")
private String purchaseSubmission;
/**
* 材料提交
*/
@ExcelProperty(value = "材料提交")
private String submissionMaterials;
}

View File

@ -0,0 +1,15 @@
package org.dromara.cailiaoshebei.mapper;
import org.dromara.cailiaoshebei.domain.BusPhysicalsupply;
import org.dromara.cailiaoshebei.domain.vo.BusPhysicalsupplyVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 物资-使用情况Mapper接口
*
* @author Lion Li
* @date 2025-08-14
*/
public interface BusPhysicalsupplyMapper extends BaseMapperPlus<BusPhysicalsupply, BusPhysicalsupplyVo> {
}

View File

@ -0,0 +1,15 @@
package org.dromara.cailiaoshebei.mapper;
import org.dromara.cailiaoshebei.domain.BusPhysicalsupplySon;
import org.dromara.cailiaoshebei.domain.vo.BusPhysicalsupplySonVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 物资-使用情况子数据Mapper接口
*
* @author Lion Li
* @date 2025-08-14
*/
public interface BusPhysicalsupplySonMapper extends BaseMapperPlus<BusPhysicalsupplySon, BusPhysicalsupplySonVo> {
}

View File

@ -0,0 +1,70 @@
package org.dromara.cailiaoshebei.service;
import org.dromara.cailiaoshebei.domain.vo.BusPhysicalsupplyVo;
import org.dromara.cailiaoshebei.domain.bo.BusPhysicalsupplyBo;
import org.dromara.cailiaoshebei.domain.BusPhysicalsupply;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Collection;
import java.util.List;
/**
* 物资-使用情况Service接口
*
* @author Lion Li
* @date 2025-08-14
*/
public interface IBusPhysicalsupplyService extends IService<BusPhysicalsupply>{
/**
* 查询物资-使用情况
*
* @param id 主键
* @return 物资-使用情况
*/
BusPhysicalsupplyVo queryById(Long id);
/**
* 分页查询物资-使用情况列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 物资-使用情况分页列表
*/
TableDataInfo<BusPhysicalsupplyVo> queryPageList(BusPhysicalsupplyBo bo, PageQuery pageQuery);
/**
* 查询符合条件的物资-使用情况列表
*
* @param bo 查询条件
* @return 物资-使用情况列表
*/
List<BusPhysicalsupplyVo> queryList(BusPhysicalsupplyBo bo);
/**
* 新增物资-使用情况
*
* @param bo 物资-使用情况
* @return 是否新增成功
*/
Boolean insertByBo(BusPhysicalsupplyBo bo);
/**
* 修改物资-使用情况
*
* @param bo 物资-使用情况
* @return 是否修改成功
*/
Boolean updateByBo(BusPhysicalsupplyBo bo);
/**
* 校验并批量删除物资-使用情况信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,70 @@
package org.dromara.cailiaoshebei.service;
import org.dromara.cailiaoshebei.domain.vo.BusPhysicalsupplySonVo;
import org.dromara.cailiaoshebei.domain.bo.BusPhysicalsupplySonBo;
import org.dromara.cailiaoshebei.domain.BusPhysicalsupplySon;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Collection;
import java.util.List;
/**
* 物资-使用情况子数据Service接口
*
* @author Lion Li
* @date 2025-08-14
*/
public interface IBusPhysicalsupplySonService extends IService<BusPhysicalsupplySon>{
/**
* 查询物资-使用情况子数据
*
* @param id 主键
* @return 物资-使用情况子数据
*/
BusPhysicalsupplySonVo queryById(Long id);
/**
* 分页查询物资-使用情况子数据列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 物资-使用情况子数据分页列表
*/
TableDataInfo<BusPhysicalsupplySonVo> queryPageList(BusPhysicalsupplySonBo bo, PageQuery pageQuery);
/**
* 查询符合条件的物资-使用情况子数据列表
*
* @param bo 查询条件
* @return 物资-使用情况子数据列表
*/
List<BusPhysicalsupplySonVo> queryList(BusPhysicalsupplySonBo bo);
/**
* 新增物资-使用情况子数据
*
* @param bo 物资-使用情况子数据
* @return 是否新增成功
*/
Boolean insertByBo(BusPhysicalsupplySonBo bo);
/**
* 修改物资-使用情况子数据
*
* @param bo 物资-使用情况子数据
* @return 是否修改成功
*/
Boolean updateByBo(BusPhysicalsupplySonBo bo);
/**
* 校验并批量删除物资-使用情况子数据信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,152 @@
package org.dromara.cailiaoshebei.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.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 org.dromara.cailiaoshebei.domain.bo.BusPhysicalsupplyBo;
import org.dromara.cailiaoshebei.domain.vo.BusPhysicalsupplyVo;
import org.dromara.cailiaoshebei.domain.BusPhysicalsupply;
import org.dromara.cailiaoshebei.mapper.BusPhysicalsupplyMapper;
import org.dromara.cailiaoshebei.service.IBusPhysicalsupplyService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.Objects;
/**
* 物资-使用情况Service业务层处理
*
* @author Lion Li
* @date 2025-08-14
*/
@RequiredArgsConstructor
@Service
public class BusPhysicalsupplyServiceImpl extends ServiceImpl<BusPhysicalsupplyMapper, BusPhysicalsupply> implements IBusPhysicalsupplyService {
private final BusPhysicalsupplyMapper baseMapper;
/**
* 查询物资-使用情况
*
* @param id 主键
* @return 物资-使用情况
*/
@Override
public BusPhysicalsupplyVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询物资-使用情况列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 物资-使用情况分页列表
*/
@Override
public TableDataInfo<BusPhysicalsupplyVo> queryPageList(BusPhysicalsupplyBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<BusPhysicalsupply> lqw = buildQueryWrapper(bo);
Page<BusPhysicalsupplyVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的物资-使用情况列表
*
* @param bo 查询条件
* @return 物资-使用情况列表
*/
@Override
public List<BusPhysicalsupplyVo> queryList(BusPhysicalsupplyBo bo) {
LambdaQueryWrapper<BusPhysicalsupply> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<BusPhysicalsupply> buildQueryWrapper(BusPhysicalsupplyBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BusPhysicalsupply> lqw = Wrappers.lambdaQuery();
lqw.orderByDesc(BusPhysicalsupply::getId);
lqw.eq(bo.getProjectId() != null, BusPhysicalsupply::getProjectId, bo.getProjectId());
lqw.like(StringUtils.isNotBlank(bo.getName()), BusPhysicalsupply::getName, bo.getName());
lqw.eq(StringUtils.isNotBlank(bo.getSpecification()), BusPhysicalsupply::getSpecification, bo.getSpecification());
lqw.eq(StringUtils.isNotBlank(bo.getSupplier()), BusPhysicalsupply::getSupplier, bo.getSupplier());
lqw.eq(bo.getContractSigning() != null, BusPhysicalsupply::getContractSigning, bo.getContractSigning());
lqw.eq(StringUtils.isNotBlank(bo.getSupplyRequirements()), BusPhysicalsupply::getSupplyRequirements, bo.getSupplyRequirements());
lqw.eq(bo.getProductionPhase() != null, BusPhysicalsupply::getProductionPhase, bo.getProductionPhase());
lqw.eq(bo.getExecutionCycle() != null, BusPhysicalsupply::getExecutionCycle, bo.getExecutionCycle());
lqw.eq(StringUtils.isNotBlank(bo.getInstallationQuantity()), BusPhysicalsupply::getInstallationQuantity, bo.getInstallationQuantity());
lqw.eq(StringUtils.isNotBlank(bo.getInstallationRatio()), BusPhysicalsupply::getInstallationRatio, bo.getInstallationRatio());
lqw.eq(StringUtils.isNotBlank(bo.getPurchaseSubmission()), BusPhysicalsupply::getPurchaseSubmission, bo.getPurchaseSubmission());
lqw.eq(StringUtils.isNotBlank(bo.getSubmissionMaterials()), BusPhysicalsupply::getSubmissionMaterials, bo.getSubmissionMaterials());
//查询采购
if (Objects.equals(bo.getFindType(), "1")){
lqw.eq(BusPhysicalsupply::getPurchaseSubmission, "0");
}
//查询材料
else if (Objects.equals(bo.getFindType(), "2")){
lqw.eq(BusPhysicalsupply::getPurchaseSubmission, "1");
}
return lqw;
}
/**
* 新增物资-使用情况
*
* @param bo 物资-使用情况
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(BusPhysicalsupplyBo bo) {
BusPhysicalsupply add = MapstructUtils.convert(bo, BusPhysicalsupply.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改物资-使用情况
*
* @param bo 物资-使用情况
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(BusPhysicalsupplyBo bo) {
BusPhysicalsupply update = MapstructUtils.convert(bo, BusPhysicalsupply.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(BusPhysicalsupply entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除物资-使用情况信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -0,0 +1,158 @@
package org.dromara.cailiaoshebei.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.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 org.dromara.cailiaoshebei.domain.bo.BusPhysicalsupplySonBo;
import org.dromara.cailiaoshebei.domain.vo.BusPhysicalsupplySonVo;
import org.dromara.cailiaoshebei.domain.BusPhysicalsupplySon;
import org.dromara.cailiaoshebei.mapper.BusPhysicalsupplySonMapper;
import org.dromara.cailiaoshebei.service.IBusPhysicalsupplySonService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 物资-使用情况子数据Service业务层处理
*
* @author Lion Li
* @date 2025-08-14
*/
@RequiredArgsConstructor
@Service
public class BusPhysicalsupplySonServiceImpl extends ServiceImpl<BusPhysicalsupplySonMapper, BusPhysicalsupplySon> implements IBusPhysicalsupplySonService {
private final BusPhysicalsupplySonMapper baseMapper;
/**
* 查询物资-使用情况子数据
*
* @param id 主键
* @return 物资-使用情况子数据
*/
@Override
public BusPhysicalsupplySonVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询物资-使用情况子数据列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 物资-使用情况子数据分页列表
*/
@Override
public TableDataInfo<BusPhysicalsupplySonVo> queryPageList(BusPhysicalsupplySonBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<BusPhysicalsupplySon> lqw = buildQueryWrapper(bo);
Page<BusPhysicalsupplySonVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的物资-使用情况子数据列表
*
* @param bo 查询条件
* @return 物资-使用情况子数据列表
*/
@Override
public List<BusPhysicalsupplySonVo> queryList(BusPhysicalsupplySonBo bo) {
LambdaQueryWrapper<BusPhysicalsupplySon> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<BusPhysicalsupplySon> buildQueryWrapper(BusPhysicalsupplySonBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BusPhysicalsupplySon> lqw = Wrappers.lambdaQuery();
lqw.orderByDesc(BusPhysicalsupplySon::getId);
lqw.eq(bo.getPhysicalsupplyId() != null, BusPhysicalsupplySon::getPhysicalsupplyId, bo.getPhysicalsupplyId());
lqw.eq(StringUtils.isNotBlank(bo.getDeliveryRequirements()), BusPhysicalsupplySon::getDeliveryRequirements, bo.getDeliveryRequirements());
lqw.eq(StringUtils.isNotBlank(bo.getTransition()), BusPhysicalsupplySon::getTransition, bo.getTransition());
lqw.eq(StringUtils.isNotBlank(bo.getBatch()), BusPhysicalsupplySon::getBatch, bo.getBatch());
lqw.eq(bo.getIssuanceTime() != null, BusPhysicalsupplySon::getIssuanceTime, bo.getIssuanceTime());
lqw.eq(bo.getRequireDelivery() != null, BusPhysicalsupplySon::getRequireDelivery, bo.getRequireDelivery());
lqw.eq(StringUtils.isNotBlank(bo.getRequiredQuantity()), BusPhysicalsupplySon::getRequiredQuantity, bo.getRequiredQuantity());
lqw.eq(StringUtils.isNotBlank(bo.getCgRemark()), BusPhysicalsupplySon::getCgRemark, bo.getCgRemark());
lqw.eq(bo.getScheduledDelivery() != null, BusPhysicalsupplySon::getScheduledDelivery, bo.getScheduledDelivery());
lqw.eq(StringUtils.isNotBlank(bo.getPlannedQuantity()), BusPhysicalsupplySon::getPlannedQuantity, bo.getPlannedQuantity());
lqw.eq(StringUtils.isNotBlank(bo.getDifferenceQuantity()), BusPhysicalsupplySon::getDifferenceQuantity, bo.getDifferenceQuantity());
lqw.eq(StringUtils.isNotBlank(bo.getGysRemark()), BusPhysicalsupplySon::getGysRemark, bo.getGysRemark());
lqw.eq(bo.getActualDelivery() != null, BusPhysicalsupplySon::getActualDelivery, bo.getActualDelivery());
lqw.eq(bo.getAcceptanceCheck() != null, BusPhysicalsupplySon::getAcceptanceCheck, bo.getAcceptanceCheck());
lqw.eq(StringUtils.isNotBlank(bo.getAssociate()), BusPhysicalsupplySon::getAssociate, bo.getAssociate());
lqw.eq(StringUtils.isNotBlank(bo.getActualAcceptance()), BusPhysicalsupplySon::getActualAcceptance, bo.getActualAcceptance());
lqw.eq(StringUtils.isNotBlank(bo.getDhDifferenceQuantity()), BusPhysicalsupplySon::getDhDifferenceQuantity, bo.getDhDifferenceQuantity());
lqw.eq(StringUtils.isNotBlank(bo.getExpectedState()), BusPhysicalsupplySon::getExpectedState, bo.getExpectedState());
lqw.eq(StringUtils.isNotBlank(bo.getDhRemark()), BusPhysicalsupplySon::getDhRemark, bo.getDhRemark());
lqw.eq(StringUtils.isNotBlank(bo.getCargoAmount()), BusPhysicalsupplySon::getCargoAmount, bo.getCargoAmount());
lqw.eq(StringUtils.isNotBlank(bo.getSettlementAmount()), BusPhysicalsupplySon::getSettlementAmount, bo.getSettlementAmount());
lqw.eq(StringUtils.isNotBlank(bo.getAdvance()), BusPhysicalsupplySon::getAdvance, bo.getAdvance());
lqw.eq(StringUtils.isNotBlank(bo.getFeed()), BusPhysicalsupplySon::getFeed, bo.getFeed());
lqw.eq(StringUtils.isNotBlank(bo.getAcceptancePayment()), BusPhysicalsupplySon::getAcceptancePayment, bo.getAcceptancePayment());
lqw.eq(StringUtils.isNotBlank(bo.getQualityGuarantee()), BusPhysicalsupplySon::getQualityGuarantee, bo.getQualityGuarantee());
lqw.eq(StringUtils.isNotBlank(bo.getDebugging()), BusPhysicalsupplySon::getDebugging, bo.getDebugging());
lqw.eq(StringUtils.isNotBlank(bo.getJsRemark()), BusPhysicalsupplySon::getJsRemark, bo.getJsRemark());
return lqw;
}
/**
* 新增物资-使用情况子数据
*
* @param bo 物资-使用情况子数据
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(BusPhysicalsupplySonBo bo) {
BusPhysicalsupplySon add = MapstructUtils.convert(bo, BusPhysicalsupplySon.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改物资-使用情况子数据
*
* @param bo 物资-使用情况子数据
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(BusPhysicalsupplySonBo bo) {
BusPhysicalsupplySon update = MapstructUtils.convert(bo, BusPhysicalsupplySon.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(BusPhysicalsupplySon entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除物资-使用情况子数据信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -463,12 +463,12 @@ public class BusBillofquantitiesVersionsServiceImpl extends ServiceImpl<BusBillo
//1、根据查询数据 //1、根据查询数据
LambdaQueryWrapper<BusBillofquantities> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BusBillofquantities> lqw = new LambdaQueryWrapper<>();
lqw.eq(BusBillofquantities::getVersions, id); lqw.eq(BusBillofquantities::getVersions, id);
lqw.last("limit 1");
List<BusBillofquantities> list = busBillofquantitiesService.list(lqw); List<BusBillofquantities> list = busBillofquantitiesService.list(lqw);
List<BusTotalsupplyplan> busTotalsupplyplans = BeanUtil.copyToList(list, BusTotalsupplyplan.class); List<BusTotalsupplyplan> busTotalsupplyplans = BeanUtil.copyToList(list, BusTotalsupplyplan.class);
for (BusTotalsupplyplan busTotalsupplyplan : busTotalsupplyplans) { for (BusTotalsupplyplan busTotalsupplyplan : busTotalsupplyplans) {
busTotalsupplyplan.setBatchNumber(num); busTotalsupplyplan.setBatchNumber(num);
busTotalsupplyplan.setProjectId(versions.getProjectId()); busTotalsupplyplan.setProjectId(versions.getProjectId());
busTotalsupplyplan.setId(null);
} }
boolean b = busTotalsupplyplanService.saveBatch(busTotalsupplyplans); boolean b = busTotalsupplyplanService.saveBatch(busTotalsupplyplans);
if (!b){ if (!b){

View File

@ -11,6 +11,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.message.domain.bo.MsgConfigAddReq; import org.dromara.message.domain.bo.MsgConfigAddReq;
import org.dromara.message.domain.bo.MsgConfigEditReq; import org.dromara.message.domain.bo.MsgConfigEditReq;
import org.dromara.system.domain.bo.SysDeptBo;
import org.dromara.system.domain.vo.SysDeptVo; import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.ISysDeptService; import org.dromara.system.service.ISysDeptService;
@ -53,13 +54,12 @@ public class MsgConfigController extends BaseController {
*/ */
@SaCheckPermission("message:config:allUsersOfTheDepartment") @SaCheckPermission("message:config:allUsersOfTheDepartment")
@GetMapping("/allUsersOfTheDepartment") @GetMapping("/allUsersOfTheDepartment")
public R<SysDeptVo> allUsersOfTheDepartment() { public R<SysDeptBo> allUsersOfTheDepartment() {
Long deptId = Objects.requireNonNull(LoginHelper.getLoginUser()).getDeptId();
System.out.println("1!!!! "+deptId);
//获取当前用户的上级部门 //获取当前用户的上级部门
SysDeptVo sysDeptVo = deptService.selectDeptById(deptId); Long deptId = Objects.requireNonNull(LoginHelper.getLoginUser()).getDeptId();
System.out.println("2!!!! "+sysDeptVo.toString()); SysDeptBo bm = deptService.selectDeptByIdBo(deptId);
return R.ok(sysDeptVo); //从顶级往下推两个部门
return R.ok(bm);
} }
/** /**

View File

@ -47,4 +47,9 @@ public class MsgConfigAddReq implements Serializable {
*/ */
@NotBlank(message = "跳转路由不能为空") @NotBlank(message = "跳转路由不能为空")
private String route; private String route;
/**
* 通知人
*/
private String userId;
} }

View File

@ -186,6 +186,8 @@ public class MsgNoticeServiceImpl extends ServiceImpl<MsgNoticeMapper, MsgNotice
SseMessageDto messageDto = new SseMessageDto(); SseMessageDto messageDto = new SseMessageDto();
messageDto.setUserIds(recipientIds); messageDto.setUserIds(recipientIds);
messageDto.setMessage(bo.getContent()); messageDto.setMessage(bo.getContent());
// messageDto.setRoute(bo.get());
messageDto.setDetailId(bo.getContent());
SseMessageUtils.publishMessage(messageDto); SseMessageUtils.publishMessage(messageDto);
}else{ }else{
throw new RuntimeException("消息发送失败"); throw new RuntimeException("消息发送失败");

View File

@ -11,6 +11,7 @@ import org.dromara.common.mybatis.annotation.DataPermission;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.helper.DataBaseHelper; import org.dromara.common.mybatis.helper.DataBaseHelper;
import org.dromara.system.domain.SysDept; import org.dromara.system.domain.SysDept;
import org.dromara.system.domain.bo.SysDeptBo;
import org.dromara.system.domain.vo.SysDeptVo; import org.dromara.system.domain.vo.SysDeptVo;
import java.util.List; import java.util.List;
@ -94,4 +95,11 @@ public interface SysDeptMapper extends BaseMapperPlus<SysDept, SysDeptVo> {
""") """)
List<Long> getProjectIdsByDept(@Param("deptId") Long deptId); List<Long> getProjectIdsByDept(@Param("deptId") Long deptId);
/**
* 根据部门ID获取到顶级部门
*
* @return 部门信息
*/
SysDeptBo selectDeptByIdBo(@Param("deptId") Long deptId);
} }

View File

@ -60,12 +60,12 @@ public interface ISysDeptService {
*/ */
SysDeptVo selectDeptById(Long deptId); SysDeptVo selectDeptById(Long deptId);
// /** /**
// * 根据部门ID查询信息 * 根据部门ID获取到顶级部门
// * *
// * @return 部门信息 * @return 部门信息
// */ */
// SysDeptBo selectDeptByIdBo(SysDeptBo dept); SysDeptBo selectDeptByIdBo(Long deptId);
/** /**
* 根据部门ID查询所属项目ID列表 * 根据部门ID查询所属项目ID列表

View File

@ -247,6 +247,16 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
return dept; return dept;
} }
/**
* 根据部门ID获取到顶级部门
*
* @return 部门信息
*/
@Override
public SysDeptBo selectDeptByIdBo(Long deptId) {
return null;
}
/** /**
* 根据部门ID查询所属项目ID列表 * 根据部门ID查询所属项目ID列表
* *

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.cailiaoshebei.mapper.BusPhysicalsupplyMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.cailiaoshebei.mapper.BusPhysicalsupplySonMapper">
</mapper>

View File

@ -44,4 +44,43 @@
order by d.parent_id, d.order_num order by d.parent_id, d.order_num
</select> </select>
<select id="selectDeptByIdBo" resultType="org.dromara.system.domain.bo.SysDeptBo">
WITH RECURSIVE dept_recursive AS (
-- 起始条件指定要查询的部门ID
SELECT
dept_id,
parent_id,
dept_name,
0 AS level -- 层级起始部门为0级
FROM
sys_dept
WHERE
dept_id = #{deptId} -- 这里替换为你要查询的部门ID
UNION ALL
-- 递归部分:查询父部门
SELECT
d.dept_id,
d.parent_id,
d.dept_name,
dr.level + 1 AS level -- 层级递增
FROM
sys_dept d
INNER JOIN
dept_recursive dr ON d.dept_id = dr.parent_id
WHERE
d.parent_id != 0 -- 直到父部门ID为0根部门停止
)
SELECT
dept_id,
parent_id,
dept_name,
level
FROM
dept_recursive
ORDER BY
level;
</select>
</mapper> </mapper>