完成材料、供应商、材料台账增删改查接口
This commit is contained in:
@ -0,0 +1,112 @@
|
||||
package org.dromara.materials.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.constant.HttpStatus;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.materials.domain.req.company.CompanyCreateReq;
|
||||
import org.dromara.materials.domain.req.company.CompanyQueryReq;
|
||||
import org.dromara.materials.domain.req.company.CompanyUpdateReq;
|
||||
import org.dromara.materials.domain.vo.BusCompanyVo;
|
||||
import org.dromara.materials.service.IBusCompanyService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公司
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/materials/company")
|
||||
public class BusCompanyController extends BaseController {
|
||||
|
||||
private final IBusCompanyService busCompanyService;
|
||||
|
||||
/**
|
||||
* 查询公司列表
|
||||
*/
|
||||
@SaCheckPermission("materials:company:list")
|
||||
@GetMapping("/list")
|
||||
public Page<BusCompanyVo> list(CompanyQueryReq req) {
|
||||
return busCompanyService.queryPageList(req);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出公司列表
|
||||
*/
|
||||
@SaCheckPermission("materials:company:export")
|
||||
@Log(title = "公司", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(CompanyQueryReq req, HttpServletResponse response) {
|
||||
List<BusCompanyVo> list = busCompanyService.queryList(req);
|
||||
ExcelUtil.exportExcel(list, "公司", BusCompanyVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取公司详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("materials:company:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BusCompanyVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(busCompanyService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增公司
|
||||
*/
|
||||
@SaCheckPermission("materials:company:add")
|
||||
@Log(title = "公司", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Long> add(@Validated(AddGroup.class) @RequestBody CompanyCreateReq req) {
|
||||
if (req == null) {
|
||||
throw new ServiceException("参数不能为空", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
return R.ok(busCompanyService.insertByBo(req));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改公司
|
||||
*/
|
||||
@SaCheckPermission("materials:company:edit")
|
||||
@Log(title = "公司", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody CompanyUpdateReq req) {
|
||||
return toAjax(busCompanyService.updateByBo(req));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除公司
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("materials:company:remove")
|
||||
@Log(title = "公司", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(busCompanyService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,107 @@
|
||||
package org.dromara.materials.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
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.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.materials.domain.req.materials.MaterialsCreateReq;
|
||||
import org.dromara.materials.domain.req.materials.MaterialsQueryReq;
|
||||
import org.dromara.materials.domain.req.materials.MaterialsUpdateReq;
|
||||
import org.dromara.materials.domain.vo.BusMaterialsVo;
|
||||
import org.dromara.materials.service.IBusMaterialsService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 材料
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/materials/materials")
|
||||
public class BusMaterialsController extends BaseController {
|
||||
|
||||
private final IBusMaterialsService busMaterialsService;
|
||||
|
||||
/**
|
||||
* 查询材料列表
|
||||
*/
|
||||
@SaCheckPermission("materials:materials:list")
|
||||
@GetMapping("/list")
|
||||
public Page<BusMaterialsVo> list(MaterialsQueryReq req) {
|
||||
return busMaterialsService.queryPageList(req);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出材料列表
|
||||
*/
|
||||
@SaCheckPermission("materials:materials:export")
|
||||
@Log(title = "材料", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(MaterialsQueryReq req, HttpServletResponse response) {
|
||||
List<BusMaterialsVo> list = busMaterialsService.queryList(req);
|
||||
ExcelUtil.exportExcel(list, "材料名称", BusMaterialsVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取材料详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("materials:materials:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BusMaterialsVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(busMaterialsService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增材料
|
||||
*/
|
||||
@SaCheckPermission("materials:materials:add")
|
||||
@Log(title = "材料", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Long> add(@Validated(AddGroup.class) @RequestBody MaterialsCreateReq req) {
|
||||
return R.ok(busMaterialsService.insertByBo(req));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改材料
|
||||
*/
|
||||
@SaCheckPermission("materials:materials:edit")
|
||||
@Log(title = "材料", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody MaterialsUpdateReq req) {
|
||||
return toAjax(busMaterialsService.updateByBo(req));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除材料
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("materials:materials:remove")
|
||||
@Log(title = "材料", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(busMaterialsService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,107 @@
|
||||
package org.dromara.materials.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
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.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.materials.domain.req.materialsinventory.MaterialsInventoryCreateReq;
|
||||
import org.dromara.materials.domain.req.materialsinventory.MaterialsInventoryQueryReq;
|
||||
import org.dromara.materials.domain.req.materialsinventory.MaterialsInventoryUpdateReq;
|
||||
import org.dromara.materials.domain.vo.BusMaterialsInventoryVo;
|
||||
import org.dromara.materials.service.IBusMaterialsInventoryService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 材料出/入库
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/materials/materialsInventory")
|
||||
public class BusMaterialsInventoryController extends BaseController {
|
||||
|
||||
private final IBusMaterialsInventoryService busMaterialsInventoryService;
|
||||
|
||||
/**
|
||||
* 查询材料出/入库列表
|
||||
*/
|
||||
@SaCheckPermission("materials:materialsInventory:list")
|
||||
@GetMapping("/list")
|
||||
public Page<BusMaterialsInventoryVo> list(MaterialsInventoryQueryReq req) {
|
||||
return busMaterialsInventoryService.queryPageList(req);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出材料出/入库列表
|
||||
*/
|
||||
@SaCheckPermission("materials:materialsInventory:export")
|
||||
@Log(title = "材料出/入库", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(MaterialsInventoryQueryReq req, HttpServletResponse response) {
|
||||
List<BusMaterialsInventoryVo> list = busMaterialsInventoryService.queryList(req);
|
||||
ExcelUtil.exportExcel(list, "材料出/入库", BusMaterialsInventoryVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取材料出/入库详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("materials:materialsInventory:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BusMaterialsInventoryVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(busMaterialsInventoryService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增材料出/入库
|
||||
*/
|
||||
@SaCheckPermission("materials:materialsInventory:add")
|
||||
@Log(title = "材料出/入库", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Long> add(@Validated(AddGroup.class) @RequestBody MaterialsInventoryCreateReq req) {
|
||||
return R.ok(busMaterialsInventoryService.insertByBo(req));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改材料出/入库
|
||||
*/
|
||||
@SaCheckPermission("materials:materialsInventory:edit")
|
||||
@Log(title = "材料出/入库", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody MaterialsInventoryUpdateReq req) {
|
||||
return toAjax(busMaterialsInventoryService.updateByBo(req));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除材料出/入库
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("materials:materialsInventory:remove")
|
||||
@Log(title = "材料出/入库", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(busMaterialsInventoryService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
package org.dromara.materials.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_company
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("bus_company")
|
||||
public class BusCompany extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 公司名称
|
||||
*/
|
||||
private String companyName;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 帐号状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 资质情况
|
||||
*/
|
||||
private String qualification;
|
||||
|
||||
/**
|
||||
* 删除时间
|
||||
*/
|
||||
private Date deletedAt;
|
||||
|
||||
/**
|
||||
* 是否删除(0正常 1删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Long isDelete;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,134 @@
|
||||
package org.dromara.materials.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_materials
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("bus_materials")
|
||||
public class BusMaterials extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 材料名称
|
||||
*/
|
||||
private String materialsName;
|
||||
|
||||
/**
|
||||
* 公司id
|
||||
*/
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 规格型号名称
|
||||
*/
|
||||
private String typeSpecificationName;
|
||||
|
||||
/**
|
||||
* 规格型号文件路径
|
||||
*/
|
||||
private String typeSpecificationUrl;
|
||||
|
||||
/**
|
||||
* 合格证编号名称
|
||||
*/
|
||||
private String certificateConformityName;
|
||||
|
||||
/**
|
||||
* 合格证编号文件路径
|
||||
*/
|
||||
private String certificateConformityUrl;
|
||||
|
||||
/**
|
||||
* 质量说明书编号
|
||||
*/
|
||||
private String qualityName;
|
||||
|
||||
/**
|
||||
* 质量说明书文件路径
|
||||
*/
|
||||
private String qualityUrl;
|
||||
|
||||
/**
|
||||
* 检验报告编号
|
||||
*/
|
||||
private String inspectionReportName;
|
||||
|
||||
/**
|
||||
* 检验报告文件路径
|
||||
*/
|
||||
private String inspectionReportUrl;
|
||||
|
||||
/**
|
||||
* 复试报告编号
|
||||
*/
|
||||
private String reexamineReportName;
|
||||
|
||||
/**
|
||||
* 复试报告文件路径
|
||||
*/
|
||||
private String reexamineReportUrl;
|
||||
|
||||
/**
|
||||
* 使用部位
|
||||
*/
|
||||
private String usePart;
|
||||
|
||||
/**
|
||||
* 计量单位
|
||||
*/
|
||||
private String weightId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 预计材料数量
|
||||
*/
|
||||
private String quantityCount;
|
||||
|
||||
/**
|
||||
* 状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 删除时间
|
||||
*/
|
||||
private Date deletedAt;
|
||||
|
||||
/**
|
||||
* 是否删除(0正常 1删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Long isDelete;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,104 @@
|
||||
package org.dromara.materials.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_materials_inventory
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("bus_materials_inventory")
|
||||
public class BusMaterialsInventory extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 材料id
|
||||
*/
|
||||
private Long materialsId;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 出入库状态
|
||||
*/
|
||||
private String outPut;
|
||||
|
||||
/**
|
||||
* 出/入库的数量
|
||||
*/
|
||||
private Long number;
|
||||
|
||||
/**
|
||||
* 出/入库操作时间
|
||||
*/
|
||||
private Date outPutTime;
|
||||
|
||||
/**
|
||||
* 剩余库存数量(记录最后一次操作留下的库存数)
|
||||
*/
|
||||
private Long residue;
|
||||
|
||||
/**
|
||||
* 操作人(入库人、领料人)
|
||||
*/
|
||||
private String operator;
|
||||
|
||||
/**
|
||||
* 材料出入证明
|
||||
*/
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 处理方式
|
||||
*/
|
||||
private String disposition;
|
||||
|
||||
/**
|
||||
* 交接单位(班组)
|
||||
*/
|
||||
private String recipient;
|
||||
|
||||
/**
|
||||
* 领用人
|
||||
*/
|
||||
private String shipper;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 删除时间
|
||||
*/
|
||||
private Date deletedAt;
|
||||
|
||||
/**
|
||||
* 是否删除(0正常 1删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Long isDelete;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package org.dromara.materials.domain.req.company;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025/3/5 14:05
|
||||
*/
|
||||
@Data
|
||||
public class CompanyCreateReq implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = -7603153089205421154L;
|
||||
|
||||
/**
|
||||
* 公司名称
|
||||
*/
|
||||
private String companyName;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 资质情况
|
||||
*/
|
||||
private String qualification;
|
||||
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package org.dromara.materials.domain.req.company;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.core.common.PageRequest;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025/3/5 14:31
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class CompanyQueryReq extends PageRequest implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 5563677643070664671L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 公司名称
|
||||
*/
|
||||
private String companyName;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 帐号状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 资质情况
|
||||
*/
|
||||
private String qualification;
|
||||
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package org.dromara.materials.domain.req.company;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025/3/5 15:04
|
||||
*/
|
||||
@Data
|
||||
public class CompanyUpdateReq implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 3431952359907567659L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 公司名称
|
||||
*/
|
||||
private String companyName;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 帐号状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 资质情况
|
||||
*/
|
||||
private String qualification;
|
||||
|
||||
}
|
@ -0,0 +1,103 @@
|
||||
package org.dromara.materials.domain.req.materials;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025/3/5 14:05
|
||||
*/
|
||||
@Data
|
||||
public class MaterialsCreateReq implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = -7603153089205421154L;
|
||||
|
||||
/**
|
||||
* 材料名称
|
||||
*/
|
||||
private String materialsName;
|
||||
|
||||
/**
|
||||
* 公司id
|
||||
*/
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 规格型号名称
|
||||
*/
|
||||
private String typeSpecificationName;
|
||||
|
||||
/**
|
||||
* 规格型号文件路径
|
||||
*/
|
||||
private String typeSpecificationUrl;
|
||||
|
||||
/**
|
||||
* 合格证编号名称
|
||||
*/
|
||||
private String certificateConformityName;
|
||||
|
||||
/**
|
||||
* 合格证编号文件路径
|
||||
*/
|
||||
private String certificateConformityUrl;
|
||||
|
||||
/**
|
||||
* 质量说明书编号
|
||||
*/
|
||||
private String qualityName;
|
||||
|
||||
/**
|
||||
* 质量说明书文件路径
|
||||
*/
|
||||
private String qualityUrl;
|
||||
|
||||
/**
|
||||
* 检验报告编号
|
||||
*/
|
||||
private String inspectionReportName;
|
||||
|
||||
/**
|
||||
* 检验报告文件路径
|
||||
*/
|
||||
private String inspectionReportUrl;
|
||||
|
||||
/**
|
||||
* 复试报告编号
|
||||
*/
|
||||
private String reexamineReportName;
|
||||
|
||||
/**
|
||||
* 复试报告文件路径
|
||||
*/
|
||||
private String reexamineReportUrl;
|
||||
|
||||
/**
|
||||
* 使用部位
|
||||
*/
|
||||
private String usePart;
|
||||
|
||||
/**
|
||||
* 计量单位
|
||||
*/
|
||||
private String weightId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 预计材料数量
|
||||
*/
|
||||
private String quantityCount;
|
||||
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package org.dromara.materials.domain.req.materials;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.core.common.PageRequest;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025/3/5 14:31
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class MaterialsQueryReq extends PageRequest implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 5563677643070664671L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 材料名称
|
||||
*/
|
||||
private String materialsName;
|
||||
|
||||
/**
|
||||
* 公司id
|
||||
*/
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 使用部位
|
||||
*/
|
||||
private String usePart;
|
||||
|
||||
/**
|
||||
* 计量单位
|
||||
*/
|
||||
private String weightId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 预计材料数量
|
||||
*/
|
||||
private String quantityCount;
|
||||
|
||||
/**
|
||||
* 状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
}
|
@ -0,0 +1,113 @@
|
||||
package org.dromara.materials.domain.req.materials;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025/3/5 15:04
|
||||
*/
|
||||
@Data
|
||||
public class MaterialsUpdateReq implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 3431952359907567659L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 材料名称
|
||||
*/
|
||||
private String materialsName;
|
||||
|
||||
/**
|
||||
* 公司id
|
||||
*/
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 规格型号名称
|
||||
*/
|
||||
private String typeSpecificationName;
|
||||
|
||||
/**
|
||||
* 规格型号文件路径
|
||||
*/
|
||||
private String typeSpecificationUrl;
|
||||
|
||||
/**
|
||||
* 合格证编号名称
|
||||
*/
|
||||
private String certificateConformityName;
|
||||
|
||||
/**
|
||||
* 合格证编号文件路径
|
||||
*/
|
||||
private String certificateConformityUrl;
|
||||
|
||||
/**
|
||||
* 质量说明书编号
|
||||
*/
|
||||
private String qualityName;
|
||||
|
||||
/**
|
||||
* 质量说明书文件路径
|
||||
*/
|
||||
private String qualityUrl;
|
||||
|
||||
/**
|
||||
* 检验报告编号
|
||||
*/
|
||||
private String inspectionReportName;
|
||||
|
||||
/**
|
||||
* 检验报告文件路径
|
||||
*/
|
||||
private String inspectionReportUrl;
|
||||
|
||||
/**
|
||||
* 复试报告编号
|
||||
*/
|
||||
private String reexamineReportName;
|
||||
|
||||
/**
|
||||
* 复试报告文件路径
|
||||
*/
|
||||
private String reexamineReportUrl;
|
||||
|
||||
/**
|
||||
* 使用部位
|
||||
*/
|
||||
private String usePart;
|
||||
|
||||
/**
|
||||
* 计量单位
|
||||
*/
|
||||
private String weightId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 预计材料数量
|
||||
*/
|
||||
private String quantityCount;
|
||||
|
||||
/**
|
||||
* 状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
package org.dromara.materials.domain.req.materialsinventory;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025/3/5 14:05
|
||||
*/
|
||||
@Data
|
||||
public class MaterialsInventoryCreateReq implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = -7603153089205421154L;
|
||||
|
||||
/**
|
||||
* 材料id
|
||||
*/
|
||||
private Long materialsId;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 出入库状态
|
||||
*/
|
||||
private String outPut;
|
||||
|
||||
/**
|
||||
* 出/入库的数量
|
||||
*/
|
||||
private Long number;
|
||||
|
||||
/**
|
||||
* 出/入库操作时间
|
||||
*/
|
||||
private Date outPutTime;
|
||||
|
||||
/**
|
||||
* 剩余库存数量(记录最后一次操作留下的库存数)
|
||||
*/
|
||||
private Long residue;
|
||||
|
||||
/**
|
||||
* 材料出入证明
|
||||
*/
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 处理方式
|
||||
*/
|
||||
private String disposition;
|
||||
|
||||
/**
|
||||
* 交接单位(班组)
|
||||
*/
|
||||
private String recipient;
|
||||
|
||||
/**
|
||||
* 领用人
|
||||
*/
|
||||
private String shipper;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
package org.dromara.materials.domain.req.materialsinventory;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.core.common.PageRequest;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025/3/5 14:31
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class MaterialsInventoryQueryReq extends PageRequest implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 5563677643070664671L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 材料id
|
||||
*/
|
||||
private Long materialsId;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 出入库状态
|
||||
*/
|
||||
private String outPut;
|
||||
|
||||
/**
|
||||
* 出/入库的数量
|
||||
*/
|
||||
private Long number;
|
||||
|
||||
/**
|
||||
* 出/入库操作时间
|
||||
*/
|
||||
private Date outPutTime;
|
||||
|
||||
/**
|
||||
* 剩余库存数量(记录最后一次操作留下的库存数)
|
||||
*/
|
||||
private Long residue;
|
||||
|
||||
/**
|
||||
* 操作人(入库人、领料人)
|
||||
*/
|
||||
private String operator;
|
||||
|
||||
/**
|
||||
* 处理方式
|
||||
*/
|
||||
private String disposition;
|
||||
|
||||
/**
|
||||
* 交接单位(班组)
|
||||
*/
|
||||
private String recipient;
|
||||
|
||||
/**
|
||||
* 领用人
|
||||
*/
|
||||
private String shipper;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
@ -0,0 +1,79 @@
|
||||
package org.dromara.materials.domain.req.materialsinventory;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025/3/5 15:04
|
||||
*/
|
||||
@Data
|
||||
public class MaterialsInventoryUpdateReq implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 3431952359907567659L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 材料id
|
||||
*/
|
||||
private Long materialsId;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 出入库状态
|
||||
*/
|
||||
private String outPut;
|
||||
|
||||
/**
|
||||
* 出/入库的数量
|
||||
*/
|
||||
private Long number;
|
||||
|
||||
/**
|
||||
* 出/入库操作时间
|
||||
*/
|
||||
private Date outPutTime;
|
||||
|
||||
/**
|
||||
* 剩余库存数量(记录最后一次操作留下的库存数)
|
||||
*/
|
||||
private Long residue;
|
||||
|
||||
/**
|
||||
* 材料出入证明
|
||||
*/
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 处理方式
|
||||
*/
|
||||
private String disposition;
|
||||
|
||||
/**
|
||||
* 交接单位(班组)
|
||||
*/
|
||||
private String recipient;
|
||||
|
||||
/**
|
||||
* 领用人
|
||||
*/
|
||||
private String shipper;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
package org.dromara.materials.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.dromara.materials.domain.BusCompany;
|
||||
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_company
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = BusCompany.class)
|
||||
public class BusCompanyVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@ExcelProperty(value = "主键id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 公司名称
|
||||
*/
|
||||
@ExcelProperty(value = "公司名称")
|
||||
private String companyName;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
@ExcelProperty(value = "项目id")
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 帐号状态(0正常 1停用)
|
||||
*/
|
||||
@ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=正常,1=停用")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 资质情况
|
||||
*/
|
||||
@ExcelProperty(value = "资质情况")
|
||||
private String qualification;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,115 @@
|
||||
package org.dromara.materials.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.dromara.materials.domain.BusMaterialsInventory;
|
||||
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_materials_inventory
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = BusMaterialsInventory.class)
|
||||
public class BusMaterialsInventoryVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@ExcelProperty(value = "主键id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 材料id
|
||||
*/
|
||||
@ExcelProperty(value = "材料id")
|
||||
private Long materialsId;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
@ExcelProperty(value = "项目id")
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 出入库状态
|
||||
*/
|
||||
@ExcelProperty(value = "出入库状态")
|
||||
private String outPut;
|
||||
|
||||
/**
|
||||
* 出/入库的数量
|
||||
*/
|
||||
@ExcelProperty(value = "出/入库的数量")
|
||||
private Long number;
|
||||
|
||||
/**
|
||||
* 出/入库操作时间
|
||||
*/
|
||||
@ExcelProperty(value = "出/入库操作时间")
|
||||
private Date outPutTime;
|
||||
|
||||
/**
|
||||
* 剩余库存数量(记录最后一次操作留下的库存数)
|
||||
*/
|
||||
@ExcelProperty(value = "剩余库存数量", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "记=录最后一次操作留下的库存数")
|
||||
private Long residue;
|
||||
|
||||
/**
|
||||
* 操作人(入库人、领料人)
|
||||
*/
|
||||
@ExcelProperty(value = "操作人", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "入=库人、领料人")
|
||||
private String operator;
|
||||
|
||||
/**
|
||||
* 材料出入证明
|
||||
*/
|
||||
@ExcelProperty(value = "材料出入证明")
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 处理方式
|
||||
*/
|
||||
@ExcelProperty(value = "处理方式")
|
||||
private String disposition;
|
||||
|
||||
/**
|
||||
* 交接单位(班组)
|
||||
*/
|
||||
@ExcelProperty(value = "交接单位", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "班=组")
|
||||
private String recipient;
|
||||
|
||||
/**
|
||||
* 领用人
|
||||
*/
|
||||
@ExcelProperty(value = "领用人")
|
||||
private String shipper;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,151 @@
|
||||
package org.dromara.materials.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import org.dromara.materials.domain.BusMaterials;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
* 材料名称视图对象 bus_materials
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = BusMaterials.class)
|
||||
public class BusMaterialsVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@ExcelProperty(value = "主键id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 材料名称
|
||||
*/
|
||||
@ExcelProperty(value = "材料名称")
|
||||
private String materialsName;
|
||||
|
||||
/**
|
||||
* 公司id
|
||||
*/
|
||||
@ExcelProperty(value = "公司id")
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 公司信息
|
||||
*/
|
||||
@ExcelProperty(value = "公司信息")
|
||||
private BusCompanyVo companyVo;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
@ExcelProperty(value = "项目id")
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 规格型号名称
|
||||
*/
|
||||
@ExcelProperty(value = "规格型号名称")
|
||||
private String typeSpecificationName;
|
||||
|
||||
/**
|
||||
* 规格型号文件路径
|
||||
*/
|
||||
@ExcelProperty(value = "规格型号文件路径")
|
||||
private String typeSpecificationUrl;
|
||||
|
||||
/**
|
||||
* 合格证编号名称
|
||||
*/
|
||||
@ExcelProperty(value = "合格证编号名称")
|
||||
private String certificateConformityName;
|
||||
|
||||
/**
|
||||
* 合格证编号文件路径
|
||||
*/
|
||||
@ExcelProperty(value = "合格证编号文件路径")
|
||||
private String certificateConformityUrl;
|
||||
|
||||
/**
|
||||
* 质量说明书编号
|
||||
*/
|
||||
@ExcelProperty(value = "质量说明书编号")
|
||||
private String qualityName;
|
||||
|
||||
/**
|
||||
* 质量说明书文件路径
|
||||
*/
|
||||
@ExcelProperty(value = "质量说明书文件路径")
|
||||
private String qualityUrl;
|
||||
|
||||
/**
|
||||
* 检验报告编号
|
||||
*/
|
||||
@ExcelProperty(value = "检验报告编号")
|
||||
private String inspectionReportName;
|
||||
|
||||
/**
|
||||
* 检验报告文件路径
|
||||
*/
|
||||
@ExcelProperty(value = "检验报告文件路径")
|
||||
private String inspectionReportUrl;
|
||||
|
||||
/**
|
||||
* 复试报告编号
|
||||
*/
|
||||
@ExcelProperty(value = "复试报告编号")
|
||||
private String reexamineReportName;
|
||||
|
||||
/**
|
||||
* 复试报告文件路径
|
||||
*/
|
||||
@ExcelProperty(value = "复试报告文件路径")
|
||||
private String reexamineReportUrl;
|
||||
|
||||
/**
|
||||
* 使用部位
|
||||
*/
|
||||
@ExcelProperty(value = "使用部位")
|
||||
private String usePart;
|
||||
|
||||
/**
|
||||
* 计量单位
|
||||
*/
|
||||
@ExcelProperty(value = "计量单位")
|
||||
private String weightId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 预计材料数量
|
||||
*/
|
||||
@ExcelProperty(value = "预计材料数量")
|
||||
private String quantityCount;
|
||||
|
||||
/**
|
||||
* 状态(0正常 1停用)
|
||||
*/
|
||||
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=正常,1=停用")
|
||||
private String status;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package org.dromara.materials.mapper;
|
||||
|
||||
import org.dromara.materials.domain.BusCompany;
|
||||
import org.dromara.materials.domain.vo.BusCompanyVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 公司Mapper接口
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
public interface BusCompanyMapper extends BaseMapperPlus<BusCompany, BusCompanyVo> {
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package org.dromara.materials.mapper;
|
||||
|
||||
import org.dromara.materials.domain.BusMaterialsInventory;
|
||||
import org.dromara.materials.domain.vo.BusMaterialsInventoryVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 材料出/入库Mapper接口
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
public interface BusMaterialsInventoryMapper extends BaseMapperPlus<BusMaterialsInventory, BusMaterialsInventoryVo> {
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package org.dromara.materials.mapper;
|
||||
|
||||
import org.dromara.materials.domain.BusMaterials;
|
||||
import org.dromara.materials.domain.vo.BusMaterialsVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 材料名称Mapper接口
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
public interface BusMaterialsMapper extends BaseMapperPlus<BusMaterials, BusMaterialsVo> {
|
||||
|
||||
}
|
@ -0,0 +1,87 @@
|
||||
package org.dromara.materials.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.materials.domain.BusCompany;
|
||||
import org.dromara.materials.domain.req.company.CompanyCreateReq;
|
||||
import org.dromara.materials.domain.req.company.CompanyQueryReq;
|
||||
import org.dromara.materials.domain.req.company.CompanyUpdateReq;
|
||||
import org.dromara.materials.domain.vo.BusCompanyVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公司Service接口
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
public interface IBusCompanyService extends IService<BusCompany> {
|
||||
|
||||
/**
|
||||
* 查询公司
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 公司
|
||||
*/
|
||||
BusCompanyVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询公司列表
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 公司分页列表
|
||||
*/
|
||||
Page<BusCompanyVo> queryPageList(CompanyQueryReq req);
|
||||
|
||||
/**
|
||||
* 查询符合条件的公司列表
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 公司列表
|
||||
*/
|
||||
List<BusCompanyVo> queryList(CompanyQueryReq req);
|
||||
|
||||
/**
|
||||
* 新增公司
|
||||
*
|
||||
* @param req 公司
|
||||
* @return 新增公司id
|
||||
*/
|
||||
Long insertByBo(CompanyCreateReq req);
|
||||
|
||||
/**
|
||||
* 修改公司
|
||||
*
|
||||
* @param req 公司
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(CompanyUpdateReq req);
|
||||
|
||||
/**
|
||||
* 校验并批量删除公司信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 构建查询条件封装
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 查询条件封装
|
||||
*/
|
||||
QueryWrapper<BusCompany> getQueryWrapper(CompanyQueryReq req);
|
||||
|
||||
/**
|
||||
* 获取公司分页对象视图
|
||||
*
|
||||
* @param companyPage 公司分页对象
|
||||
* @return 公司分页对象视图
|
||||
*/
|
||||
Page<BusCompanyVo> getCompanyVoPage(Page<BusCompany> companyPage);
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
package org.dromara.materials.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.materials.domain.BusMaterialsInventory;
|
||||
import org.dromara.materials.domain.req.materialsinventory.MaterialsInventoryCreateReq;
|
||||
import org.dromara.materials.domain.req.materialsinventory.MaterialsInventoryQueryReq;
|
||||
import org.dromara.materials.domain.req.materialsinventory.MaterialsInventoryUpdateReq;
|
||||
import org.dromara.materials.domain.vo.BusMaterialsInventoryVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 材料出/入库Service接口
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
public interface IBusMaterialsInventoryService extends IService<BusMaterialsInventory> {
|
||||
|
||||
/**
|
||||
* 查询材料出/入库
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 材料出/入库
|
||||
*/
|
||||
BusMaterialsInventoryVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询材料出/入库列表
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 材料出/入库分页列表
|
||||
*/
|
||||
Page<BusMaterialsInventoryVo> queryPageList(MaterialsInventoryQueryReq req);
|
||||
|
||||
/**
|
||||
* 查询符合条件的材料出/入库列表
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 材料出/入库列表
|
||||
*/
|
||||
List<BusMaterialsInventoryVo> queryList(MaterialsInventoryQueryReq req);
|
||||
|
||||
/**
|
||||
* 新增材料出/入库
|
||||
*
|
||||
* @param req 材料出/入库
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Long insertByBo(MaterialsInventoryCreateReq req);
|
||||
|
||||
/**
|
||||
* 修改材料出/入库
|
||||
*
|
||||
* @param req 材料出/入库
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(MaterialsInventoryUpdateReq req);
|
||||
|
||||
/**
|
||||
* 校验并批量删除材料出/入库信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 构建查询条件封装
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 查询条件封装
|
||||
*/
|
||||
QueryWrapper<BusMaterialsInventory> getQueryWrapper(MaterialsInventoryQueryReq req);
|
||||
|
||||
/**
|
||||
* 获取材料出/入库分页对象视图
|
||||
*
|
||||
* @param materialsInventoryPage 材料出/入库分页对象
|
||||
* @return 材料出/入库分页对象视图
|
||||
*/
|
||||
Page<BusMaterialsInventoryVo> getMaterialsInventoryVoPage(Page<BusMaterialsInventory> materialsInventoryPage);
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package org.dromara.materials.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.materials.domain.BusMaterials;
|
||||
import org.dromara.materials.domain.req.materials.MaterialsCreateReq;
|
||||
import org.dromara.materials.domain.req.materials.MaterialsQueryReq;
|
||||
import org.dromara.materials.domain.req.materials.MaterialsUpdateReq;
|
||||
import org.dromara.materials.domain.vo.BusMaterialsVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 材料名称Service接口
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
public interface IBusMaterialsService extends IService<BusMaterials> {
|
||||
|
||||
/**
|
||||
* 查询材料名称
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 材料名称
|
||||
*/
|
||||
BusMaterialsVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询材料名称列表
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 材料名称分页列表
|
||||
*/
|
||||
Page<BusMaterialsVo> queryPageList(MaterialsQueryReq req);
|
||||
|
||||
/**
|
||||
* 查询符合条件的材料名称列表
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 材料名称列表
|
||||
*/
|
||||
List<BusMaterialsVo> queryList(MaterialsQueryReq req);
|
||||
|
||||
/**
|
||||
* 新增材料名称
|
||||
*
|
||||
* @param req 材料名称
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Long insertByBo(MaterialsCreateReq req);
|
||||
|
||||
/**
|
||||
* 修改材料名称
|
||||
*
|
||||
* @param req 材料名称
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(MaterialsUpdateReq req);
|
||||
|
||||
/**
|
||||
* 校验并批量删除材料名称信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 获取材料视图
|
||||
*
|
||||
* @param Materials 材料
|
||||
* @return 材料视图
|
||||
*/
|
||||
BusMaterialsVo getBusMaterialsVo(BusMaterials Materials);
|
||||
|
||||
/**
|
||||
* 构建查询条件封装
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 查询条件封装
|
||||
*/
|
||||
QueryWrapper<BusMaterials> getQueryWrapper(MaterialsQueryReq req);
|
||||
|
||||
/**
|
||||
* 获取材料分页对象视图
|
||||
*
|
||||
* @param materialsPage 材料分页对象
|
||||
* @return 材料分页对象视图
|
||||
*/
|
||||
Page<BusMaterialsVo> getMaterialsVoPage(Page<BusMaterials> materialsPage);
|
||||
}
|
@ -0,0 +1,211 @@
|
||||
package org.dromara.materials.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.dromara.common.core.constant.CommonConstant;
|
||||
import org.dromara.common.core.constant.HttpStatus;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.ObjectUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.core.utils.sql.SqlUtil;
|
||||
import org.dromara.materials.domain.BusCompany;
|
||||
import org.dromara.materials.domain.req.company.CompanyCreateReq;
|
||||
import org.dromara.materials.domain.req.company.CompanyQueryReq;
|
||||
import org.dromara.materials.domain.req.company.CompanyUpdateReq;
|
||||
import org.dromara.materials.domain.vo.BusCompanyVo;
|
||||
import org.dromara.materials.mapper.BusCompanyMapper;
|
||||
import org.dromara.materials.service.IBusCompanyService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公司Service业务层处理
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
@Service
|
||||
public class BusCompanyServiceImpl extends ServiceImpl<BusCompanyMapper, BusCompany>
|
||||
implements IBusCompanyService {
|
||||
|
||||
@Resource
|
||||
private BusCompanyMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询公司
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 公司
|
||||
*/
|
||||
@Override
|
||||
public BusCompanyVo queryById(Long id) {
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询公司列表
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 公司分页列表
|
||||
*/
|
||||
@Override
|
||||
public Page<BusCompanyVo> queryPageList(CompanyQueryReq req) {
|
||||
long current = req.getCurrent();
|
||||
long size = req.getPageSize();
|
||||
// 查询数据库
|
||||
Page<BusCompany> result = this.page(new Page<>(current, size), this.getQueryWrapper(req));
|
||||
return this.getCompanyVoPage(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的公司列表
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 公司列表
|
||||
*/
|
||||
@Override
|
||||
public List<BusCompanyVo> queryList(CompanyQueryReq req) {
|
||||
QueryWrapper<BusCompany> queryWrapper = this.getQueryWrapper(req);
|
||||
return baseMapper.selectVoList(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增公司
|
||||
*
|
||||
* @param req 公司
|
||||
* @return 新增公司id
|
||||
*/
|
||||
@Override
|
||||
public Long insertByBo(CompanyCreateReq req) {
|
||||
// 将实体类和 DTO 进行转换
|
||||
BusCompany company = new BusCompany();
|
||||
BeanUtils.copyProperties(req, company);
|
||||
// 数据校验
|
||||
validEntityBeforeSave(company);
|
||||
// 写入数据库
|
||||
boolean save = this.save(company);
|
||||
if (!save) {
|
||||
throw new ServiceException("新增公司失败,数据库异常", HttpStatus.ERROR);
|
||||
}
|
||||
return company.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改公司
|
||||
*
|
||||
* @param req 公司
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(CompanyUpdateReq req) {
|
||||
// 将实体类和 DTO 进行转换
|
||||
BusCompany company = new BusCompany();
|
||||
BeanUtils.copyProperties(req, company);
|
||||
// 数据校验
|
||||
validEntityBeforeSave(company);
|
||||
// 判断是否存在
|
||||
BusCompany oldCompany = this.getById(company.getId());
|
||||
if (oldCompany == null) {
|
||||
throw new ServiceException("修改公司失败,数据不存在", HttpStatus.NOT_FOUND);
|
||||
}
|
||||
// 操作数据库
|
||||
return this.updateById(company);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(BusCompany entity) {
|
||||
// TODO 做一些数据校验,如唯一约束
|
||||
String companyName = entity.getCompanyName();
|
||||
Long projectId = entity.getProjectId();
|
||||
if (StringUtils.isBlank(companyName)) {
|
||||
throw new ServiceException("公司名称不能为空", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
if (projectId == null) {
|
||||
throw new ServiceException("项目 id 不能为空", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除公司信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if (isValid) {
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建查询条件封装
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 查询条件封装
|
||||
*/
|
||||
@Override
|
||||
public QueryWrapper<BusCompany> getQueryWrapper(CompanyQueryReq req) {
|
||||
QueryWrapper<BusCompany> queryWrapper = new QueryWrapper<>();
|
||||
if (req == null) {
|
||||
return queryWrapper;
|
||||
}
|
||||
// 从对象中取值
|
||||
Long id = req.getId();
|
||||
String companyName = req.getCompanyName();
|
||||
Long projectId = req.getProjectId();
|
||||
String status = req.getStatus();
|
||||
String remark = req.getRemark();
|
||||
String qualification = req.getQualification();
|
||||
String sortField = req.getSortField();
|
||||
String sortOrder = req.getSortOrder();
|
||||
String underlineSortField = StrUtil.toUnderlineCase(sortField);
|
||||
// 模糊查询
|
||||
queryWrapper.like(StringUtils.isNotBlank(companyName), "company_name", companyName);
|
||||
queryWrapper.like(StringUtils.isNotBlank(qualification), "qualification", qualification);
|
||||
queryWrapper.like(StringUtils.isNotBlank(remark), "remark", remark);
|
||||
// 精确查询
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(status), "status", status);
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(id), "id", id);
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(projectId), "project_id", projectId);
|
||||
// 排序规则
|
||||
queryWrapper.orderBy(SqlUtil.validSortField(sortField),
|
||||
sortOrder.equals(CommonConstant.SORT_ORDER_ASC),
|
||||
underlineSortField);
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取公司分页对象视图
|
||||
*
|
||||
* @param companyPage 公司分页对象
|
||||
* @return 公司分页对象视图
|
||||
*/
|
||||
@Override
|
||||
public Page<BusCompanyVo> getCompanyVoPage(Page<BusCompany> companyPage) {
|
||||
List<BusCompany> companyList = companyPage.getRecords();
|
||||
Page<BusCompanyVo> companyVoPage = new Page<>(companyPage.getCurrent(), companyPage.getSize(), companyPage.getTotal());
|
||||
if (CollUtil.isEmpty(companyList)) {
|
||||
return companyVoPage;
|
||||
}
|
||||
// 对象列表 => 封装对象列表
|
||||
List<BusCompanyVo> companyVoList = companyList.stream().map(company -> {
|
||||
BusCompanyVo companyVo = new BusCompanyVo();
|
||||
BeanUtils.copyProperties(company, companyVo);
|
||||
return companyVo;
|
||||
}).toList();
|
||||
companyVoPage.setRecords(companyVoList);
|
||||
return companyVoPage;
|
||||
}
|
||||
}
|
@ -0,0 +1,219 @@
|
||||
package org.dromara.materials.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.dromara.common.core.constant.CommonConstant;
|
||||
import org.dromara.common.core.constant.HttpStatus;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.ObjectUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.core.utils.sql.SqlUtil;
|
||||
import org.dromara.materials.domain.BusMaterialsInventory;
|
||||
import org.dromara.materials.domain.req.materialsinventory.MaterialsInventoryCreateReq;
|
||||
import org.dromara.materials.domain.req.materialsinventory.MaterialsInventoryQueryReq;
|
||||
import org.dromara.materials.domain.req.materialsinventory.MaterialsInventoryUpdateReq;
|
||||
import org.dromara.materials.domain.vo.BusMaterialsInventoryVo;
|
||||
import org.dromara.materials.mapper.BusMaterialsInventoryMapper;
|
||||
import org.dromara.materials.service.IBusMaterialsInventoryService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 材料出/入库Service业务层处理
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
@Service
|
||||
public class BusMaterialsInventoryServiceImpl extends ServiceImpl<BusMaterialsInventoryMapper, BusMaterialsInventory>
|
||||
implements IBusMaterialsInventoryService {
|
||||
|
||||
@Resource
|
||||
private BusMaterialsInventoryMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询材料出/入库
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 材料出/入库
|
||||
*/
|
||||
@Override
|
||||
public BusMaterialsInventoryVo queryById(Long id) {
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询材料出/入库列表
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 材料出/入库分页列表
|
||||
*/
|
||||
@Override
|
||||
public Page<BusMaterialsInventoryVo> queryPageList(MaterialsInventoryQueryReq req) {
|
||||
long current = req.getCurrent();
|
||||
long size = req.getPageSize();
|
||||
// 查询数据库
|
||||
Page<BusMaterialsInventory> result = this.page(new Page<>(current, size), this.getQueryWrapper(req));
|
||||
return this.getMaterialsInventoryVoPage(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的材料出/入库列表
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 材料出/入库列表
|
||||
*/
|
||||
@Override
|
||||
public List<BusMaterialsInventoryVo> queryList(MaterialsInventoryQueryReq req) {
|
||||
QueryWrapper<BusMaterialsInventory> queryWrapper = this.getQueryWrapper(req);
|
||||
return baseMapper.selectVoList(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增材料出/入库
|
||||
*
|
||||
* @param req 材料出/入库
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Long insertByBo(MaterialsInventoryCreateReq req) {
|
||||
// 将实体类和 DTO 进行转换
|
||||
BusMaterialsInventory materialsInventory = new BusMaterialsInventory();
|
||||
BeanUtils.copyProperties(req, materialsInventory);
|
||||
// 数据校验
|
||||
validEntityBeforeSave(materialsInventory);
|
||||
// 操作数据库
|
||||
boolean save = this.save(materialsInventory);
|
||||
if (!save) {
|
||||
throw new ServiceException("新增材料出/入库失败,数据库异常", HttpStatus.ERROR);
|
||||
}
|
||||
return materialsInventory.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改材料出/入库
|
||||
*
|
||||
* @param req 材料出/入库
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(MaterialsInventoryUpdateReq req) {
|
||||
// 将实体类和 DTO 进行转换
|
||||
BusMaterialsInventory materialsInventory = new BusMaterialsInventory();
|
||||
BeanUtils.copyProperties(req, materialsInventory);
|
||||
// 数据校验
|
||||
validEntityBeforeSave(materialsInventory);
|
||||
// 判断是否存在
|
||||
BusMaterialsInventory oldBusMaterialsInventory = this.getById(materialsInventory.getId());
|
||||
if (oldBusMaterialsInventory == null) {
|
||||
throw new ServiceException("修改材料出/入库失败,数据不存在", HttpStatus.NOT_FOUND);
|
||||
}
|
||||
// 操作数据库
|
||||
return this.updateById(materialsInventory);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(BusMaterialsInventory entity) {
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除材料出/入库信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if (isValid) {
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建查询条件封装
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 查询条件封装
|
||||
*/
|
||||
@Override
|
||||
public QueryWrapper<BusMaterialsInventory> getQueryWrapper(MaterialsInventoryQueryReq req) {
|
||||
QueryWrapper<BusMaterialsInventory> queryWrapper = new QueryWrapper<>();
|
||||
if (req == null) {
|
||||
return queryWrapper;
|
||||
}
|
||||
// 从对象中取值
|
||||
Long id = req.getId();
|
||||
Long materialsId = req.getMaterialsId();
|
||||
Long projectId = req.getProjectId();
|
||||
String outPut = req.getOutPut();
|
||||
Long number = req.getNumber();
|
||||
Date outPutTime = req.getOutPutTime();
|
||||
Long residue = req.getResidue();
|
||||
String operator = req.getOperator();
|
||||
String disposition = req.getDisposition();
|
||||
String recipient = req.getRecipient();
|
||||
String shipper = req.getShipper();
|
||||
String remark = req.getRemark();
|
||||
String sortField = req.getSortField();
|
||||
String sortOrder = req.getSortOrder();
|
||||
String underlineSortField = StrUtil.toUnderlineCase(sortField);
|
||||
// 模糊查询
|
||||
queryWrapper.like(StringUtils.isNotBlank(outPut), "out_put", outPut);
|
||||
queryWrapper.like(StringUtils.isNotBlank(operator), "operator", operator);
|
||||
queryWrapper.like(StringUtils.isNotBlank(remark), "remark", remark);
|
||||
queryWrapper.like(StringUtils.isNotBlank(disposition), "disposition", disposition);
|
||||
queryWrapper.like(StringUtils.isNotBlank(recipient), recipient, recipient);
|
||||
queryWrapper.like(StringUtils.isNotBlank(shipper), shipper, shipper);
|
||||
// 精确查询
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(id), "id", id);
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(projectId), "project_id", projectId);
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(materialsId), "materials_id", materialsId);
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(number), "number", number);
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(outPutTime), "out_put_time", outPutTime);
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(residue), "residue", residue);
|
||||
// 排序规则
|
||||
queryWrapper.orderBy(SqlUtil.validSortField(sortField),
|
||||
sortOrder.equals(CommonConstant.SORT_ORDER_ASC),
|
||||
underlineSortField);
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取材料出/入库分页对象视图
|
||||
*
|
||||
* @param materialsInventoryPage 材料出/入库分页对象
|
||||
* @return 材料出/入库分页对象视图
|
||||
*/
|
||||
@Override
|
||||
public Page<BusMaterialsInventoryVo> getMaterialsInventoryVoPage(Page<BusMaterialsInventory> materialsInventoryPage) {
|
||||
List<BusMaterialsInventory> materialsInventoryList = materialsInventoryPage.getRecords();
|
||||
Page<BusMaterialsInventoryVo> materialsInventoryVoPage = new Page<>(
|
||||
materialsInventoryPage.getCurrent(),
|
||||
materialsInventoryPage.getSize(),
|
||||
materialsInventoryPage.getTotal());
|
||||
if (CollUtil.isEmpty(materialsInventoryList)) {
|
||||
return materialsInventoryVoPage;
|
||||
}
|
||||
// 对象列表 => 封装对象列表
|
||||
List<BusMaterialsInventoryVo> materialsInventoryVoList = materialsInventoryList.stream().map(materialsInventory -> {
|
||||
BusMaterialsInventoryVo materialsInventoryVo = new BusMaterialsInventoryVo();
|
||||
BeanUtils.copyProperties(materialsInventory, materialsInventoryVo);
|
||||
return materialsInventoryVo;
|
||||
}).toList();
|
||||
materialsInventoryVoPage.setRecords(materialsInventoryVoList);
|
||||
return materialsInventoryVoPage;
|
||||
}
|
||||
}
|
@ -0,0 +1,248 @@
|
||||
package org.dromara.materials.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.constant.CommonConstant;
|
||||
import org.dromara.common.core.constant.HttpStatus;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.ObjectUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.core.utils.sql.SqlUtil;
|
||||
import org.dromara.materials.domain.BusMaterials;
|
||||
import org.dromara.materials.domain.req.materials.MaterialsCreateReq;
|
||||
import org.dromara.materials.domain.req.materials.MaterialsQueryReq;
|
||||
import org.dromara.materials.domain.req.materials.MaterialsUpdateReq;
|
||||
import org.dromara.materials.domain.vo.BusMaterialsVo;
|
||||
import org.dromara.materials.mapper.BusMaterialsMapper;
|
||||
import org.dromara.materials.service.IBusCompanyService;
|
||||
import org.dromara.materials.service.IBusMaterialsService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 材料名称Service业务层处理
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-06
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class BusMaterialsServiceImpl extends ServiceImpl<BusMaterialsMapper, BusMaterials>
|
||||
implements IBusMaterialsService {
|
||||
|
||||
@Resource
|
||||
private BusMaterialsMapper baseMapper;
|
||||
|
||||
@Resource
|
||||
private IBusCompanyService companyService;
|
||||
|
||||
/**
|
||||
* 查询材料名称
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 材料名称
|
||||
*/
|
||||
@Override
|
||||
public BusMaterialsVo queryById(Long id) {
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询材料名称列表
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 材料名称分页列表
|
||||
*/
|
||||
@Override
|
||||
public Page<BusMaterialsVo> queryPageList(MaterialsQueryReq req) {
|
||||
long current = req.getCurrent();
|
||||
long size = req.getPageSize();
|
||||
// 查询数据库
|
||||
Page<BusMaterials> result = this.page(new Page<>(current, size), this.getQueryWrapper(req));
|
||||
return this.getMaterialsVoPage(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的材料名称列表
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 材料名称列表
|
||||
*/
|
||||
@Override
|
||||
public List<BusMaterialsVo> queryList(MaterialsQueryReq req) {
|
||||
QueryWrapper<BusMaterials> queryWrapper = this.getQueryWrapper(req);
|
||||
return baseMapper.selectVoList(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增材料名称
|
||||
*
|
||||
* @param req 材料名称
|
||||
* @return 新增材料信息id
|
||||
*/
|
||||
@Override
|
||||
public Long insertByBo(MaterialsCreateReq req) {
|
||||
// 将实体类和 DTO 进行转换
|
||||
BusMaterials materials = new BusMaterials();
|
||||
BeanUtils.copyProperties(req, materials);
|
||||
// 数据校验
|
||||
validEntityBeforeSave(materials);
|
||||
// 写入数据库
|
||||
boolean save = this.save(materials);
|
||||
if (!save) {
|
||||
throw new ServiceException("新增材料信息失败,数据库异常", HttpStatus.ERROR);
|
||||
}
|
||||
// 返回新写入的数据
|
||||
return materials.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改材料名称
|
||||
*
|
||||
* @param req 材料名称
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(MaterialsUpdateReq req) {
|
||||
// 将实体类和 DTO 进行转换
|
||||
BusMaterials materials = new BusMaterials();
|
||||
BeanUtils.copyProperties(req, materials);
|
||||
// 数据校验
|
||||
validEntityBeforeSave(materials);
|
||||
// 判断是否存在
|
||||
BusMaterials oldMaterials = this.getById(materials.getId());
|
||||
if (oldMaterials == null) {
|
||||
throw new ServiceException("修改材料信息失败,数据不存在", HttpStatus.NOT_FOUND);
|
||||
}
|
||||
// 操作数据库
|
||||
return this.updateById(materials);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(BusMaterials entity) {
|
||||
// TODO 做一些数据校验,如唯一约束
|
||||
String materialsName = entity.getMaterialsName();
|
||||
Long companyId = entity.getCompanyId();
|
||||
Long projectId = entity.getProjectId();
|
||||
if (StringUtils.isEmpty(materialsName)) {
|
||||
throw new ServiceException("请填写材料名称", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
if (companyId == null) {
|
||||
throw new ServiceException("请填写公司ID", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
if (projectId == null) {
|
||||
throw new ServiceException("请填写项目ID", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除材料名称信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if (isValid) {
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取材料视图
|
||||
*
|
||||
* @param Materials 材料
|
||||
* @return 材料视图
|
||||
*/
|
||||
@Override
|
||||
public BusMaterialsVo getBusMaterialsVo(BusMaterials Materials) {
|
||||
// 对象转封装类
|
||||
BusMaterialsVo materialsVo = new BusMaterialsVo();
|
||||
if (Materials == null) {
|
||||
return materialsVo;
|
||||
}
|
||||
BeanUtils.copyProperties(Materials, materialsVo);
|
||||
// 关联查询项目信息
|
||||
Long companyId = Materials.getCompanyId();
|
||||
if (companyId != null) {
|
||||
materialsVo.setCompanyVo(companyService.queryById(companyId));
|
||||
}
|
||||
return materialsVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建查询条件封装
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 查询条件封装
|
||||
*/
|
||||
@Override
|
||||
public QueryWrapper<BusMaterials> getQueryWrapper(MaterialsQueryReq req) {
|
||||
QueryWrapper<BusMaterials> queryWrapper = new QueryWrapper<>();
|
||||
if (req == null) {
|
||||
return queryWrapper;
|
||||
}
|
||||
// 从对象中取值
|
||||
Long id = req.getId();
|
||||
String materialsName = req.getMaterialsName();
|
||||
Long companyId = req.getCompanyId();
|
||||
Long projectId = req.getProjectId();
|
||||
String usePart = req.getUsePart();
|
||||
String weightId = req.getWeightId();
|
||||
String remark = req.getRemark();
|
||||
String quantityCount = req.getQuantityCount();
|
||||
String status = req.getStatus();
|
||||
String sortField = req.getSortField();
|
||||
String sortOrder = req.getSortOrder();
|
||||
String underlineSortField = StrUtil.toUnderlineCase(sortField);
|
||||
// 模糊查询
|
||||
queryWrapper.like(StringUtils.isNotBlank(materialsName), "materials_name", materialsName);
|
||||
queryWrapper.like(StringUtils.isNotBlank(usePart), "use_part", usePart);
|
||||
queryWrapper.like(StringUtils.isNotBlank(remark), "remark", remark);
|
||||
queryWrapper.like(StringUtils.isNotBlank(weightId), "weight_id", weightId);
|
||||
queryWrapper.like(StringUtils.isNotBlank(quantityCount), "quantity_count", quantityCount);
|
||||
// 精确查询
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(status), "status", status);
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(id), "id", id);
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(projectId), "project_id", projectId);
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(companyId), "company_id", companyId);
|
||||
// 排序规则
|
||||
queryWrapper.orderBy(SqlUtil.validSortField(sortField),
|
||||
sortOrder.equals(CommonConstant.SORT_ORDER_ASC),
|
||||
underlineSortField);
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取材料分页对象视图
|
||||
*
|
||||
* @param materialsPage 材料分页对象
|
||||
* @return 材料分页对象视图
|
||||
*/
|
||||
@Override
|
||||
public Page<BusMaterialsVo> getMaterialsVoPage(Page<BusMaterials> materialsPage) {
|
||||
// 获取材料数据
|
||||
List<BusMaterials> materialsList = materialsPage.getRecords();
|
||||
// 添加分页信息
|
||||
Page<BusMaterialsVo> materialsVoPage = new Page<>(materialsPage.getCurrent(), materialsPage.getSize(), materialsPage.getTotal());
|
||||
if (CollUtil.isEmpty(materialsList)) {
|
||||
return materialsVoPage;
|
||||
}
|
||||
// 对象列表 => 封装对象列表
|
||||
List<BusMaterialsVo> materialsVoList = materialsList.stream().map(this::getBusMaterialsVo).toList();
|
||||
materialsVoPage.setRecords(materialsVoList);
|
||||
return materialsVoPage;
|
||||
}
|
||||
}
|
@ -16,7 +16,6 @@ import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.project.domain.bo.ProjectBo;
|
||||
import org.dromara.project.domain.req.project.ProjectCreateReq;
|
||||
import org.dromara.project.domain.req.project.ProjectQueryReq;
|
||||
import org.dromara.project.domain.req.project.ProjectUpdateReq;
|
||||
@ -56,8 +55,8 @@ public class ProjectController extends BaseController {
|
||||
@SaCheckPermission("project:project:export")
|
||||
@Log(title = "项目", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(ProjectBo bo, HttpServletResponse response) {
|
||||
List<ProjectVo> list = projectService.queryList(bo);
|
||||
public void export(ProjectQueryReq req, HttpServletResponse response) {
|
||||
List<ProjectVo> list = projectService.queryList(req);
|
||||
ExcelUtil.exportExcel(list, "项目", ProjectVo.class, response);
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package org.dromara.project.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
@ -14,12 +15,10 @@ import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.project.domain.UserProjectRelevancy;
|
||||
import org.dromara.project.domain.bo.UserProjectRelevancyBo;
|
||||
import org.dromara.project.domain.req.project.ProjectBatchByProjectListReq;
|
||||
import org.dromara.project.domain.req.userprojectrelevancy.UserProjectRelevancyCreateReq;
|
||||
import org.dromara.project.domain.req.userprojectrelevancy.UserProjectRelevancyQueryReq;
|
||||
@ -30,7 +29,6 @@ import org.dromara.project.service.IUserProjectRelevancyService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -53,8 +51,8 @@ public class UserProjectRelevancyController extends BaseController {
|
||||
@Tag(name = "查询用户与项目关联列表")
|
||||
@SaCheckPermission("project:projectRelevancy:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<UserProjectRelevancyVo> list(UserProjectRelevancyBo bo, PageQuery pageQuery) {
|
||||
return userProjectRelevancyService.queryPageList(bo, pageQuery);
|
||||
public Page<UserProjectRelevancyVo> list(UserProjectRelevancyQueryReq req) {
|
||||
return userProjectRelevancyService.queryPageList(req);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -86,8 +84,8 @@ public class UserProjectRelevancyController extends BaseController {
|
||||
@SaCheckPermission("project:projectRelevancy:export")
|
||||
@Log(title = "系统用户与项目关联", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(UserProjectRelevancyBo bo, HttpServletResponse response) {
|
||||
List<UserProjectRelevancyVo> list = userProjectRelevancyService.queryList(bo);
|
||||
public void export(UserProjectRelevancyQueryReq req, HttpServletResponse response) {
|
||||
List<UserProjectRelevancyVo> list = userProjectRelevancyService.queryList(req);
|
||||
ExcelUtil.exportExcel(list, "系统用户与项目关联", UserProjectRelevancyVo.class, response);
|
||||
}
|
||||
|
||||
@ -140,13 +138,16 @@ public class UserProjectRelevancyController extends BaseController {
|
||||
public R<Boolean> removeBatchByProjectList(@RequestBody ProjectBatchByProjectListReq req) {
|
||||
Long userId = req.getUserId();
|
||||
Long[] projectIdList = req.getProjectIdList();
|
||||
List<UserProjectRelevancy> userProjectRelevancyList = Arrays.stream(projectIdList).map(projectId -> {
|
||||
QueryWrapper<UserProjectRelevancy> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("user_id", userId).in("project_id", (Object[]) projectIdList);
|
||||
boolean result = userProjectRelevancyService.remove(wrapper);
|
||||
/* List<UserProjectRelevancy> userProjectRelevancyList = Arrays.stream(projectIdList).map(projectId -> {
|
||||
UserProjectRelevancy userProjectRelevancy = new UserProjectRelevancy();
|
||||
userProjectRelevancy.setUserId(userId);
|
||||
userProjectRelevancy.setProjectId(projectId);
|
||||
return userProjectRelevancy;
|
||||
}).toList();
|
||||
boolean result = userProjectRelevancyService.removeBatchByIds(userProjectRelevancyList);
|
||||
boolean result = userProjectRelevancyService.removeBatchByIds(userProjectRelevancyList);*/
|
||||
return R.ok(result);
|
||||
}
|
||||
|
||||
|
@ -1,141 +0,0 @@
|
||||
package org.dromara.project.domain.bo;
|
||||
|
||||
import org.dromara.project.domain.Project;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 项目业务对象 project
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-04
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = Project.class, reverseConvertGenerate = false)
|
||||
public class ProjectBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
@NotNull(message = "不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 项目简称
|
||||
*/
|
||||
private String shortName;
|
||||
|
||||
/**
|
||||
* 父项目id
|
||||
*/
|
||||
private Long pId;
|
||||
|
||||
/**
|
||||
* 状态(0正常 1停用)
|
||||
*/
|
||||
private Long status;
|
||||
|
||||
/**
|
||||
* 项目图片
|
||||
*/
|
||||
private String picUrl;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 项目类型(1光伏 2风电)
|
||||
*/
|
||||
private Long isType;
|
||||
|
||||
/**
|
||||
* 删除时间
|
||||
*/
|
||||
private Date deletedAt;
|
||||
|
||||
/**
|
||||
* 项目地址
|
||||
*/
|
||||
private String projectSite;
|
||||
|
||||
/**
|
||||
* 负责人
|
||||
*/
|
||||
private String principal;
|
||||
|
||||
/**
|
||||
* 负责人电话
|
||||
*/
|
||||
private String principalPhone;
|
||||
|
||||
/**
|
||||
* 实际容量
|
||||
*/
|
||||
private String actual;
|
||||
|
||||
/**
|
||||
* 计划容量
|
||||
*/
|
||||
private String plan;
|
||||
|
||||
/**
|
||||
* 开工时间
|
||||
*/
|
||||
private String onStreamTime;
|
||||
|
||||
/**
|
||||
* 打卡范围(09:00,18:00)
|
||||
*/
|
||||
@NotBlank(message = "打卡范围(09:00,18:00)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String punchRange;
|
||||
|
||||
/**
|
||||
* 设计总量
|
||||
*/
|
||||
@NotNull(message = "设计总量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long designTotal;
|
||||
|
||||
/**
|
||||
* 安全协议书
|
||||
*/
|
||||
private String securityAgreement;
|
||||
|
||||
/**
|
||||
* 排序字段
|
||||
*/
|
||||
@NotNull(message = "排序字段不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long sort;
|
||||
|
||||
/**
|
||||
* 显示隐藏(0显示 1隐藏)
|
||||
*/
|
||||
private Long showHidden;
|
||||
|
||||
/**
|
||||
* 是否删除(0正常 1删除)
|
||||
*/
|
||||
@NotNull(message = "是否删除(0正常 1删除)不能为空", groups = { EditGroup.class })
|
||||
private Long isDelete;
|
||||
|
||||
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
package org.dromara.project.domain.bo;
|
||||
|
||||
import org.dromara.project.domain.UserProjectRelevancy;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 系统用户与项目关联业务对象 user_project_relevancy
|
||||
*
|
||||
* @author lcj
|
||||
* @date 2025-03-04
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = UserProjectRelevancy.class, reverseConvertGenerate = false)
|
||||
public class UserProjectRelevancyBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@NotNull(message = "用户ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
@NotNull(message = "项目ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 删除时间
|
||||
*/
|
||||
private Date deletedAt;
|
||||
|
||||
|
||||
}
|
@ -3,10 +3,7 @@ package org.dromara.project.service;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.project.domain.Project;
|
||||
import org.dromara.project.domain.bo.ProjectBo;
|
||||
import org.dromara.project.domain.req.project.ProjectCreateReq;
|
||||
import org.dromara.project.domain.req.project.ProjectQueryReq;
|
||||
import org.dromara.project.domain.req.project.ProjectUpdateReq;
|
||||
@ -58,10 +55,10 @@ public interface IProjectService extends IService<Project> {
|
||||
/**
|
||||
* 查询符合条件的项目列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param req 查询条件
|
||||
* @return 项目列表
|
||||
*/
|
||||
List<ProjectVo> queryList(ProjectBo bo);
|
||||
List<ProjectVo> queryList(ProjectQueryReq req);
|
||||
|
||||
/**
|
||||
* 获取项目分页对象视图
|
||||
|
@ -3,10 +3,7 @@ package org.dromara.project.service;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.project.domain.UserProjectRelevancy;
|
||||
import org.dromara.project.domain.bo.UserProjectRelevancyBo;
|
||||
import org.dromara.project.domain.req.project.ProjectBatchByProjectListReq;
|
||||
import org.dromara.project.domain.req.userprojectrelevancy.UserProjectRelevancyCreateReq;
|
||||
import org.dromara.project.domain.req.userprojectrelevancy.UserProjectRelevancyQueryReq;
|
||||
@ -52,19 +49,18 @@ public interface IUserProjectRelevancyService extends IService<UserProjectReleva
|
||||
/**
|
||||
* 分页查询系统用户与项目关联列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @param req 查询条件
|
||||
* @return 系统用户与项目关联分页列表
|
||||
*/
|
||||
TableDataInfo<UserProjectRelevancyVo> queryPageList(UserProjectRelevancyBo bo, PageQuery pageQuery);
|
||||
Page<UserProjectRelevancyVo> queryPageList(UserProjectRelevancyQueryReq req);
|
||||
|
||||
/**
|
||||
* 查询符合条件的系统用户与项目关联列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param req 查询条件
|
||||
* @return 系统用户与项目关联列表
|
||||
*/
|
||||
List<UserProjectRelevancyVo> queryList(UserProjectRelevancyBo bo);
|
||||
List<UserProjectRelevancyVo> queryList(UserProjectRelevancyQueryReq req);
|
||||
|
||||
/**
|
||||
* 新增系统用户与项目关联
|
||||
|
@ -2,9 +2,7 @@ package org.dromara.project.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
@ -17,7 +15,6 @@ import org.dromara.common.core.utils.sql.SqlUtil;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.project.domain.Project;
|
||||
import org.dromara.project.domain.UserProjectRelevancy;
|
||||
import org.dromara.project.domain.bo.ProjectBo;
|
||||
import org.dromara.project.domain.req.project.ProjectCreateReq;
|
||||
import org.dromara.project.domain.req.project.ProjectQueryReq;
|
||||
import org.dromara.project.domain.req.project.ProjectUpdateReq;
|
||||
@ -25,7 +22,6 @@ import org.dromara.project.domain.vo.ProjectVo;
|
||||
import org.dromara.project.mapper.ProjectMapper;
|
||||
import org.dromara.project.service.IProjectService;
|
||||
import org.dromara.project.service.IUserProjectRelevancyService;
|
||||
import org.dromara.system.service.ISysUserService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -46,9 +42,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project>
|
||||
@Resource
|
||||
private ProjectMapper baseMapper;
|
||||
|
||||
@Resource
|
||||
private ISysUserService userService;
|
||||
|
||||
@Lazy
|
||||
@Resource
|
||||
private IUserProjectRelevancyService userProjectRelevancyService;
|
||||
@ -152,13 +145,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project>
|
||||
/**
|
||||
* 查询符合条件的项目列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param req 查询条件
|
||||
* @return 项目列表
|
||||
*/
|
||||
@Override
|
||||
public List<ProjectVo> queryList(ProjectBo bo) {
|
||||
LambdaQueryWrapper<Project> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
public List<ProjectVo> queryList(ProjectQueryReq req) {
|
||||
QueryWrapper<Project> queryWrapper = this.getQueryWrapper(req);
|
||||
return baseMapper.selectVoList(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -174,31 +167,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project>
|
||||
return projectVoPage;
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<Project> buildQueryWrapper(ProjectBo bo) {
|
||||
LambdaQueryWrapper<Project> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByAsc(Project::getId);
|
||||
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), Project::getProjectName, bo.getProjectName());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getShortName()), Project::getShortName, bo.getShortName());
|
||||
lqw.eq(bo.getPId() != null, Project::getPId, bo.getPId());
|
||||
lqw.eq(bo.getStatus() != null, Project::getStatus, bo.getStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPicUrl()), Project::getPicUrl, bo.getPicUrl());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getType()), Project::getType, bo.getType());
|
||||
lqw.eq(bo.getIsType() != null, Project::getIsType, bo.getIsType());
|
||||
lqw.eq(bo.getDeletedAt() != null, Project::getDeletedAt, bo.getDeletedAt());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectSite()), Project::getProjectSite, bo.getProjectSite());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPrincipal()), Project::getPrincipal, bo.getPrincipal());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPrincipalPhone()), Project::getPrincipalPhone, bo.getPrincipalPhone());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getActual()), Project::getActual, bo.getActual());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPlan()), Project::getPlan, bo.getPlan());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getOnStreamTime()), Project::getOnStreamTime, bo.getOnStreamTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPunchRange()), Project::getPunchRange, bo.getPunchRange());
|
||||
lqw.eq(bo.getDesignTotal() != null, Project::getDesignTotal, bo.getDesignTotal());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSecurityAgreement()), Project::getSecurityAgreement, bo.getSecurityAgreement());
|
||||
lqw.eq(bo.getSort() != null, Project::getSort, bo.getSort());
|
||||
lqw.eq(bo.getShowHidden() != null, Project::getShowHidden, bo.getShowHidden());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增项目
|
||||
*
|
||||
|
@ -13,12 +13,8 @@ import org.dromara.common.core.constant.HttpStatus;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.ObjectUtils;
|
||||
import org.dromara.common.core.utils.sql.SqlUtil;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.project.domain.Project;
|
||||
import org.dromara.project.domain.UserProjectRelevancy;
|
||||
import org.dromara.project.domain.bo.UserProjectRelevancyBo;
|
||||
import org.dromara.project.domain.req.project.ProjectBatchByProjectListReq;
|
||||
import org.dromara.project.domain.req.userprojectrelevancy.UserProjectRelevancyCreateReq;
|
||||
import org.dromara.project.domain.req.userprojectrelevancy.UserProjectRelevancyQueryReq;
|
||||
@ -102,41 +98,29 @@ public class UserProjectRelevancyServiceImpl extends ServiceImpl<UserProjectRele
|
||||
/**
|
||||
* 分页查询系统用户与项目关联列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @param req 查询条件
|
||||
* @return 系统用户与项目关联分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<UserProjectRelevancyVo> queryPageList(UserProjectRelevancyBo bo, PageQuery pageQuery) {
|
||||
Page<UserProjectRelevancyVo> resultVo = pageQuery.build();
|
||||
LambdaQueryWrapper<UserProjectRelevancy> lqw = buildQueryWrapper(bo);
|
||||
Page<UserProjectRelevancy> result = this.page(pageQuery.build(), lqw);
|
||||
if (CollUtil.isEmpty(result.getRecords())) {
|
||||
return TableDataInfo.build(resultVo);
|
||||
}
|
||||
List<UserProjectRelevancyVo> userProjectRelevancyVos = result.getRecords().stream().map(this::getUserProjectRelevancyVo).toList();
|
||||
resultVo.setRecords(userProjectRelevancyVos);
|
||||
return TableDataInfo.build(resultVo);
|
||||
public Page<UserProjectRelevancyVo> queryPageList(UserProjectRelevancyQueryReq req) {
|
||||
long current = req.getCurrent();
|
||||
long size = req.getPageSize();
|
||||
QueryWrapper<UserProjectRelevancy> queryWrapper = this.getQueryWrapper(req);
|
||||
// 查询数据库
|
||||
Page<UserProjectRelevancy> result = this.page(new Page<>(current, size), this.getQueryWrapper(req));
|
||||
return this.getUserProjectRelevancyVoPage(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的系统用户与项目关联列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param req 查询条件
|
||||
* @return 系统用户与项目关联列表
|
||||
*/
|
||||
@Override
|
||||
public List<UserProjectRelevancyVo> queryList(UserProjectRelevancyBo bo) {
|
||||
LambdaQueryWrapper<UserProjectRelevancy> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<UserProjectRelevancy> buildQueryWrapper(UserProjectRelevancyBo bo) {
|
||||
LambdaQueryWrapper<UserProjectRelevancy> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByAsc(UserProjectRelevancy::getId);
|
||||
lqw.eq(bo.getUserId() != null, UserProjectRelevancy::getUserId, bo.getUserId());
|
||||
lqw.eq(bo.getProjectId() != null, UserProjectRelevancy::getProjectId, bo.getProjectId());
|
||||
return lqw;
|
||||
public List<UserProjectRelevancyVo> queryList(UserProjectRelevancyQueryReq req) {
|
||||
QueryWrapper<UserProjectRelevancy> queryWrapper = this.getQueryWrapper(req);
|
||||
return baseMapper.selectVoList(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -234,10 +218,7 @@ public class UserProjectRelevancyServiceImpl extends ServiceImpl<UserProjectRele
|
||||
public List<LoginUserProjectRelevancyResp> queryListByUserId(Long userId) {
|
||||
// 添加查询条件,根据当前用户,获取数据
|
||||
LambdaQueryWrapper<UserProjectRelevancy> queryWrapper = Wrappers.lambdaQuery();
|
||||
// 如果是超级管理员查看所有
|
||||
if (!LoginHelper.isSuperAdmin()) {
|
||||
queryWrapper.eq(UserProjectRelevancy::getUserId, userId);
|
||||
}
|
||||
queryWrapper.eq(UserProjectRelevancy::getUserId, userId);
|
||||
// 查询数据库,获取数据
|
||||
List<UserProjectRelevancy> list = this.list(queryWrapper);
|
||||
// 获取封装
|
||||
@ -266,11 +247,8 @@ public class UserProjectRelevancyServiceImpl extends ServiceImpl<UserProjectRele
|
||||
public Page<UserProjectRelevancyVo> queryPageByUserId(Long userId, UserProjectRelevancyQueryReq req) {
|
||||
long current = req.getCurrent();
|
||||
long size = req.getPageSize();
|
||||
// 如果是超级管理员查看所有
|
||||
if (!LoginHelper.isSuperAdmin()) {
|
||||
// 添加查询条件
|
||||
req.setUserId(userId);
|
||||
}
|
||||
// 添加查询条件
|
||||
req.setUserId(userId);
|
||||
QueryWrapper<UserProjectRelevancy> queryWrapper = this.getQueryWrapper(req);
|
||||
// 查询数据库
|
||||
Page<UserProjectRelevancy> result = this.page(new Page<>(current, size), queryWrapper);
|
||||
|
@ -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.materials.mapper.BusCompanyMapper">
|
||||
|
||||
</mapper>
|
@ -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.materials.mapper.BusMaterialsInventoryMapper">
|
||||
|
||||
</mapper>
|
@ -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.materials.mapper.BusMaterialsMapper">
|
||||
|
||||
</mapper>
|
Reference in New Issue
Block a user