add(dms): 添加设备 BOM、折旧和安装信息功能模块

- 新增 DmsBaseDeviceBom、DmsBaseDeviceDepreciation 和 DmsBaseDeviceInstall 三个实体类及其相关业务对象
- 实现了设备 BOM、折旧和安装信息的增删改查功能
- 添加了数据校验、分页查询和 Excel 导出等功能
- 与设备信息的关联查询
master
zch 4 months ago
parent 0fd8197d49
commit 1975dd6199

@ -0,0 +1,117 @@
package org.dromara.dms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.dms.domain.vo.DmsBaseDeviceBomVo;
import org.dromara.dms.domain.bo.DmsBaseDeviceBomBo;
import org.dromara.dms.service.IDmsBaseDeviceBomService;
/**
* BOM
* 访:/dms/dmsBaseDeviceBom
*
* @author zch
* @date 2025-03-20
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/dmsBaseDeviceBom")
public class DmsBaseDeviceBomController extends BaseController {
private final IDmsBaseDeviceBomService dmsBaseDeviceBomService;
/**
* BOM
*/
@SaCheckPermission("dms:dmsBaseDeviceBom:list")
@GetMapping("/list")
public R<List<DmsBaseDeviceBomVo>> list(DmsBaseDeviceBomBo bo) {
List<DmsBaseDeviceBomVo> list = dmsBaseDeviceBomService.queryList(bo);
return R.ok(list);
}
/**
* BOM
*/
@SaCheckPermission("dms:dmsBaseDeviceBom:export")
@Log(title = "设备BOM信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(DmsBaseDeviceBomBo bo, HttpServletResponse response) {
List<DmsBaseDeviceBomVo> list = dmsBaseDeviceBomService.queryList(bo);
ExcelUtil.exportExcel(list, "设备BOM信息", DmsBaseDeviceBomVo.class, response);
}
/**
* BOM
*
* @param deviceBomId
*/
@SaCheckPermission("dms:dmsBaseDeviceBom:query")
@GetMapping("/{deviceBomId}")
public R<DmsBaseDeviceBomVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long deviceBomId) {
return R.ok(dmsBaseDeviceBomService.queryById(deviceBomId));
}
/**
* BOM
*/
@SaCheckPermission("dms:dmsBaseDeviceBom:add")
@Log(title = "设备BOM信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DmsBaseDeviceBomBo bo) {
return toAjax(dmsBaseDeviceBomService.insertByBo(bo));
}
/**
* BOM
*/
@SaCheckPermission("dms:dmsBaseDeviceBom:edit")
@Log(title = "设备BOM信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DmsBaseDeviceBomBo bo) {
return toAjax(dmsBaseDeviceBomService.updateByBo(bo));
}
/**
* BOM
*
* @param deviceBomIds
*/
@SaCheckPermission("dms:dmsBaseDeviceBom:remove")
@Log(title = "设备BOM信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{deviceBomIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] deviceBomIds) {
return toAjax(dmsBaseDeviceBomService.deleteWithValidByIds(List.of(deviceBomIds), true));
}
/**
* BOM
*/
@GetMapping("/getDmsBaseDeviceBomList")
public R<List<DmsBaseDeviceBomVo>> getDmsBaseDeviceBomList(DmsBaseDeviceBomBo bo) {
List<DmsBaseDeviceBomVo> list = dmsBaseDeviceBomService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,117 @@
package org.dromara.dms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.dms.domain.vo.DmsBaseDeviceDepreciationVo;
import org.dromara.dms.domain.bo.DmsBaseDeviceDepreciationBo;
import org.dromara.dms.service.IDmsBaseDeviceDepreciationService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
* 访:/dms/dmsBaseDeviceDepreciation
*
* @author zch
* @date 2025-03-20
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/dmsBaseDeviceDepreciation")
public class DmsBaseDeviceDepreciationController extends BaseController {
private final IDmsBaseDeviceDepreciationService dmsBaseDeviceDepreciationService;
/**
*
*/
@SaCheckPermission("dms:dmsBaseDeviceDepreciation:list")
@GetMapping("/list")
public TableDataInfo<DmsBaseDeviceDepreciationVo> list(DmsBaseDeviceDepreciationBo bo, PageQuery pageQuery) {
return dmsBaseDeviceDepreciationService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseDeviceDepreciation:export")
@Log(title = "设备折旧信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(DmsBaseDeviceDepreciationBo bo, HttpServletResponse response) {
List<DmsBaseDeviceDepreciationVo> list = dmsBaseDeviceDepreciationService.queryList(bo);
ExcelUtil.exportExcel(list, "设备折旧信息", DmsBaseDeviceDepreciationVo.class, response);
}
/**
*
*
* @param deviceDepreciationId
*/
@SaCheckPermission("dms:dmsBaseDeviceDepreciation:query")
@GetMapping("/{deviceDepreciationId}")
public R<DmsBaseDeviceDepreciationVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long deviceDepreciationId) {
return R.ok(dmsBaseDeviceDepreciationService.queryById(deviceDepreciationId));
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseDeviceDepreciation:add")
@Log(title = "设备折旧信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DmsBaseDeviceDepreciationBo bo) {
return toAjax(dmsBaseDeviceDepreciationService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseDeviceDepreciation:edit")
@Log(title = "设备折旧信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DmsBaseDeviceDepreciationBo bo) {
return toAjax(dmsBaseDeviceDepreciationService.updateByBo(bo));
}
/**
*
*
* @param deviceDepreciationIds
*/
@SaCheckPermission("dms:dmsBaseDeviceDepreciation:remove")
@Log(title = "设备折旧信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{deviceDepreciationIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] deviceDepreciationIds) {
return toAjax(dmsBaseDeviceDepreciationService.deleteWithValidByIds(List.of(deviceDepreciationIds), true));
}
/**
*
*/
@GetMapping("/getDmsBaseDeviceDepreciationList")
public R<List<DmsBaseDeviceDepreciationVo>> getDmsBaseDeviceDepreciationList(DmsBaseDeviceDepreciationBo bo) {
List<DmsBaseDeviceDepreciationVo> list = dmsBaseDeviceDepreciationService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,118 @@
package org.dromara.dms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.dms.domain.vo.DmsBaseDeviceInstallVo;
import org.dromara.dms.domain.bo.DmsBaseDeviceInstallBo;
import org.dromara.dms.service.IDmsBaseDeviceInstallService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
* 访:/dms/dmsBaseDeviceInstall
*
* @author zch
* @date 2025-03-20
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/dmsBaseDeviceInstall")
public class DmsBaseDeviceInstallController extends BaseController {
private final IDmsBaseDeviceInstallService dmsBaseDeviceInstallService;
/**
*
*/
@SaCheckPermission("dms:dmsBaseDeviceInstall:list")
@GetMapping("/list")
public TableDataInfo<DmsBaseDeviceInstallVo> list(DmsBaseDeviceInstallBo bo, PageQuery pageQuery) {
return dmsBaseDeviceInstallService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseDeviceInstall:export")
@Log(title = "设备安装信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(DmsBaseDeviceInstallBo bo, HttpServletResponse response) {
List<DmsBaseDeviceInstallVo> list = dmsBaseDeviceInstallService.queryList(bo);
ExcelUtil.exportExcel(list, "设备安装信息", DmsBaseDeviceInstallVo.class, response);
}
/**
*
*
* @param deviceInstallId
*/
@SaCheckPermission("dms:dmsBaseDeviceInstall:query")
@GetMapping("/{deviceInstallId}")
public R<DmsBaseDeviceInstallVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long deviceInstallId) {
return R.ok(dmsBaseDeviceInstallService.queryById(deviceInstallId));
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseDeviceInstall:add")
@Log(title = "设备安装信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DmsBaseDeviceInstallBo bo) {
return toAjax(dmsBaseDeviceInstallService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseDeviceInstall:edit")
@Log(title = "设备安装信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DmsBaseDeviceInstallBo bo) {
return toAjax(dmsBaseDeviceInstallService.updateByBo(bo));
}
/**
*
*
* @param deviceInstallIds
*/
@SaCheckPermission("dms:dmsBaseDeviceInstall:remove")
@Log(title = "设备安装信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{deviceInstallIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] deviceInstallIds) {
return toAjax(dmsBaseDeviceInstallService.deleteWithValidByIds(List.of(deviceInstallIds), true));
}
/**
*
*/
@GetMapping("/getDmsBaseDeviceInstallList")
public R<List<DmsBaseDeviceInstallVo>> getDmsBaseDeviceInstallList(DmsBaseDeviceInstallBo bo) {
List<DmsBaseDeviceInstallVo> list = dmsBaseDeviceInstallService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,117 @@
package org.dromara.dms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.dms.domain.vo.DmsBaseDevicePurchaseVo;
import org.dromara.dms.domain.bo.DmsBaseDevicePurchaseBo;
import org.dromara.dms.service.IDmsBaseDevicePurchaseService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
* 访:/dms/dmsBaseDevicePurchase
*
* @author zch
* @date 2025-03-20
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/dmsBaseDevicePurchase")
public class DmsBaseDevicePurchaseController extends BaseController {
private final IDmsBaseDevicePurchaseService dmsBaseDevicePurchaseService;
/**
*
*/
@SaCheckPermission("dms:dmsBaseDevicePurchase:list")
@GetMapping("/list")
public TableDataInfo<DmsBaseDevicePurchaseVo> list(DmsBaseDevicePurchaseBo bo, PageQuery pageQuery) {
return dmsBaseDevicePurchaseService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseDevicePurchase:export")
@Log(title = "设备采购信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(DmsBaseDevicePurchaseBo bo, HttpServletResponse response) {
List<DmsBaseDevicePurchaseVo> list = dmsBaseDevicePurchaseService.queryList(bo);
ExcelUtil.exportExcel(list, "设备采购信息", DmsBaseDevicePurchaseVo.class, response);
}
/**
*
*
* @param devicePurchaseId
*/
@SaCheckPermission("dms:dmsBaseDevicePurchase:query")
@GetMapping("/{devicePurchaseId}")
public R<DmsBaseDevicePurchaseVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long devicePurchaseId) {
return R.ok(dmsBaseDevicePurchaseService.queryById(devicePurchaseId));
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseDevicePurchase:add")
@Log(title = "设备采购信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DmsBaseDevicePurchaseBo bo) {
return toAjax(dmsBaseDevicePurchaseService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseDevicePurchase:edit")
@Log(title = "设备采购信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DmsBaseDevicePurchaseBo bo) {
return toAjax(dmsBaseDevicePurchaseService.updateByBo(bo));
}
/**
*
*
* @param devicePurchaseIds
*/
@SaCheckPermission("dms:dmsBaseDevicePurchase:remove")
@Log(title = "设备采购信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{devicePurchaseIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] devicePurchaseIds) {
return toAjax(dmsBaseDevicePurchaseService.deleteWithValidByIds(List.of(devicePurchaseIds), true));
}
/**
*
*/
@GetMapping("/getDmsBaseDevicePurchaseList")
public R<List<DmsBaseDevicePurchaseVo>> getDmsBaseDevicePurchaseList(DmsBaseDevicePurchaseBo bo) {
List<DmsBaseDevicePurchaseVo> list = dmsBaseDevicePurchaseService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,117 @@
package org.dromara.dms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.dms.domain.vo.DmsBaseDeviceSupplierVo;
import org.dromara.dms.domain.bo.DmsBaseDeviceSupplierBo;
import org.dromara.dms.service.IDmsBaseDeviceSupplierService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
* 访:/dms/dmsBaseDeviceSupplier
*
* @author zch
* @date 2025-03-20
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/dmsBaseDeviceSupplier")
public class DmsBaseDeviceSupplierController extends BaseController {
private final IDmsBaseDeviceSupplierService dmsBaseDeviceSupplierService;
/**
*
*/
@SaCheckPermission("dms:dmsBaseDeviceSupplier:list")
@GetMapping("/list")
public TableDataInfo<DmsBaseDeviceSupplierVo> list(DmsBaseDeviceSupplierBo bo, PageQuery pageQuery) {
return dmsBaseDeviceSupplierService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseDeviceSupplier:export")
@Log(title = "设备供应商信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(DmsBaseDeviceSupplierBo bo, HttpServletResponse response) {
List<DmsBaseDeviceSupplierVo> list = dmsBaseDeviceSupplierService.queryList(bo);
ExcelUtil.exportExcel(list, "设备供应商信息", DmsBaseDeviceSupplierVo.class, response);
}
/**
*
*
* @param supplierId
*/
@SaCheckPermission("dms:dmsBaseDeviceSupplier:query")
@GetMapping("/{supplierId}")
public R<DmsBaseDeviceSupplierVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long supplierId) {
return R.ok(dmsBaseDeviceSupplierService.queryById(supplierId));
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseDeviceSupplier:add")
@Log(title = "设备供应商信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DmsBaseDeviceSupplierBo bo) {
return toAjax(dmsBaseDeviceSupplierService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseDeviceSupplier:edit")
@Log(title = "设备供应商信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DmsBaseDeviceSupplierBo bo) {
return toAjax(dmsBaseDeviceSupplierService.updateByBo(bo));
}
/**
*
*
* @param supplierIds
*/
@SaCheckPermission("dms:dmsBaseDeviceSupplier:remove")
@Log(title = "设备供应商信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{supplierIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] supplierIds) {
return toAjax(dmsBaseDeviceSupplierService.deleteWithValidByIds(List.of(supplierIds), true));
}
/**
*
*/
@GetMapping("/getDmsBaseDeviceSupplierList")
public R<List<DmsBaseDeviceSupplierVo>> getDmsBaseDeviceSupplierList(DmsBaseDeviceSupplierBo bo) {
List<DmsBaseDeviceSupplierVo> list = dmsBaseDeviceSupplierService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,117 @@
package org.dromara.dms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.dms.domain.vo.DmsBaseOutsourcingInfoVo;
import org.dromara.dms.domain.bo.DmsBaseOutsourcingInfoBo;
import org.dromara.dms.service.IDmsBaseOutsourcingInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
* 访:/dms/dmsBaseOutsourcingInfo
*
* @author zch
* @date 2025-03-20
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/dmsBaseOutsourcingInfo")
public class DmsBaseOutsourcingInfoController extends BaseController {
private final IDmsBaseOutsourcingInfoService dmsBaseOutsourcingInfoService;
/**
*
*/
@SaCheckPermission("dms:dmsBaseOutsourcingInfo:list")
@GetMapping("/list")
public TableDataInfo<DmsBaseOutsourcingInfoVo> list(DmsBaseOutsourcingInfoBo bo, PageQuery pageQuery) {
return dmsBaseOutsourcingInfoService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseOutsourcingInfo:export")
@Log(title = "外协信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(DmsBaseOutsourcingInfoBo bo, HttpServletResponse response) {
List<DmsBaseOutsourcingInfoVo> list = dmsBaseOutsourcingInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "外协信息", DmsBaseOutsourcingInfoVo.class, response);
}
/**
*
*
* @param outsourcingId
*/
@SaCheckPermission("dms:dmsBaseOutsourcingInfo:query")
@GetMapping("/{outsourcingId}")
public R<DmsBaseOutsourcingInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long outsourcingId) {
return R.ok(dmsBaseOutsourcingInfoService.queryById(outsourcingId));
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseOutsourcingInfo:add")
@Log(title = "外协信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DmsBaseOutsourcingInfoBo bo) {
return toAjax(dmsBaseOutsourcingInfoService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseOutsourcingInfo:edit")
@Log(title = "外协信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DmsBaseOutsourcingInfoBo bo) {
return toAjax(dmsBaseOutsourcingInfoService.updateByBo(bo));
}
/**
*
*
* @param outsourcingIds
*/
@SaCheckPermission("dms:dmsBaseOutsourcingInfo:remove")
@Log(title = "外协信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{outsourcingIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] outsourcingIds) {
return toAjax(dmsBaseOutsourcingInfoService.deleteWithValidByIds(List.of(outsourcingIds), true));
}
/**
*
*/
@GetMapping("/getDmsBaseOutsourcingInfoList")
public R<List<DmsBaseOutsourcingInfoVo>> getDmsBaseOutsourcingInfoList(DmsBaseOutsourcingInfoBo bo) {
List<DmsBaseOutsourcingInfoVo> list = dmsBaseOutsourcingInfoService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,118 @@
package org.dromara.dms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.dms.domain.vo.DmsBaseTransferInfoVo;
import org.dromara.dms.domain.bo.DmsBaseTransferInfoBo;
import org.dromara.dms.service.IDmsBaseTransferInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
* 访:/dms/dmsBaseTransferInfo
*
* @author Yinq
* @date 2025-03-20
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/dmsBaseTransferInfo")
public class DmsBaseTransferInfoController extends BaseController {
private final IDmsBaseTransferInfoService dmsBaseTransferInfoService;
/**
*
*/
@SaCheckPermission("dms:dmsBaseTransferInfo:list")
@GetMapping("/list")
public TableDataInfo<DmsBaseTransferInfoVo> list(DmsBaseTransferInfoBo bo, PageQuery pageQuery) {
return dmsBaseTransferInfoService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseTransferInfo:export")
@Log(title = "设备转移信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(DmsBaseTransferInfoBo bo, HttpServletResponse response) {
List<DmsBaseTransferInfoVo> list = dmsBaseTransferInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "设备转移信息", DmsBaseTransferInfoVo.class, response);
}
/**
*
*
* @param transferInfoId
*/
@SaCheckPermission("dms:dmsBaseTransferInfo:query")
@GetMapping("/{transferInfoId}")
public R<DmsBaseTransferInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long transferInfoId) {
return R.ok(dmsBaseTransferInfoService.queryById(transferInfoId));
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseTransferInfo:add")
@Log(title = "设备转移信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DmsBaseTransferInfoBo bo) {
return toAjax(dmsBaseTransferInfoService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("dms:dmsBaseTransferInfo:edit")
@Log(title = "设备转移信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DmsBaseTransferInfoBo bo) {
return toAjax(dmsBaseTransferInfoService.updateByBo(bo));
}
/**
*
*
* @param transferInfoIds
*/
@SaCheckPermission("dms:dmsBaseTransferInfo:remove")
@Log(title = "设备转移信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{transferInfoIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] transferInfoIds) {
return toAjax(dmsBaseTransferInfoService.deleteWithValidByIds(List.of(transferInfoIds), true));
}
/**
*
*/
@GetMapping("/getDmsBaseTransferInfoList")
public R<List<DmsBaseTransferInfoVo>> getDmsBaseTransferInfoList(DmsBaseTransferInfoBo bo) {
List<DmsBaseTransferInfoVo> list = dmsBaseTransferInfoService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,67 @@
package org.dromara.dms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* BOM dms_base_device_bom
*
* @author zch
* @date 2025-03-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dms_base_device_bom")
public class DmsBaseDeviceBom extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "device_bom_id", type = IdType.AUTO)
private Long deviceBomId;
/**
*
*/
private Long parentId;
/**
* IDprod_base_machine_infomachine_id
*/
private Long machineId;
/**
* BOM
*/
private Long bomAmount;
/**
*
*/
private String ancestors;
/**
* 1 0
*/
private String activeFlag;
/**
*
*/
private String remark;
/**
*
*/
@TableField(exist = false)
private String machineName;//join映射字段
}

@ -0,0 +1,80 @@
package org.dromara.dms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* dms_base_device_depreciation
*
* @author zch
* @date 2025-03-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dms_base_device_depreciation")
public class DmsBaseDeviceDepreciation extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "device_depreciation_id", type = IdType.AUTO)
private Long deviceDepreciationId;
/**
* IDprod_base_machine_infomachine_id
*/
private Long machineId;
/**
*
*/
private Long repairFrequency;
/**
*
*/
private BigDecimal repairCosts;
/**
*
*/
private BigDecimal depreciationCost;
/**
*
*/
private Date putIntoTime;
/**
* 使
*/
private BigDecimal useLife;
/**
*
*/
private String remark;
/**
* 1 0
*/
private String activeFlag;
/**
*
*/
@TableField(exist = false)
private String machineName;//join
}

@ -0,0 +1,65 @@
package org.dromara.dms.domain;
import org.dromara.common.tenant.core.TenantEntity;
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;
/**
* dms_base_device_install
*
* @author zch
* @date 2025-03-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dms_base_device_install")
public class DmsBaseDeviceInstall extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@TableId(value = "device_install_id", type = IdType.AUTO)
private Long deviceInstallId;
/**
* IDprod_base_machine_infomachine_id
*/
private Long machineId;
/**
*
*/
private String installPosition;
/**
*
*/
private Date installTime;
/**
*
*/
private String installPerson;
/**
* 1 0
*/
private String activeFlag;
/**
*
*/
@TableField(exist = false)
private String machineName;//join
}

@ -0,0 +1,69 @@
package org.dromara.dms.domain;
import org.dromara.common.tenant.core.TenantEntity;
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;
/**
* dms_base_device_purchase
*
* @author zch
* @date 2025-03-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dms_base_device_purchase")
public class DmsBaseDevicePurchase extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@TableId(value = "device_purchase_id", type = IdType.AUTO)
private Long devicePurchaseId;
/**
*
*/
private String workOrder;
/**
* IDprod_base_machine_infomachine_id
*/
private Long machineId;
/**
*
*/
private String purchasePerson;
/**
*
*/
private String purchasePosition;
/**
*
*/
private Date purchaseTime;
/**
*
*/
private String remark;
/**
*
*/
@TableField(exist = false)
private String machineName;//JOIN
}

@ -0,0 +1,71 @@
package org.dromara.dms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* dms_base_device_supplier
*
* @author zch
* @date 2025-03-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dms_base_device_supplier")
public class DmsBaseDeviceSupplier extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "supplier_id", type = IdType.AUTO)
private Long supplierId;
/**
*
*/
private String supplierCode;
/**
*
*/
private String supplierName;
/**
*
*/
private String supplierPerson;
/**
*
*/
private String supplierTel;
/**
*
*/
private String supplierAddress;
/**
*
*/
private Long supplierStatus;
/**
* 1 0
*/
private String activeFlag;
/**
*
*/
private String remark;
}

@ -0,0 +1,66 @@
package org.dromara.dms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* dms_base_outsourcing_info
*
* @author zch
* @date 2025-03-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dms_base_outsourcing_info")
public class DmsBaseOutsourcingInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "outsourcing_id", type = IdType.AUTO)
private Long outsourcingId;
/**
*
*/
private String outsourcingCode;
/**
*
*/
private String outsourcingName;
/**
*
*/
private String outsourcingPerson;
/**
*
*/
private String outsourcingTel;
/**
*
*/
private String outsourcingAddress;
/**
* 1 0
*/
private String activeFlag;
/**
*
*/
private String remark;
}

@ -0,0 +1,78 @@
package org.dromara.dms.domain;
import org.dromara.common.tenant.core.TenantEntity;
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;
/**
* dms_base_transfer_info
*
* @author Yinq
* @date 2025-03-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dms_base_transfer_info")
public class DmsBaseTransferInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@TableId(value = "transfer_info_id", type = IdType.AUTO)
private Long transferInfoId;
/**
* IDprod_base_machine_infomachine_id
*/
private Long machineId;
/**
*
*/
private String devicePosition;
/**
*
*/
private String devicePositionNew;
/**
*
*/
private String devicePositionOperator;
/**
*
*/
private String devicePositionReason;
/**
*
*/
private Date deviceTransferTime;
/**
*
*/
private String remark;
/**
* 1 0
*/
private String activeFlag;
/**
*
*/
@TableField(exist = false)
private String machineName;//JOIN
}

@ -0,0 +1,59 @@
package org.dromara.dms.domain.bo;
import org.dromara.dms.domain.DmsBaseDeviceBom;
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.*;
/**
* BOM dms_base_device_bom
*
* @author zch
* @date 2025-03-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DmsBaseDeviceBom.class, reverseConvertGenerate = false)
public class DmsBaseDeviceBomBo extends BaseEntity {
/**
*
*/
private Long deviceBomId;
/**
*
*/
private Long parentId;
/**
* IDprod_base_machine_infomachine_id
*/
private Long machineId;
/**
* BOM
*/
private Long bomAmount;
/**
*
*/
private String ancestors;
/**
* 1 0
*/
private String activeFlag;
/**
*
*/
private String remark;
}

@ -0,0 +1,74 @@
package org.dromara.dms.domain.bo;
import org.dromara.dms.domain.DmsBaseDeviceDepreciation;
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.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* dms_base_device_depreciation
*
* @author zch
* @date 2025-03-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DmsBaseDeviceDepreciation.class, reverseConvertGenerate = false)
public class DmsBaseDeviceDepreciationBo extends BaseEntity {
/**
*
*/
private Long deviceDepreciationId;
/**
* IDprod_base_machine_infomachine_id
*/
private Long machineId;
/**
*
*/
private Long repairFrequency;
/**
*
*/
private BigDecimal repairCosts;
/**
*
*/
private BigDecimal depreciationCost;
/**
*
*/
private Date putIntoTime;
/**
* 使
*/
private BigDecimal useLife;
/**
*
*/
private String remark;
/**
* 1 0
*/
@NotBlank(message = "激活标识1是 0否不能为空", groups = { AddGroup.class, EditGroup.class })
private String activeFlag;
}

@ -0,0 +1,58 @@
package org.dromara.dms.domain.bo;
import org.dromara.dms.domain.DmsBaseDeviceInstall;
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;
/**
* dms_base_device_install
*
* @author zch
* @date 2025-03-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DmsBaseDeviceInstall.class, reverseConvertGenerate = false)
public class DmsBaseDeviceInstallBo extends BaseEntity {
/**
* ID
*/
private Long deviceInstallId;
/**
* IDprod_base_machine_infomachine_id
*/
@NotNull(message = "设备ID关联prod_base_machine_info的machine_id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long machineId;
/**
*
*/
private String installPosition;
/**
*
*/
@NotNull(message = "安装时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date installTime;
/**
*
*/
private String installPerson;
/**
* 1 0
*/
private String activeFlag;
}

@ -0,0 +1,62 @@
package org.dromara.dms.domain.bo;
import org.dromara.dms.domain.DmsBaseDevicePurchase;
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;
/**
* dms_base_device_purchase
*
* @author zch
* @date 2025-03-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DmsBaseDevicePurchase.class, reverseConvertGenerate = false)
public class DmsBaseDevicePurchaseBo extends BaseEntity {
/**
* ID
*/
private Long devicePurchaseId;
/**
*
*/
private String workOrder;
/**
* IDprod_base_machine_infomachine_id
*/
private Long machineId;
/**
*
*/
@NotBlank(message = "采购人不能为空", groups = { AddGroup.class, EditGroup.class })
private String purchasePerson;
/**
*
*/
private String purchasePosition;
/**
*
*/
private Date purchaseTime;
/**
*
*/
private String remark;
}

@ -0,0 +1,71 @@
package org.dromara.dms.domain.bo;
import org.dromara.dms.domain.DmsBaseDeviceSupplier;
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.*;
/**
* dms_base_device_supplier
*
* @author zch
* @date 2025-03-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DmsBaseDeviceSupplier.class, reverseConvertGenerate = false)
public class DmsBaseDeviceSupplierBo extends BaseEntity {
/**
*
*/
private Long supplierId;
/**
*
*/
@NotBlank(message = "供应商编号不能为空", groups = { AddGroup.class, EditGroup.class })
private String supplierCode;
/**
*
*/
@NotBlank(message = "供应商名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String supplierName;
/**
*
*/
private String supplierPerson;
/**
*
*/
private String supplierTel;
/**
*
*/
private String supplierAddress;
/**
*
*/
private Long supplierStatus;
/**
* 1 0
*/
private String activeFlag;
/**
*
*/
private String remark;
}

@ -0,0 +1,67 @@
package org.dromara.dms.domain.bo;
import org.dromara.dms.domain.DmsBaseOutsourcingInfo;
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.*;
/**
* dms_base_outsourcing_info
*
* @author zch
* @date 2025-03-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DmsBaseOutsourcingInfo.class, reverseConvertGenerate = false)
public class DmsBaseOutsourcingInfoBo extends BaseEntity {
/**
*
*/
private Long outsourcingId;
/**
*
*/
@NotBlank(message = "外协编号不能为空", groups = { AddGroup.class, EditGroup.class })
private String outsourcingCode;
/**
*
*/
@NotBlank(message = "单位名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String outsourcingName;
/**
*
*/
private String outsourcingPerson;
/**
*
*/
private String outsourcingTel;
/**
*
*/
private String outsourcingAddress;
/**
* 1 0
*/
@NotBlank(message = "激活标识1是 0否不能为空", groups = { AddGroup.class, EditGroup.class })
private String activeFlag;
/**
*
*/
private String remark;
}

@ -0,0 +1,74 @@
package org.dromara.dms.domain.bo;
import org.dromara.dms.domain.DmsBaseTransferInfo;
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;
/**
* dms_base_transfer_info
*
* @author Yinq
* @date 2025-03-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DmsBaseTransferInfo.class, reverseConvertGenerate = false)
public class DmsBaseTransferInfoBo extends BaseEntity {
/**
* ID
*/
private Long transferInfoId;
/**
* IDprod_base_machine_infomachine_id
*/
@NotNull(message = "设备ID关联prod_base_machine_info的machine_id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long machineId;
/**
*
*/
private String devicePosition;
/**
*
*/
@NotBlank(message = "设备转移位置不能为空", groups = { AddGroup.class, EditGroup.class })
private String devicePositionNew;
/**
*
*/
private String devicePositionOperator;
/**
*
*/
private String devicePositionReason;
/**
*
*/
private Date deviceTransferTime;
/**
*
*/
private String remark;
/**
* 1 0
*/
@NotBlank(message = "激活标识1是 0否不能为空", groups = { AddGroup.class, EditGroup.class })
private String activeFlag;
}

@ -0,0 +1,80 @@
package org.dromara.dms.domain.vo;
import org.dromara.dms.domain.DmsBaseDeviceBom;
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;
/**
* BOM dms_base_device_bom
*
* @author zch
* @date 2025-03-20
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = DmsBaseDeviceBom.class)
public class DmsBaseDeviceBomVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "主键标识")
private Long deviceBomId;
/**
*
*/
@ExcelProperty(value = "父级标识")
private Long parentId;
/**
* IDprod_base_machine_infomachine_id
*/
@ExcelProperty(value = "设备ID关联prod_base_machine_info的machine_id")
private Long machineId;
/**
* BOM
*/
@ExcelProperty(value = "BOM数量")
private Long bomAmount;
/**
*
*/
@ExcelProperty(value = "祖级列表")
private String ancestors;
/**
* 1 0
*/
@ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "1=是,0=否")
private String activeFlag;
/**
*
*/
@ExcelProperty(value = "备注")
private String remark;
/**
*
*/
@ExcelProperty(value = "机台名称")
private String machineName;//join映射字段
}

@ -0,0 +1,95 @@
package org.dromara.dms.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.dms.domain.DmsBaseDeviceDepreciation;
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;
/**
* dms_base_device_depreciation
*
* @author zch
* @date 2025-03-20
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = DmsBaseDeviceDepreciation.class)
public class DmsBaseDeviceDepreciationVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "主键标识")
private Long deviceDepreciationId;
/**
* IDprod_base_machine_infomachine_id
*/
@ExcelProperty(value = "设备ID关联prod_base_machine_info的machine_id")
private Long machineId;
/**
*
*/
@ExcelProperty(value = "维修次数")
private Long repairFrequency;
/**
*
*/
@ExcelProperty(value = "维修费用")
private BigDecimal repairCosts;
/**
*
*/
@ExcelProperty(value = "折旧费用")
private BigDecimal depreciationCost;
/**
*
*/
@ExcelProperty(value = "投入时间")
private Date putIntoTime;
/**
* 使
*/
@ExcelProperty(value = "使用年限")
private BigDecimal useLife;
/**
*
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 1 0
*/
@ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "active_flag")
private String activeFlag;
/**
*
*/
@ExcelProperty(value = "机台名称")
private String machineName;//join
}

@ -0,0 +1,76 @@
package org.dromara.dms.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.dms.domain.DmsBaseDeviceInstall;
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;
/**
* dms_base_device_install
*
* @author zch
* @date 2025-03-20
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = DmsBaseDeviceInstall.class)
public class DmsBaseDeviceInstallVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ExcelProperty(value = "主键ID")
private Long deviceInstallId;
/**
* IDprod_base_machine_infomachine_id
*/
@ExcelProperty(value = "设备ID关联prod_base_machine_info的machine_id")
private Long machineId;
/**
*
*/
@ExcelProperty(value = "安装地点")
private String installPosition;
/**
*
*/
@ExcelProperty(value = "安装时间")
private Date installTime;
/**
*
*/
@ExcelProperty(value = "安装人员")
private String installPerson;
/**
* 1 0
*/
@ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "active_flag")
private String activeFlag;
/**
*
*/
@ExcelProperty(value = "机台名称")
private String machineName;//join
}

@ -0,0 +1,81 @@
package org.dromara.dms.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.dms.domain.DmsBaseDevicePurchase;
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;
/**
* dms_base_device_purchase
*
* @author zch
* @date 2025-03-20
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = DmsBaseDevicePurchase.class)
public class DmsBaseDevicePurchaseVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ExcelProperty(value = "主键ID")
private Long devicePurchaseId;
/**
*
*/
@ExcelProperty(value = "计划编号")
private String workOrder;
/**
* IDprod_base_machine_infomachine_id
*/
@ExcelProperty(value = "设备ID关联prod_base_machine_info的machine_id")
private Long machineId;
/**
*
*/
@ExcelProperty(value = "采购人")
private String purchasePerson;
/**
*
*/
@ExcelProperty(value = "采购地点")
private String purchasePosition;
/**
*
*/
@ExcelProperty(value = "采购时间")
private Date purchaseTime;
/**
*
*/
@ExcelProperty(value = "备注")
private String remark;
/**
*
*/
@ExcelProperty(value = "机台名称")
private String machineName;//JOIN
}

@ -0,0 +1,88 @@
package org.dromara.dms.domain.vo;
import org.dromara.dms.domain.DmsBaseDeviceSupplier;
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;
/**
* dms_base_device_supplier
*
* @author zch
* @date 2025-03-20
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = DmsBaseDeviceSupplier.class)
public class DmsBaseDeviceSupplierVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "主键标识")
private Long supplierId;
/**
*
*/
@ExcelProperty(value = "供应商编号")
private String supplierCode;
/**
*
*/
@ExcelProperty(value = "供应商名称")
private String supplierName;
/**
*
*/
@ExcelProperty(value = "供应商联系人")
private String supplierPerson;
/**
*
*/
@ExcelProperty(value = "供应商电话")
private String supplierTel;
/**
*
*/
@ExcelProperty(value = "供应商地址")
private String supplierAddress;
/**
*
*/
@ExcelProperty(value = "供应商状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "supplier_status")
private Long supplierStatus;
/**
* 1 0
*/
@ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "active_flag")
private String activeFlag;
/**
*
*/
@ExcelProperty(value = "备注")
private String remark;
}

@ -0,0 +1,81 @@
package org.dromara.dms.domain.vo;
import org.dromara.dms.domain.DmsBaseOutsourcingInfo;
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;
/**
* dms_base_outsourcing_info
*
* @author zch
* @date 2025-03-20
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = DmsBaseOutsourcingInfo.class)
public class DmsBaseOutsourcingInfoVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "主键标识")
private Long outsourcingId;
/**
*
*/
@ExcelProperty(value = "外协编号")
private String outsourcingCode;
/**
*
*/
@ExcelProperty(value = "单位名称")
private String outsourcingName;
/**
*
*/
@ExcelProperty(value = "外协联系人")
private String outsourcingPerson;
/**
*
*/
@ExcelProperty(value = "外协电话")
private String outsourcingTel;
/**
*
*/
@ExcelProperty(value = "外协地址")
private String outsourcingAddress;
/**
* 1 0
*/
@ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "active_flag")
private String activeFlag;
/**
*
*/
@ExcelProperty(value = "备注")
private String remark;
}

@ -0,0 +1,94 @@
package org.dromara.dms.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.dms.domain.DmsBaseTransferInfo;
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;
/**
* dms_base_transfer_info
*
* @author Yinq
* @date 2025-03-20
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = DmsBaseTransferInfo.class)
public class DmsBaseTransferInfoVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ExcelProperty(value = "主键ID")
private Long transferInfoId;
/**
* IDprod_base_machine_infomachine_id
*/
@ExcelProperty(value = "设备ID关联prod_base_machine_info的machine_id")
private Long machineId;
/**
*
*/
@ExcelProperty(value = "设备原位置")
private String devicePosition;
/**
*
*/
@ExcelProperty(value = "设备转移位置")
private String devicePositionNew;
/**
*
*/
@ExcelProperty(value = "设备转移人员")
private String devicePositionOperator;
/**
*
*/
@ExcelProperty(value = "设备转移原因")
private String devicePositionReason;
/**
*
*/
@ExcelProperty(value = "设备转移时间")
private Date deviceTransferTime;
/**
*
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 1 0
*/
@ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "active_flag")
private String activeFlag;
/**
*
*/
@ExcelProperty(value = "机台名称")
private String machineName;//JOIN
}

@ -0,0 +1,15 @@
package org.dromara.dms.mapper;
import org.dromara.dms.domain.DmsBaseDeviceBom;
import org.dromara.dms.domain.vo.DmsBaseDeviceBomVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* BOMMapper
*
* @author zch
* @date 2025-03-20
*/
public interface DmsBaseDeviceBomMapper extends BaseMapperPlus<DmsBaseDeviceBom, DmsBaseDeviceBomVo> {
}

@ -0,0 +1,15 @@
package org.dromara.dms.mapper;
import org.dromara.dms.domain.DmsBaseDeviceDepreciation;
import org.dromara.dms.domain.vo.DmsBaseDeviceDepreciationVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* Mapper
*
* @author zch
* @date 2025-03-20
*/
public interface DmsBaseDeviceDepreciationMapper extends BaseMapperPlus<DmsBaseDeviceDepreciation, DmsBaseDeviceDepreciationVo> {
}

@ -0,0 +1,15 @@
package org.dromara.dms.mapper;
import org.dromara.dms.domain.DmsBaseDeviceInstall;
import org.dromara.dms.domain.vo.DmsBaseDeviceInstallVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* Mapper
*
* @author zch
* @date 2025-03-20
*/
public interface DmsBaseDeviceInstallMapper extends BaseMapperPlus<DmsBaseDeviceInstall, DmsBaseDeviceInstallVo> {
}

@ -0,0 +1,15 @@
package org.dromara.dms.mapper;
import org.dromara.dms.domain.DmsBaseDevicePurchase;
import org.dromara.dms.domain.vo.DmsBaseDevicePurchaseVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* Mapper
*
* @author zch
* @date 2025-03-20
*/
public interface DmsBaseDevicePurchaseMapper extends BaseMapperPlus<DmsBaseDevicePurchase, DmsBaseDevicePurchaseVo> {
}

@ -0,0 +1,15 @@
package org.dromara.dms.mapper;
import org.dromara.dms.domain.DmsBaseDeviceSupplier;
import org.dromara.dms.domain.vo.DmsBaseDeviceSupplierVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* Mapper
*
* @author zch
* @date 2025-03-20
*/
public interface DmsBaseDeviceSupplierMapper extends BaseMapperPlus<DmsBaseDeviceSupplier, DmsBaseDeviceSupplierVo> {
}

@ -0,0 +1,15 @@
package org.dromara.dms.mapper;
import org.dromara.dms.domain.DmsBaseOutsourcingInfo;
import org.dromara.dms.domain.vo.DmsBaseOutsourcingInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* Mapper
*
* @author zch
* @date 2025-03-20
*/
public interface DmsBaseOutsourcingInfoMapper extends BaseMapperPlus<DmsBaseOutsourcingInfo, DmsBaseOutsourcingInfoVo> {
}

@ -0,0 +1,15 @@
package org.dromara.dms.mapper;
import org.dromara.dms.domain.DmsBaseTransferInfo;
import org.dromara.dms.domain.vo.DmsBaseTransferInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* Mapper
*
* @author Yinq
* @date 2025-03-20
*/
public interface DmsBaseTransferInfoMapper extends BaseMapperPlus<DmsBaseTransferInfo, DmsBaseTransferInfoVo> {
}

@ -0,0 +1,59 @@
package org.dromara.dms.service;
import org.dromara.dms.domain.DmsBaseDeviceBom;
import org.dromara.dms.domain.vo.DmsBaseDeviceBomVo;
import org.dromara.dms.domain.bo.DmsBaseDeviceBomBo;
import java.util.Collection;
import java.util.List;
/**
* BOMService
*
* @author zch
* @date 2025-03-20
*/
public interface IDmsBaseDeviceBomService {
/**
* BOM
*
* @param deviceBomId
* @return BOM
*/
DmsBaseDeviceBomVo queryById(Long deviceBomId);
/**
* BOM
*
* @param bo
* @return BOM
*/
List<DmsBaseDeviceBomVo> queryList(DmsBaseDeviceBomBo bo);
/**
* BOM
*
* @param bo BOM
* @return
*/
Boolean insertByBo(DmsBaseDeviceBomBo bo);
/**
* BOM
*
* @param bo BOM
* @return
*/
Boolean updateByBo(DmsBaseDeviceBomBo bo);
/**
* BOM
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,69 @@
package org.dromara.dms.service;
import org.dromara.dms.domain.DmsBaseDeviceDepreciation;
import org.dromara.dms.domain.vo.DmsBaseDeviceDepreciationVo;
import org.dromara.dms.domain.bo.DmsBaseDeviceDepreciationBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author zch
* @date 2025-03-20
*/
public interface IDmsBaseDeviceDepreciationService {
/**
*
*
* @param deviceDepreciationId
* @return
*/
DmsBaseDeviceDepreciationVo queryById(Long deviceDepreciationId);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<DmsBaseDeviceDepreciationVo> queryPageList(DmsBaseDeviceDepreciationBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<DmsBaseDeviceDepreciationVo> queryList(DmsBaseDeviceDepreciationBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(DmsBaseDeviceDepreciationBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(DmsBaseDeviceDepreciationBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,69 @@
package org.dromara.dms.service;
import org.dromara.dms.domain.DmsBaseDeviceInstall;
import org.dromara.dms.domain.vo.DmsBaseDeviceInstallVo;
import org.dromara.dms.domain.bo.DmsBaseDeviceInstallBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author zch
* @date 2025-03-20
*/
public interface IDmsBaseDeviceInstallService {
/**
*
*
* @param deviceInstallId
* @return
*/
DmsBaseDeviceInstallVo queryById(Long deviceInstallId);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<DmsBaseDeviceInstallVo> queryPageList(DmsBaseDeviceInstallBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<DmsBaseDeviceInstallVo> queryList(DmsBaseDeviceInstallBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(DmsBaseDeviceInstallBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(DmsBaseDeviceInstallBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,69 @@
package org.dromara.dms.service;
import org.dromara.dms.domain.DmsBaseDevicePurchase;
import org.dromara.dms.domain.vo.DmsBaseDevicePurchaseVo;
import org.dromara.dms.domain.bo.DmsBaseDevicePurchaseBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author zch
* @date 2025-03-20
*/
public interface IDmsBaseDevicePurchaseService {
/**
*
*
* @param devicePurchaseId
* @return
*/
DmsBaseDevicePurchaseVo queryById(Long devicePurchaseId);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<DmsBaseDevicePurchaseVo> queryPageList(DmsBaseDevicePurchaseBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<DmsBaseDevicePurchaseVo> queryList(DmsBaseDevicePurchaseBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(DmsBaseDevicePurchaseBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(DmsBaseDevicePurchaseBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,69 @@
package org.dromara.dms.service;
import org.dromara.dms.domain.DmsBaseDeviceSupplier;
import org.dromara.dms.domain.vo.DmsBaseDeviceSupplierVo;
import org.dromara.dms.domain.bo.DmsBaseDeviceSupplierBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author zch
* @date 2025-03-20
*/
public interface IDmsBaseDeviceSupplierService {
/**
*
*
* @param supplierId
* @return
*/
DmsBaseDeviceSupplierVo queryById(Long supplierId);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<DmsBaseDeviceSupplierVo> queryPageList(DmsBaseDeviceSupplierBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<DmsBaseDeviceSupplierVo> queryList(DmsBaseDeviceSupplierBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(DmsBaseDeviceSupplierBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(DmsBaseDeviceSupplierBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,69 @@
package org.dromara.dms.service;
import org.dromara.dms.domain.DmsBaseOutsourcingInfo;
import org.dromara.dms.domain.vo.DmsBaseOutsourcingInfoVo;
import org.dromara.dms.domain.bo.DmsBaseOutsourcingInfoBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author zch
* @date 2025-03-20
*/
public interface IDmsBaseOutsourcingInfoService {
/**
*
*
* @param outsourcingId
* @return
*/
DmsBaseOutsourcingInfoVo queryById(Long outsourcingId);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<DmsBaseOutsourcingInfoVo> queryPageList(DmsBaseOutsourcingInfoBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<DmsBaseOutsourcingInfoVo> queryList(DmsBaseOutsourcingInfoBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(DmsBaseOutsourcingInfoBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(DmsBaseOutsourcingInfoBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,69 @@
package org.dromara.dms.service;
import org.dromara.dms.domain.DmsBaseTransferInfo;
import org.dromara.dms.domain.vo.DmsBaseTransferInfoVo;
import org.dromara.dms.domain.bo.DmsBaseTransferInfoBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author Yinq
* @date 2025-03-20
*/
public interface IDmsBaseTransferInfoService {
/**
*
*
* @param transferInfoId
* @return
*/
DmsBaseTransferInfoVo queryById(Long transferInfoId);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<DmsBaseTransferInfoVo> queryPageList(DmsBaseTransferInfoBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<DmsBaseTransferInfoVo> queryList(DmsBaseTransferInfoBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(DmsBaseTransferInfoBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(DmsBaseTransferInfoBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,188 @@
package org.dromara.dms.service.impl;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.dms.domain.DmsBaseMachineInfo;
import org.springframework.stereotype.Service;
import org.dromara.dms.domain.bo.DmsBaseDeviceBomBo;
import org.dromara.dms.domain.vo.DmsBaseDeviceBomVo;
import org.dromara.dms.domain.DmsBaseDeviceBom;
import org.dromara.dms.mapper.DmsBaseDeviceBomMapper;
import org.dromara.dms.service.IDmsBaseDeviceBomService;
import org.springframework.util.ObjectUtils;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* BOMService
*
* @author zch
* @date 2025-03-20
*/
@RequiredArgsConstructor
@Service
public class DmsBaseDeviceBomServiceImpl implements IDmsBaseDeviceBomService {
private final DmsBaseDeviceBomMapper baseMapper;
/**
* BOM
*
* @param deviceBomId
* @return BOM
*/
@Override
public DmsBaseDeviceBomVo queryById(Long deviceBomId){
return baseMapper.selectVoById(deviceBomId);
}
/**
* BOM
*
* @param bo
* @return BOM
*/
@Override
public List<DmsBaseDeviceBomVo> queryList(DmsBaseDeviceBomBo bo) {
MPJLambdaWrapper<DmsBaseDeviceBom> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<DmsBaseDeviceBom> buildQueryWrapper(DmsBaseDeviceBomBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<DmsBaseDeviceBom> lqw = JoinWrappers.lambda(DmsBaseDeviceBom.class)
.selectAll(DmsBaseDeviceBom.class)
// 关联查询设备信息
.select(DmsBaseMachineInfo::getMachineName)
.leftJoin(DmsBaseMachineInfo.class,DmsBaseMachineInfo::getMachineId,DmsBaseDeviceBom::getMachineId)
.eq(bo.getDeviceBomId() != null, DmsBaseDeviceBom::getDeviceBomId, bo.getDeviceBomId())
.eq(bo.getParentId() != null, DmsBaseDeviceBom::getParentId, bo.getParentId())
.eq(bo.getMachineId() != null, DmsBaseDeviceBom::getMachineId, bo.getMachineId())
.eq(bo.getBomAmount() != null, DmsBaseDeviceBom::getBomAmount, bo.getBomAmount())
.eq(StringUtils.isNotBlank(bo.getAncestors()), DmsBaseDeviceBom::getAncestors, bo.getAncestors())
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), DmsBaseDeviceBom::getActiveFlag, bo.getActiveFlag())
.orderByDesc(DmsBaseDeviceBom::getCreateTime);
return lqw;
}
/**
* BOM
*
* @param bo BOM
* @return
*/
@Override
public Boolean insertByBo(DmsBaseDeviceBomBo bo) {
DmsBaseDeviceBom add = MapstructUtils.convert(bo, DmsBaseDeviceBom.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setDeviceBomId(add.getDeviceBomId());
}
return flag;
}
/**
* BOM
*
* @param bo BOM
* @return
*/
@Override
public Boolean updateByBo(DmsBaseDeviceBomBo bo) {
DmsBaseDeviceBom update = MapstructUtils.convert(bo, DmsBaseDeviceBom.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(DmsBaseDeviceBom entity) {
//TODO:保存前的数据校验
// 设置祖先节点字符串
if (entity.getParentId() == 0L) {
entity.setAncestors("0");
} else {
// 查询父节点信息获取ancestors
DmsBaseDeviceBom parentBom = baseMapper.selectOne(
Wrappers.<DmsBaseDeviceBom>lambdaQuery()
.select(DmsBaseDeviceBom::getAncestors)
.eq(DmsBaseDeviceBom::getDeviceBomId, entity.getParentId())
);
if (ObjectUtils.isEmpty(parentBom)) {
throw new RuntimeException("父节点不存在");
}
// 设置ancestors为父节点的ancestors + 父节点ID
entity.setAncestors(parentBom.getAncestors() + "," + entity.getParentId());
// 检查祖先节点中是否有与当前设备ID相同的节点
String ancestorsStr = entity.getAncestors();
for (String ancestorId : ancestorsStr.split(",")) {
if ("0".equals(ancestorId)) {
continue;// 跳过顶级节点
}
DmsBaseDeviceBom ancestorNode = baseMapper.selectOne(
Wrappers.<DmsBaseDeviceBom>lambdaQuery()
.select(DmsBaseDeviceBom::getMachineId)
.eq(DmsBaseDeviceBom::getDeviceBomId, Long.parseLong(ancestorId))
);
if (ancestorNode != null && entity.getMachineId().equals(ancestorNode.getMachineId())) {
throw new RuntimeException("不能添加与祖先节点相同的设备编号");
}
}
// 检查兄弟节点中是否有与当前设备ID相同的节点
List<DmsBaseDeviceBom> siblings = baseMapper.selectList(
Wrappers.<DmsBaseDeviceBom>lambdaQuery()
.select(DmsBaseDeviceBom::getDeviceBomId, DmsBaseDeviceBom::getMachineId)
.eq(DmsBaseDeviceBom::getParentId, entity.getParentId())
.ne(entity.getDeviceBomId() != null, DmsBaseDeviceBom::getDeviceBomId, entity.getDeviceBomId()) // 更新时排除自身
);
for (DmsBaseDeviceBom sibling : siblings) {
if (entity.getMachineId().equals(sibling.getMachineId())) {
throw new RuntimeException("不能添加与兄弟节点相同的设备编号");
}
}
}
}
/**
* BOM
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
for (Long id : ids) {
//监测删除的节点是否有子节点
DmsBaseDeviceBom query = new DmsBaseDeviceBom();
query.setParentId(id);
if (baseMapper.selectCount(Wrappers.lambdaQuery(query)) > 0) {
throw new ServiceException("存在子节点,不允许删除");
}
}
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -0,0 +1,143 @@
package org.dromara.dms.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.dms.domain.DmsBaseMachineInfo;
import org.springframework.stereotype.Service;
import org.dromara.dms.domain.bo.DmsBaseDeviceDepreciationBo;
import org.dromara.dms.domain.vo.DmsBaseDeviceDepreciationVo;
import org.dromara.dms.domain.DmsBaseDeviceDepreciation;
import org.dromara.dms.mapper.DmsBaseDeviceDepreciationMapper;
import org.dromara.dms.service.IDmsBaseDeviceDepreciationService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author zch
* @date 2025-03-20
*/
@RequiredArgsConstructor
@Service
public class DmsBaseDeviceDepreciationServiceImpl implements IDmsBaseDeviceDepreciationService {
private final DmsBaseDeviceDepreciationMapper baseMapper;
/**
*
*
* @param deviceDepreciationId
* @return
*/
@Override
public DmsBaseDeviceDepreciationVo queryById(Long deviceDepreciationId){
return baseMapper.selectVoById(deviceDepreciationId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<DmsBaseDeviceDepreciationVo> queryPageList(DmsBaseDeviceDepreciationBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<DmsBaseDeviceDepreciation> lqw = buildQueryWrapper(bo);
Page<DmsBaseDeviceDepreciationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<DmsBaseDeviceDepreciationVo> queryList(DmsBaseDeviceDepreciationBo bo) {
MPJLambdaWrapper<DmsBaseDeviceDepreciation> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<DmsBaseDeviceDepreciation> buildQueryWrapper(DmsBaseDeviceDepreciationBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<DmsBaseDeviceDepreciation> lqw = JoinWrappers.lambda(DmsBaseDeviceDepreciation.class)
.selectAll(DmsBaseDeviceDepreciation.class)
//连表查询设备名称
.select(DmsBaseMachineInfo::getMachineName)
.leftJoin(DmsBaseMachineInfo.class,DmsBaseMachineInfo::getMachineId,DmsBaseDeviceDepreciation::getMachineId)
.eq(bo.getDeviceDepreciationId() != null, DmsBaseDeviceDepreciation::getDeviceDepreciationId, bo.getDeviceDepreciationId())
.eq(bo.getMachineId() != null, DmsBaseDeviceDepreciation::getMachineId, bo.getMachineId())
.eq(bo.getRepairFrequency() != null, DmsBaseDeviceDepreciation::getRepairFrequency, bo.getRepairFrequency())
.eq(bo.getRepairCosts() != null, DmsBaseDeviceDepreciation::getRepairCosts, bo.getRepairCosts())
.eq(bo.getDepreciationCost() != null, DmsBaseDeviceDepreciation::getDepreciationCost, bo.getDepreciationCost())
.eq(bo.getPutIntoTime() != null, DmsBaseDeviceDepreciation::getPutIntoTime, bo.getPutIntoTime())
.eq(bo.getUseLife() != null, DmsBaseDeviceDepreciation::getUseLife, bo.getUseLife())
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), DmsBaseDeviceDepreciation::getActiveFlag, bo.getActiveFlag())
.orderByDesc(DmsBaseDeviceDepreciation::getCreateTime);
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(DmsBaseDeviceDepreciationBo bo) {
DmsBaseDeviceDepreciation add = MapstructUtils.convert(bo, DmsBaseDeviceDepreciation.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setDeviceDepreciationId(add.getDeviceDepreciationId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(DmsBaseDeviceDepreciationBo bo) {
DmsBaseDeviceDepreciation update = MapstructUtils.convert(bo, DmsBaseDeviceDepreciation.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(DmsBaseDeviceDepreciation entity){
//TODO 做一些数据校验,如唯一约束
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -0,0 +1,173 @@
package org.dromara.dms.service.impl;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.dms.domain.DmsBaseDeviceDepreciation;
import org.dromara.dms.domain.DmsBaseMachineInfo;
import org.dromara.dms.mapper.DmsBaseMachineInfoMapper;
import org.springframework.stereotype.Service;
import org.dromara.dms.domain.bo.DmsBaseDeviceInstallBo;
import org.dromara.dms.domain.vo.DmsBaseDeviceInstallVo;
import org.dromara.dms.domain.DmsBaseDeviceInstall;
import org.dromara.dms.mapper.DmsBaseDeviceInstallMapper;
import org.dromara.dms.service.IDmsBaseDeviceInstallService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author zch
* @date 2025-03-20
*/
@RequiredArgsConstructor
@Service
public class DmsBaseDeviceInstallServiceImpl implements IDmsBaseDeviceInstallService {
private final DmsBaseDeviceInstallMapper baseMapper;
private final DmsBaseMachineInfoMapper baseMachineInfoMapper;
/**
*
*
* @param deviceInstallId
* @return
*/
@Override
public DmsBaseDeviceInstallVo queryById(Long deviceInstallId){
return baseMapper.selectVoById(deviceInstallId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<DmsBaseDeviceInstallVo> queryPageList(DmsBaseDeviceInstallBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<DmsBaseDeviceInstall> lqw = buildQueryWrapper(bo);
Page<DmsBaseDeviceInstallVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<DmsBaseDeviceInstallVo> queryList(DmsBaseDeviceInstallBo bo) {
MPJLambdaWrapper<DmsBaseDeviceInstall> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<DmsBaseDeviceInstall> buildQueryWrapper(DmsBaseDeviceInstallBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<DmsBaseDeviceInstall> lqw = JoinWrappers.lambda(DmsBaseDeviceInstall.class)
.selectAll(DmsBaseDeviceInstall.class)
//连表查询设备名称
.select(DmsBaseMachineInfo::getMachineName)
.leftJoin(DmsBaseMachineInfo.class,DmsBaseMachineInfo::getMachineId, DmsBaseDeviceInstall::getMachineId)
.eq(bo.getDeviceInstallId() != null, DmsBaseDeviceInstall::getDeviceInstallId, bo.getDeviceInstallId())
.eq(bo.getMachineId() != null, DmsBaseDeviceInstall::getMachineId, bo.getMachineId())
.eq(StringUtils.isNotBlank(bo.getInstallPosition()), DmsBaseDeviceInstall::getInstallPosition, bo.getInstallPosition())
.eq(bo.getInstallTime() != null, DmsBaseDeviceInstall::getInstallTime, bo.getInstallTime())
.eq(StringUtils.isNotBlank(bo.getInstallPerson()), DmsBaseDeviceInstall::getInstallPerson, bo.getInstallPerson())
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), DmsBaseDeviceInstall::getActiveFlag, bo.getActiveFlag())
.orderByDesc(DmsBaseDeviceInstall::getCreateTime);
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
@Transactional( rollbackFor = Exception.class )
public Boolean insertByBo(DmsBaseDeviceInstallBo bo) {
DmsBaseDeviceInstall add = MapstructUtils.convert(bo, DmsBaseDeviceInstall.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setDeviceInstallId(add.getDeviceInstallId());
}
//安装时修改设备信息的位置
DmsBaseMachineInfo machineInfo = new DmsBaseMachineInfo();
machineInfo.setMachineId(bo.getMachineId());
machineInfo.setMachineLocation(bo.getInstallPosition());
baseMachineInfoMapper.updateById(machineInfo);
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
@Transactional( rollbackFor = Exception.class )
public Boolean updateByBo(DmsBaseDeviceInstallBo bo) {
DmsBaseDeviceInstall update = MapstructUtils.convert(bo, DmsBaseDeviceInstall.class);
validEntityBeforeSave(update);
//安装时修改设备信息的位置
DmsBaseMachineInfo machineInfo = new DmsBaseMachineInfo();
machineInfo.setMachineId(bo.getMachineId());
machineInfo.setMachineLocation(bo.getInstallPosition());
baseMachineInfoMapper.updateById(machineInfo);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(DmsBaseDeviceInstall entity){
//TODO 做一些数据校验,如唯一约束
// 查询该设备是否已有安装记录
Long count = baseMapper.selectCount(
Wrappers.<DmsBaseDeviceInstall>lambdaQuery()
.eq(DmsBaseDeviceInstall::getMachineId, entity.getMachineId())
// 更新时排除自身记录
.ne(entity.getDeviceInstallId() != null,
DmsBaseDeviceInstall::getDeviceInstallId,
entity.getDeviceInstallId())
);
if (count > 0) {
throw new ServiceException("该设备已安装,每个设备只能有一条安装记录");
}
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -0,0 +1,155 @@
package org.dromara.dms.service.impl;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.dms.domain.DmsBaseMachineInfo;
import org.springframework.stereotype.Service;
import org.dromara.dms.domain.bo.DmsBaseDevicePurchaseBo;
import org.dromara.dms.domain.vo.DmsBaseDevicePurchaseVo;
import org.dromara.dms.domain.DmsBaseDevicePurchase;
import org.dromara.dms.mapper.DmsBaseDevicePurchaseMapper;
import org.dromara.dms.service.IDmsBaseDevicePurchaseService;
import org.springframework.util.ObjectUtils;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author zch
* @date 2025-03-20
*/
@RequiredArgsConstructor
@Service
public class DmsBaseDevicePurchaseServiceImpl implements IDmsBaseDevicePurchaseService {
private final DmsBaseDevicePurchaseMapper baseMapper;
/**
*
*
* @param devicePurchaseId
* @return
*/
@Override
public DmsBaseDevicePurchaseVo queryById(Long devicePurchaseId){
return baseMapper.selectVoById(devicePurchaseId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<DmsBaseDevicePurchaseVo> queryPageList(DmsBaseDevicePurchaseBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<DmsBaseDevicePurchase> lqw = buildQueryWrapper(bo);
Page<DmsBaseDevicePurchaseVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<DmsBaseDevicePurchaseVo> queryList(DmsBaseDevicePurchaseBo bo) {
MPJLambdaWrapper<DmsBaseDevicePurchase> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<DmsBaseDevicePurchase> buildQueryWrapper(DmsBaseDevicePurchaseBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<DmsBaseDevicePurchase> lqw = JoinWrappers.lambda(DmsBaseDevicePurchase.class)
.selectAll(DmsBaseDevicePurchase.class)
//关联查询设备信息
.select(DmsBaseMachineInfo::getMachineName)
.leftJoin(DmsBaseMachineInfo.class,DmsBaseMachineInfo::getMachineId,DmsBaseDevicePurchase::getMachineId)
.eq(bo.getDevicePurchaseId() != null, DmsBaseDevicePurchase::getDevicePurchaseId, bo.getDevicePurchaseId())
.eq(StringUtils.isNotBlank(bo.getWorkOrder()), DmsBaseDevicePurchase::getWorkOrder, bo.getWorkOrder())
.eq(bo.getMachineId() != null, DmsBaseDevicePurchase::getMachineId, bo.getMachineId())
.eq(StringUtils.isNotBlank(bo.getPurchasePerson()), DmsBaseDevicePurchase::getPurchasePerson, bo.getPurchasePerson())
.eq(StringUtils.isNotBlank(bo.getPurchasePosition()), DmsBaseDevicePurchase::getPurchasePosition, bo.getPurchasePosition())
.eq(bo.getPurchaseTime() != null, DmsBaseDevicePurchase::getPurchaseTime, bo.getPurchaseTime())
.orderByDesc(DmsBaseDevicePurchase::getCreateTime);
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(DmsBaseDevicePurchaseBo bo) {
DmsBaseDevicePurchase add = MapstructUtils.convert(bo, DmsBaseDevicePurchase.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setDevicePurchaseId(add.getDevicePurchaseId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(DmsBaseDevicePurchaseBo bo) {
DmsBaseDevicePurchase update = MapstructUtils.convert(bo, DmsBaseDevicePurchase.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(DmsBaseDevicePurchase entity){
//TODO 做一些数据校验,如唯一约束
//编号校验
if (StringUtils.isNotNull(entity.getWorkOrder())){
DmsBaseDevicePurchaseBo query = new DmsBaseDevicePurchaseBo();
query.setWorkOrder(entity.getWorkOrder());
MPJLambdaWrapper<DmsBaseDevicePurchase> lqw = buildQueryWrapper(query);
DmsBaseDevicePurchase detail = baseMapper.selectOne(lqw);
if ( !ObjectUtils.isEmpty(detail)
&& !detail.getDevicePurchaseId().equals(entity.getDevicePurchaseId())){
throw new ServiceException("编号已存在");
}
}
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -0,0 +1,153 @@
package org.dromara.dms.service.impl;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.dms.domain.bo.DmsBaseDeviceSupplierBo;
import org.dromara.dms.domain.vo.DmsBaseDeviceSupplierVo;
import org.dromara.dms.domain.DmsBaseDeviceSupplier;
import org.dromara.dms.mapper.DmsBaseDeviceSupplierMapper;
import org.dromara.dms.service.IDmsBaseDeviceSupplierService;
import org.springframework.util.ObjectUtils;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author zch
* @date 2025-03-20
*/
@RequiredArgsConstructor
@Service
public class DmsBaseDeviceSupplierServiceImpl implements IDmsBaseDeviceSupplierService {
private final DmsBaseDeviceSupplierMapper baseMapper;
/**
*
*
* @param supplierId
* @return
*/
@Override
public DmsBaseDeviceSupplierVo queryById(Long supplierId){
return baseMapper.selectVoById(supplierId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<DmsBaseDeviceSupplierVo> queryPageList(DmsBaseDeviceSupplierBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<DmsBaseDeviceSupplier> lqw = buildQueryWrapper(bo);
Page<DmsBaseDeviceSupplierVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<DmsBaseDeviceSupplierVo> queryList(DmsBaseDeviceSupplierBo bo) {
MPJLambdaWrapper<DmsBaseDeviceSupplier> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<DmsBaseDeviceSupplier> buildQueryWrapper(DmsBaseDeviceSupplierBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<DmsBaseDeviceSupplier> lqw = JoinWrappers.lambda(DmsBaseDeviceSupplier.class)
.selectAll(DmsBaseDeviceSupplier.class)
.eq(bo.getSupplierId() != null, DmsBaseDeviceSupplier::getSupplierId, bo.getSupplierId())
.eq(StringUtils.isNotBlank(bo.getSupplierCode()), DmsBaseDeviceSupplier::getSupplierCode, bo.getSupplierCode())
.like(StringUtils.isNotBlank(bo.getSupplierName()), DmsBaseDeviceSupplier::getSupplierName, bo.getSupplierName())
.eq(StringUtils.isNotBlank(bo.getSupplierPerson()), DmsBaseDeviceSupplier::getSupplierPerson, bo.getSupplierPerson())
.eq(StringUtils.isNotBlank(bo.getSupplierTel()), DmsBaseDeviceSupplier::getSupplierTel, bo.getSupplierTel())
.eq(StringUtils.isNotBlank(bo.getSupplierAddress()), DmsBaseDeviceSupplier::getSupplierAddress, bo.getSupplierAddress())
.eq(bo.getSupplierStatus() != null, DmsBaseDeviceSupplier::getSupplierStatus, bo.getSupplierStatus())
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), DmsBaseDeviceSupplier::getActiveFlag, bo.getActiveFlag())
.orderByDesc(DmsBaseDeviceSupplier::getCreateTime);
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(DmsBaseDeviceSupplierBo bo) {
DmsBaseDeviceSupplier add = MapstructUtils.convert(bo, DmsBaseDeviceSupplier.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setSupplierId(add.getSupplierId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(DmsBaseDeviceSupplierBo bo) {
DmsBaseDeviceSupplier update = MapstructUtils.convert(bo, DmsBaseDeviceSupplier.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(DmsBaseDeviceSupplier entity){
//TODO 做一些数据校验,如唯一约束
// 编号校验
if (StringUtils.isNotNull(entity.getSupplierCode())){
DmsBaseDeviceSupplierBo query = new DmsBaseDeviceSupplierBo();
query.setSupplierCode(entity.getSupplierCode());
MPJLambdaWrapper<DmsBaseDeviceSupplier> lqw = buildQueryWrapper(query);
DmsBaseDeviceSupplier detail = baseMapper.selectOne(lqw);
if ( !ObjectUtils.isEmpty(detail)
&& !detail.getSupplierId().equals(entity.getSupplierId())){
throw new ServiceException("编号已存在");
}
}
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -0,0 +1,152 @@
package org.dromara.dms.service.impl;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.dms.domain.bo.DmsBaseOutsourcingInfoBo;
import org.dromara.dms.domain.vo.DmsBaseOutsourcingInfoVo;
import org.dromara.dms.domain.DmsBaseOutsourcingInfo;
import org.dromara.dms.mapper.DmsBaseOutsourcingInfoMapper;
import org.dromara.dms.service.IDmsBaseOutsourcingInfoService;
import org.springframework.util.ObjectUtils;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author zch
* @date 2025-03-20
*/
@RequiredArgsConstructor
@Service
public class DmsBaseOutsourcingInfoServiceImpl implements IDmsBaseOutsourcingInfoService {
private final DmsBaseOutsourcingInfoMapper baseMapper;
/**
*
*
* @param outsourcingId
* @return
*/
@Override
public DmsBaseOutsourcingInfoVo queryById(Long outsourcingId){
return baseMapper.selectVoById(outsourcingId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<DmsBaseOutsourcingInfoVo> queryPageList(DmsBaseOutsourcingInfoBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<DmsBaseOutsourcingInfo> lqw = buildQueryWrapper(bo);
Page<DmsBaseOutsourcingInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<DmsBaseOutsourcingInfoVo> queryList(DmsBaseOutsourcingInfoBo bo) {
MPJLambdaWrapper<DmsBaseOutsourcingInfo> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<DmsBaseOutsourcingInfo> buildQueryWrapper(DmsBaseOutsourcingInfoBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<DmsBaseOutsourcingInfo> lqw = JoinWrappers.lambda(DmsBaseOutsourcingInfo.class)
.selectAll(DmsBaseOutsourcingInfo.class)
.eq(bo.getOutsourcingId() != null, DmsBaseOutsourcingInfo::getOutsourcingId, bo.getOutsourcingId())
.eq(StringUtils.isNotBlank(bo.getOutsourcingCode()), DmsBaseOutsourcingInfo::getOutsourcingCode, bo.getOutsourcingCode())
.like(StringUtils.isNotBlank(bo.getOutsourcingName()), DmsBaseOutsourcingInfo::getOutsourcingName, bo.getOutsourcingName())
.eq(StringUtils.isNotBlank(bo.getOutsourcingPerson()), DmsBaseOutsourcingInfo::getOutsourcingPerson, bo.getOutsourcingPerson())
.eq(StringUtils.isNotBlank(bo.getOutsourcingTel()), DmsBaseOutsourcingInfo::getOutsourcingTel, bo.getOutsourcingTel())
.eq(StringUtils.isNotBlank(bo.getOutsourcingAddress()), DmsBaseOutsourcingInfo::getOutsourcingAddress, bo.getOutsourcingAddress())
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), DmsBaseOutsourcingInfo::getActiveFlag, bo.getActiveFlag())
.orderByDesc(DmsBaseOutsourcingInfo::getCreateTime);
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(DmsBaseOutsourcingInfoBo bo) {
DmsBaseOutsourcingInfo add = MapstructUtils.convert(bo, DmsBaseOutsourcingInfo.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setOutsourcingId(add.getOutsourcingId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(DmsBaseOutsourcingInfoBo bo) {
DmsBaseOutsourcingInfo update = MapstructUtils.convert(bo, DmsBaseOutsourcingInfo.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(DmsBaseOutsourcingInfo entity){
//TODO 做一些数据校验,如唯一约束
//编号校验
if (StringUtils.isNotNull(entity.getOutsourcingCode())){
DmsBaseOutsourcingInfoBo query = new DmsBaseOutsourcingInfoBo();
query.setOutsourcingCode(entity.getOutsourcingCode());
MPJLambdaWrapper<DmsBaseOutsourcingInfo> lqw = buildQueryWrapper(query);
DmsBaseOutsourcingInfo detail = baseMapper.selectOne(lqw);
if ( !ObjectUtils.isEmpty(detail)
&& !detail.getOutsourcingId().equals(entity.getOutsourcingId())){
throw new ServiceException("编号已存在");
}
}
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -0,0 +1,194 @@
package org.dromara.dms.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.dms.domain.DmsBaseMachineInfo;
import org.dromara.dms.mapper.DmsBaseMachineInfoMapper;
import org.springframework.stereotype.Service;
import org.dromara.dms.domain.bo.DmsBaseTransferInfoBo;
import org.dromara.dms.domain.vo.DmsBaseTransferInfoVo;
import org.dromara.dms.domain.DmsBaseTransferInfo;
import org.dromara.dms.mapper.DmsBaseTransferInfoMapper;
import org.dromara.dms.service.IDmsBaseTransferInfoService;
import org.dromara.common.core.exception.ServiceException;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.stream.Collectors;
/**
* Service
*
* @author Yinq
* @date 2025-03-20
*/
@RequiredArgsConstructor
@Service
public class DmsBaseTransferInfoServiceImpl implements IDmsBaseTransferInfoService {
private final DmsBaseTransferInfoMapper baseMapper;
private final DmsBaseMachineInfoMapper baseMachineInfoMapper;
/**
*
*
* @param transferInfoId
* @return
*/
@Override
public DmsBaseTransferInfoVo queryById(Long transferInfoId){
return baseMapper.selectVoById(transferInfoId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<DmsBaseTransferInfoVo> queryPageList(DmsBaseTransferInfoBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<DmsBaseTransferInfo> lqw = buildQueryWrapper(bo);
Page<DmsBaseTransferInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<DmsBaseTransferInfoVo> queryList(DmsBaseTransferInfoBo bo) {
MPJLambdaWrapper<DmsBaseTransferInfo> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<DmsBaseTransferInfo> buildQueryWrapper(DmsBaseTransferInfoBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<DmsBaseTransferInfo> lqw = JoinWrappers.lambda(DmsBaseTransferInfo.class)
.selectAll(DmsBaseTransferInfo.class)
//连表查询设备名称
.select(DmsBaseMachineInfo::getMachineName)
.leftJoin(DmsBaseMachineInfo.class,DmsBaseMachineInfo::getMachineId,DmsBaseTransferInfo::getMachineId)
.eq(bo.getTransferInfoId() != null, DmsBaseTransferInfo::getTransferInfoId, bo.getTransferInfoId())
.eq(bo.getMachineId() != null, DmsBaseTransferInfo::getMachineId, bo.getMachineId())
.eq(StringUtils.isNotBlank(bo.getDevicePosition()), DmsBaseTransferInfo::getDevicePosition, bo.getDevicePosition())
.eq(StringUtils.isNotBlank(bo.getDevicePositionNew()), DmsBaseTransferInfo::getDevicePositionNew, bo.getDevicePositionNew())
.eq(StringUtils.isNotBlank(bo.getDevicePositionOperator()), DmsBaseTransferInfo::getDevicePositionOperator, bo.getDevicePositionOperator())
.eq(StringUtils.isNotBlank(bo.getDevicePositionReason()), DmsBaseTransferInfo::getDevicePositionReason, bo.getDevicePositionReason())
.eq(bo.getDeviceTransferTime() != null, DmsBaseTransferInfo::getDeviceTransferTime, bo.getDeviceTransferTime())
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), DmsBaseTransferInfo::getActiveFlag, bo.getActiveFlag())
.orderByDesc(DmsBaseTransferInfo::getCreateTime);
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
@Transactional( rollbackFor = Exception.class )
public Boolean insertByBo(DmsBaseTransferInfoBo bo) {
DmsBaseTransferInfo add = MapstructUtils.convert(bo, DmsBaseTransferInfo.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setTransferInfoId(add.getTransferInfoId());
}
//转移时修改设备信息的位置
DmsBaseMachineInfo machineInfo = new DmsBaseMachineInfo();
machineInfo.setMachineId(bo.getMachineId());
machineInfo.setMachineLocation(bo.getDevicePositionNew());
baseMachineInfoMapper.updateById(machineInfo);
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
@Transactional( rollbackFor = Exception.class )
public Boolean updateByBo(DmsBaseTransferInfoBo bo) {
DmsBaseTransferInfo update = MapstructUtils.convert(bo, DmsBaseTransferInfo.class);
validEntityBeforeSave(update);
//转移时修改设备信息的位置
DmsBaseMachineInfo machineInfo = new DmsBaseMachineInfo();
machineInfo.setMachineId(bo.getMachineId());
machineInfo.setMachineLocation(bo.getDevicePositionNew());
baseMachineInfoMapper.updateById(machineInfo);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(DmsBaseTransferInfo entity) {
// 1. 校验新位置不能与原位置相同
if (StringUtils.equals(entity.getDevicePositionNew(), entity.getDevicePosition())) {
throw new ServiceException("新位置不能与原位置相同");
}
// 2. 校验转移前必须有安装位置
if (StringUtils.isBlank(entity.getDevicePosition())) {
throw new ServiceException("转移前必须有安装位置");
}
// 3. 校验转移时间不能小于之前记录的转移时间
if (entity.getDeviceTransferTime() != null) {
// 使用分页功能限制记录数量
Page<DmsBaseTransferInfo> page = new Page<>(1, 100);
IPage<DmsBaseTransferInfo> resultPage = baseMapper.selectPage(page,
Wrappers.<DmsBaseTransferInfo>lambdaQuery()
.select(DmsBaseTransferInfo::getDeviceTransferTime)
.eq(DmsBaseTransferInfo::getMachineId, entity.getMachineId())
.eq(DmsBaseTransferInfo::getDevicePositionNew, entity.getDevicePosition())
.orderByDesc(DmsBaseTransferInfo::getDeviceTransferTime)
);
// 使用stream流检查转移时间
boolean hasInvalidTime = resultPage.getRecords().stream()
.anyMatch(previousTransfer ->
entity.getDeviceTransferTime().before(previousTransfer.getDeviceTransferTime())
);
if (hasInvalidTime) {
throw new ServiceException("设备转移时间不能小于之前记录的设备转移时间");
}
}
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -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.dms.mapper.DmsBaseDeviceBomMapper">
</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.dms.mapper.DmsBaseDeviceDepreciationMapper">
</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.dms.mapper.DmsBaseDeviceInstallMapper">
</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.dms.mapper.DmsBaseDevicePurchaseMapper">
</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.dms.mapper.DmsBaseDeviceSupplierMapper">
</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.dms.mapper.DmsBaseOutsourcingInfoMapper">
</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.dms.mapper.DmsBaseTransferInfoMapper">
</mapper>
Loading…
Cancel
Save