多数据源的项目获取
This commit is contained in:
@ -0,0 +1,130 @@
|
||||
package org.dromara.cailiaoshebei.controller;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.cailiaoshebei.domain.bo.*;
|
||||
import org.dromara.cailiaoshebei.domain.vo.BusCailiaoshebeiListPlanRes;
|
||||
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.cailiaoshebei.domain.vo.BusCailiaoshebeiVo;
|
||||
import org.dromara.cailiaoshebei.service.IBusCailiaoshebeiService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 物资-材料设备
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/cailiaoshebei/cailiaoshebei")
|
||||
public class BusCailiaoshebeiController extends BaseController {
|
||||
|
||||
private final IBusCailiaoshebeiService busCailiaoshebeiService;
|
||||
|
||||
//===============================设计===============================
|
||||
|
||||
/**
|
||||
* 查询物资-材料设备列表
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:cailiaoshebei:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BusCailiaoshebeiVo> list(BusCailiaoshebeiBo bo, PageQuery pageQuery) {
|
||||
return busCailiaoshebeiService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物资-材料设备详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:cailiaoshebei:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BusCailiaoshebeiVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(busCailiaoshebeiService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物资-材料设备
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:cailiaoshebei:add")
|
||||
@Log(title = "物资-材料设备", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BusCailiaoshebeiAddReq req) {
|
||||
return toAjax(busCailiaoshebeiService.insertByBo(req));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物资-材料设备-设计部
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:cailiaoshebei:edit")
|
||||
@Log(title = "物资-材料设备-设计部", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusCailiaoshebeiEditReq bo) {
|
||||
return toAjax(busCailiaoshebeiService.updateByBo(bo));
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 导出物资-材料设备列表
|
||||
// */
|
||||
// @SaCheckPermission("cailiaoshebei:cailiaoshebei:export")
|
||||
// @Log(title = "物资-材料设备", businessType = BusinessType.EXPORT)
|
||||
// @PostMapping("/export")
|
||||
// public void export(BusCailiaoshebeiBo bo, HttpServletResponse response) {
|
||||
// List<BusCailiaoshebeiVo> list = busCailiaoshebeiService.queryList(bo);
|
||||
// ExcelUtil.exportExcel(list, "物资-材料设备", BusCailiaoshebeiVo.class, response);
|
||||
// }
|
||||
|
||||
|
||||
// /**
|
||||
// * 删除物资-材料设备
|
||||
// *
|
||||
// * @param ids 主键串
|
||||
// */
|
||||
// @SaCheckPermission("cailiaoshebei:cailiaoshebei:remove")
|
||||
// @Log(title = "物资-材料设备", businessType = BusinessType.DELETE)
|
||||
// @DeleteMapping("/{ids}")
|
||||
// public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
// @PathVariable Long[] ids) {
|
||||
// return toAjax(busCailiaoshebeiService.deleteWithValidByIds(List.of(ids), true));
|
||||
// }
|
||||
|
||||
//===============================计划===============================
|
||||
|
||||
/**
|
||||
* 查询物资-材料设备列表
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:cailiaoshebei:listPlan")
|
||||
@GetMapping("/listPlan")
|
||||
public TableDataInfo<BusCailiaoshebeiListPlanRes> listPlan(BusCailiaoshebeiBo bo, PageQuery pageQuery) {
|
||||
return busCailiaoshebeiService.queryPageListPlan(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物资-材料设备-计划部`
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:cailiaoshebei:editPlan")
|
||||
@Log(title = "物资-材料设备-计划部", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping("/editPlan")
|
||||
public R<Void> editPlan(@Validated(EditGroup.class) @RequestBody BusCailiaoshebeiEditPlanReq bo) {
|
||||
return toAjax(busCailiaoshebeiService.updateByPlanBo(bo));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,105 @@
|
||||
package org.dromara.cailiaoshebei.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.cailiaoshebei.domain.vo.BusCailiaoshebeiPiciVo;
|
||||
import org.dromara.cailiaoshebei.domain.bo.BusCailiaoshebeiPiciBo;
|
||||
import org.dromara.cailiaoshebei.service.IBusCailiaoshebeiPiciService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 物资-批次号
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/cailiaoshebei/cailiaoshebeiPici")
|
||||
public class BusCailiaoshebeiPiciController extends BaseController {
|
||||
|
||||
private final IBusCailiaoshebeiPiciService busCailiaoshebeiPiciService;
|
||||
|
||||
/**
|
||||
* 查询物资-批次号列表
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:cailiaoshebeiPici:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BusCailiaoshebeiPiciVo> list(BusCailiaoshebeiPiciBo bo, PageQuery pageQuery) {
|
||||
return busCailiaoshebeiPiciService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出物资-批次号列表
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:cailiaoshebeiPici:export")
|
||||
@Log(title = "物资-批次号", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BusCailiaoshebeiPiciBo bo, HttpServletResponse response) {
|
||||
List<BusCailiaoshebeiPiciVo> list = busCailiaoshebeiPiciService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "物资-批次号", BusCailiaoshebeiPiciVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物资-批次号详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:cailiaoshebeiPici:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BusCailiaoshebeiPiciVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(busCailiaoshebeiPiciService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物资-批次号
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:cailiaoshebeiPici:add")
|
||||
@Log(title = "物资-批次号", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BusCailiaoshebeiPiciBo bo) {
|
||||
return toAjax(busCailiaoshebeiPiciService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物资-批次号
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:cailiaoshebeiPici:edit")
|
||||
@Log(title = "物资-批次号", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusCailiaoshebeiPiciBo bo) {
|
||||
return toAjax(busCailiaoshebeiPiciService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除物资-批次号
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:cailiaoshebeiPici:remove")
|
||||
@Log(title = "物资-批次号", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(busCailiaoshebeiPiciService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,105 @@
|
||||
package org.dromara.cailiaoshebei.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.cailiaoshebei.domain.vo.BusSuppliespriceVo;
|
||||
import org.dromara.cailiaoshebei.domain.bo.BusSuppliespriceBo;
|
||||
import org.dromara.cailiaoshebei.service.IBusSuppliespriceService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 物资-物资清单
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/cailiaoshebei/suppliesprice")
|
||||
public class BusSuppliespriceController extends BaseController {
|
||||
|
||||
private final IBusSuppliespriceService busSuppliespriceService;
|
||||
|
||||
/**
|
||||
* 查询物资-物资清单列表
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:suppliesprice:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BusSuppliespriceVo> list(BusSuppliespriceBo bo, PageQuery pageQuery) {
|
||||
return busSuppliespriceService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出物资-物资清单列表
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:suppliesprice:export")
|
||||
@Log(title = "物资-物资清单", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BusSuppliespriceBo bo, HttpServletResponse response) {
|
||||
List<BusSuppliespriceVo> list = busSuppliespriceService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "物资-物资清单", BusSuppliespriceVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物资-物资清单详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:suppliesprice:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BusSuppliespriceVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(busSuppliespriceService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物资-物资清单
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:suppliesprice:add")
|
||||
@Log(title = "物资-物资清单", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BusSuppliespriceBo bo) {
|
||||
return toAjax(busSuppliespriceService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物资-物资清单
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:suppliesprice:edit")
|
||||
@Log(title = "物资-物资清单", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusSuppliespriceBo bo) {
|
||||
return toAjax(busSuppliespriceService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除物资-物资清单
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("cailiaoshebei:suppliesprice:remove")
|
||||
@Log(title = "物资-物资清单", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(busSuppliespriceService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,108 @@
|
||||
package org.dromara.cailiaoshebei.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 物资-材料设备对象 bus_cailiaoshebei
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("bus_cailiaoshebei")
|
||||
public class BusCailiaoshebei extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 批次ID
|
||||
*/
|
||||
private Long batchId;
|
||||
|
||||
/**
|
||||
* 供货商ID
|
||||
*/
|
||||
private Long supplierId;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 供货商
|
||||
*/
|
||||
private String supplier;
|
||||
|
||||
/**
|
||||
* 设备材料名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 供货来源(字典)
|
||||
*/
|
||||
private String supply;
|
||||
|
||||
/**
|
||||
* 规格型号
|
||||
*/
|
||||
private String specification;
|
||||
|
||||
/**
|
||||
* 特征描述
|
||||
*/
|
||||
private String signalment;
|
||||
|
||||
/**
|
||||
* 物料编码
|
||||
*/
|
||||
private String materialCode;
|
||||
|
||||
/**
|
||||
* 计划到场时间
|
||||
*/
|
||||
private Date arrivalTime;
|
||||
|
||||
/**
|
||||
* 计划完成时间
|
||||
*/
|
||||
private Date finishTime;
|
||||
|
||||
/**
|
||||
* 计量单位
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 计划数量
|
||||
*/
|
||||
private Long plan;
|
||||
|
||||
/**
|
||||
* 实际数量
|
||||
*/
|
||||
private Long realQuantity;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
package org.dromara.cailiaoshebei.domain;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 物资-批次号对象 bus_cailiaoshebei_pici
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("bus_cailiaoshebei_pici")
|
||||
@Accessors(chain = true)
|
||||
public class BusCailiaoshebeiPici extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
private String batchNumber;
|
||||
|
||||
/**
|
||||
* 审批设计
|
||||
*/
|
||||
private String approvalDesign;
|
||||
|
||||
/**
|
||||
* 审批计划
|
||||
*/
|
||||
private String approvalPlan;
|
||||
|
||||
/**
|
||||
* 审批项目
|
||||
*/
|
||||
private String approvalProject;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
package org.dromara.cailiaoshebei.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 物资-物资清单对象 bus_suppliesprice
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("bus_suppliesprice")
|
||||
public class BusSuppliesprice extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 材料设备ID
|
||||
*/
|
||||
private Long cailiaoshebeiId;
|
||||
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
private Long unitPrice;
|
||||
|
||||
/**
|
||||
* 合同号
|
||||
*/
|
||||
private String contractNum;
|
||||
|
||||
/**
|
||||
* 预估供应周期
|
||||
*/
|
||||
private Long estimatedCycle;
|
||||
|
||||
/**
|
||||
* 供货公司
|
||||
*/
|
||||
private String supplierCompany;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,113 @@
|
||||
package org.dromara.cailiaoshebei.domain.bo;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebei;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author 铁憨憨
|
||||
* @Date 2025/7/31 10:04
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = BusCailiaoshebei.class, reverseConvertGenerate = false)
|
||||
@Accessors(chain = true)
|
||||
public class BusCailiaoshebeiAddReq extends BaseEntity {
|
||||
/**
|
||||
* 主键ID (编辑时必填)
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
@NotNull(message = "项目ID不能为空", groups = { AddGroup.class })
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 批次ID (必填)
|
||||
*/
|
||||
@NotBlank(message = "批次ID不能为空", groups = { AddGroup.class })
|
||||
@Size(max = 128, message = "批次ID长度不能超过128个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String batchId;
|
||||
|
||||
/**
|
||||
* 供货商ID (必填)
|
||||
*/
|
||||
@NotNull(message = "供货商ID不能为空", groups = { AddGroup.class })
|
||||
private Long supplierId;
|
||||
|
||||
/**
|
||||
* 供货商 (必填)
|
||||
*/
|
||||
@NotBlank(message = "供货商不能为空", groups = { AddGroup.class })
|
||||
@Size(max = 64, message = "供货商名称长度不能超过64个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String supplier;
|
||||
|
||||
/**
|
||||
* 设备材料名称 (必填)
|
||||
*/
|
||||
@NotBlank(message = "设备材料名称不能为空", groups = { AddGroup.class })
|
||||
@Size(max = 64, message = "设备材料名称长度不能超过64个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 规格型号
|
||||
*/
|
||||
@NotBlank(message = "规格型号不能为空", groups = { AddGroup.class })
|
||||
@Size(max = 128, message = "规格型号长度不能超过128个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String specification;
|
||||
|
||||
/**
|
||||
* 特征描述
|
||||
*/
|
||||
@NotBlank(message = "特征描述不能为空", groups = { AddGroup.class })
|
||||
@Size(max = 128, message = "特征描述长度不能超过128个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String signalment;
|
||||
|
||||
/**
|
||||
* 计量单位 (必填)
|
||||
*/
|
||||
@NotBlank(message = "计量单位不能为空", groups = { AddGroup.class })
|
||||
@Size(max = 10, message = "计量单位长度不能超过10个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 计划数量 (必填)
|
||||
*/
|
||||
@NotNull(message = "计划数量不能为空", groups = { AddGroup.class })
|
||||
private Long plan;
|
||||
|
||||
/**
|
||||
* 供货来源(字典) (必填)
|
||||
*/
|
||||
@NotBlank(message = "供货来源不能为空", groups = { AddGroup.class })
|
||||
@Size(max = 1, message = "供货来源只能是1个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String supply;
|
||||
/**
|
||||
* 物料编码 (必填)
|
||||
*/
|
||||
@NotBlank(message = "物料编码不能为空", groups = { AddGroup.class })
|
||||
@Size(max = 128, message = "物料编码长度不能超过255个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String materialCode;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@Size(max = 500, message = "备注长度不能超过500个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,102 @@
|
||||
package org.dromara.cailiaoshebei.domain.bo;
|
||||
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebei;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 物资-材料设备业务对象 bus_cailiaoshebei
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = BusCailiaoshebei.class, reverseConvertGenerate = false)
|
||||
public class BusCailiaoshebeiBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 批次ID
|
||||
*/
|
||||
private String batchId;
|
||||
|
||||
/**
|
||||
* 供货商ID
|
||||
*/
|
||||
private Long supplierId;
|
||||
|
||||
/**
|
||||
* 供货商
|
||||
*/
|
||||
private String supplier;
|
||||
|
||||
/**
|
||||
* 设备材料名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 供货来源(字典)
|
||||
*/
|
||||
private String supply;
|
||||
|
||||
/**
|
||||
* 规格型号
|
||||
*/
|
||||
private String specification;
|
||||
|
||||
/**
|
||||
* 特征描述
|
||||
*/
|
||||
private String signalment;
|
||||
|
||||
/**
|
||||
* 物料编码
|
||||
*/
|
||||
private String materialCode;
|
||||
|
||||
/**
|
||||
* 计划到场时间
|
||||
*/
|
||||
private Date arrivalTime;
|
||||
|
||||
/**
|
||||
* 计划完成时间
|
||||
*/
|
||||
private Date finishTime;
|
||||
|
||||
/**
|
||||
* 计量单位
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 计划数量
|
||||
*/
|
||||
private Long plan;
|
||||
|
||||
/**
|
||||
* 实际数量
|
||||
*/
|
||||
private Long realQuantity;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package org.dromara.cailiaoshebei.domain.bo;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebei;
|
||||
import org.dromara.cailiaoshebei.domain.dto.BusCailiaoshebeiEditPlanDto;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 铁憨憨
|
||||
* @Date 2025/7/31 10:04
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = BusCailiaoshebei.class, reverseConvertGenerate = false)
|
||||
@Accessors(chain = true)
|
||||
public class BusCailiaoshebeiEditPlanReq extends BaseEntity {
|
||||
/**
|
||||
* 主键ID (编辑时必填)
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 计划到场时间
|
||||
*/
|
||||
@NotNull(message = "计划到场时间", groups = { EditGroup.class })
|
||||
private Date arrivalTime;
|
||||
|
||||
/**
|
||||
* 计划完成时间
|
||||
*/
|
||||
@NotNull(message = "计划完成时间", groups = { EditGroup.class })
|
||||
private Date finishTime;
|
||||
|
||||
/**
|
||||
* 物资清单列表
|
||||
*/
|
||||
private List<BusCailiaoshebeiEditPlanDto> listOfMaterialInventory;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,92 @@
|
||||
package org.dromara.cailiaoshebei.domain.bo;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebei;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* @Author 铁憨憨
|
||||
* @Date 2025/7/31 10:04
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = BusCailiaoshebei.class, reverseConvertGenerate = false)
|
||||
@Accessors(chain = true)
|
||||
public class BusCailiaoshebeiEditReq extends BaseEntity {
|
||||
/**
|
||||
* 主键ID (编辑时必填)
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 供货商ID (必填)
|
||||
*/
|
||||
@NotNull(message = "供货商ID不能为空", groups = { AddGroup.class })
|
||||
private Long supplierId;
|
||||
|
||||
/**
|
||||
* 供货商 (必填)
|
||||
*/
|
||||
@NotBlank(message = "供货商不能为空", groups = { AddGroup.class })
|
||||
@Size(max = 64, message = "供货商名称长度不能超过64个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String supplier;
|
||||
|
||||
/**
|
||||
* 设备材料名称 (必填)
|
||||
*/
|
||||
@NotBlank(message = "设备材料名称不能为空", groups = { AddGroup.class })
|
||||
@Size(max = 64, message = "设备材料名称长度不能超过64个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 规格型号
|
||||
*/
|
||||
@NotBlank(message = "规格型号不能为空", groups = { AddGroup.class })
|
||||
@Size(max = 128, message = "规格型号长度不能超过128个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String specification;
|
||||
|
||||
/**
|
||||
* 特征描述
|
||||
*/
|
||||
@NotBlank(message = "特征描述不能为空", groups = { AddGroup.class })
|
||||
@Size(max = 128, message = "特征描述长度不能超过128个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String signalment;
|
||||
|
||||
/**
|
||||
* 计量单位 (必填)
|
||||
*/
|
||||
@NotBlank(message = "计量单位不能为空", groups = { AddGroup.class })
|
||||
@Size(max = 10, message = "计量单位长度不能超过10个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 计划数量 (必填)
|
||||
*/
|
||||
@NotNull(message = "计划数量不能为空", groups = { AddGroup.class })
|
||||
private Long plan;
|
||||
|
||||
/**
|
||||
* 供货来源(字典) (必填)
|
||||
*/
|
||||
@NotBlank(message = "供货来源不能为空", groups = { AddGroup.class })
|
||||
@Size(max = 1, message = "供货来源只能是1个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String supply;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@Size(max = 500, message = "备注长度不能超过500个字符", groups = {AddGroup.class, EditGroup.class})
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
package org.dromara.cailiaoshebei.domain.bo;
|
||||
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebeiPici;
|
||||
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.*;
|
||||
|
||||
/**
|
||||
* 物资-批次号业务对象 bus_cailiaoshebei_pici
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = BusCailiaoshebeiPici.class, reverseConvertGenerate = false)
|
||||
@Accessors(chain = true)
|
||||
public class BusCailiaoshebeiPiciBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@NotNull(message = "id不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
private String batchNumber;
|
||||
|
||||
/**
|
||||
* 审批设计
|
||||
*/
|
||||
private String approvalDesign;
|
||||
|
||||
/**
|
||||
* 审批计划
|
||||
*/
|
||||
private String approvalPlan;
|
||||
|
||||
/**
|
||||
* 审批项目
|
||||
*/
|
||||
private String approvalProject;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
package org.dromara.cailiaoshebei.domain.bo;
|
||||
|
||||
import org.dromara.cailiaoshebei.domain.BusSuppliesprice;
|
||||
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.*;
|
||||
|
||||
/**
|
||||
* 物资-物资清单业务对象 bus_suppliesprice
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = BusSuppliesprice.class, reverseConvertGenerate = false)
|
||||
public class BusSuppliespriceBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@NotNull(message = "ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 材料设备ID
|
||||
*/
|
||||
private Long cailiaoshebeiId;
|
||||
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
private Long unitPrice;
|
||||
|
||||
/**
|
||||
* 合同号
|
||||
*/
|
||||
private String contractNum;
|
||||
|
||||
/**
|
||||
* 预估供应周期
|
||||
*/
|
||||
private Long estimatedCycle;
|
||||
|
||||
/**
|
||||
* 供货公司
|
||||
*/
|
||||
private String supplierCompany;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package org.dromara.cailiaoshebei.domain.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Author 铁憨憨
|
||||
* @Date 2025/7/31 18:26
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class BusCailiaoshebeiEditPlanDto implements Serializable {
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
private Long unitPrice;
|
||||
|
||||
/**
|
||||
* 合同号
|
||||
*/
|
||||
private String contractNum;
|
||||
|
||||
/**
|
||||
* 预估供应周期
|
||||
*/
|
||||
private Long estimatedCycle;
|
||||
|
||||
/**
|
||||
* 供货公司
|
||||
*/
|
||||
private String supplierCompany;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
}
|
@ -0,0 +1,115 @@
|
||||
package org.dromara.cailiaoshebei.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author 铁憨憨
|
||||
* @Date 2025/7/31 19:49
|
||||
* @Version 1.0
|
||||
*/
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class BusCailiaoshebeiListPlanRes implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 批次ID
|
||||
*/
|
||||
@ExcelProperty(value = "批次ID")
|
||||
private String batchId;
|
||||
|
||||
/**
|
||||
* 供货商ID
|
||||
*/
|
||||
@ExcelProperty(value = "供货商ID")
|
||||
private Long supplierId;
|
||||
|
||||
/**
|
||||
* 供货商
|
||||
*/
|
||||
@ExcelProperty(value = "供货商")
|
||||
private String supplier;
|
||||
|
||||
/**
|
||||
* 设备材料名称
|
||||
*/
|
||||
@ExcelProperty(value = "设备材料名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 供货来源(字典)
|
||||
*/
|
||||
@ExcelProperty(value = "供货来源(字典)", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "supply")
|
||||
private String supply;
|
||||
|
||||
/**
|
||||
* 规格型号
|
||||
*/
|
||||
@ExcelProperty(value = "规格型号")
|
||||
private String specification;
|
||||
|
||||
/**
|
||||
* 特征描述
|
||||
*/
|
||||
@ExcelProperty(value = "特征描述")
|
||||
private String signalment;
|
||||
|
||||
/**
|
||||
* 物料编码
|
||||
*/
|
||||
@ExcelProperty(value = "物料编码")
|
||||
private String materialCode;
|
||||
|
||||
/**
|
||||
* 计划到场时间
|
||||
*/
|
||||
@ExcelProperty(value = "计划到场时间")
|
||||
private Date arrivalTime;
|
||||
|
||||
/**
|
||||
* 计划完成时间
|
||||
*/
|
||||
@ExcelProperty(value = "计划完成时间")
|
||||
private Date finishTime;
|
||||
|
||||
/**
|
||||
* 计量单位
|
||||
*/
|
||||
@ExcelProperty(value = "计量单位")
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 计划数量
|
||||
*/
|
||||
@ExcelProperty(value = "计划数量")
|
||||
private Long plan;
|
||||
|
||||
/**
|
||||
* 实际数量
|
||||
*/
|
||||
@ExcelProperty(value = "实际数量")
|
||||
private Long realQuantity;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
package org.dromara.cailiaoshebei.domain.vo;
|
||||
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebeiPici;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 物资-批次号视图对象 bus_cailiaoshebei_pici
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = BusCailiaoshebeiPici.class)
|
||||
public class BusCailiaoshebeiPiciVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ExcelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
@ExcelProperty(value = "批次号")
|
||||
private String batchNumber;
|
||||
|
||||
/**
|
||||
* 审批设计
|
||||
*/
|
||||
@ExcelProperty(value = "审批设计")
|
||||
private String approvalDesign;
|
||||
|
||||
/**
|
||||
* 审批计划
|
||||
*/
|
||||
@ExcelProperty(value = "审批计划")
|
||||
private String approvalPlan;
|
||||
|
||||
/**
|
||||
* 审批项目
|
||||
*/
|
||||
@ExcelProperty(value = "审批项目")
|
||||
private String approvalProject;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,125 @@
|
||||
package org.dromara.cailiaoshebei.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebei;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 物资-材料设备视图对象 bus_cailiaoshebei
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = BusCailiaoshebei.class)
|
||||
public class BusCailiaoshebeiVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 批次ID
|
||||
*/
|
||||
@ExcelProperty(value = "批次ID")
|
||||
private String batchId;
|
||||
|
||||
/**
|
||||
* 供货商ID
|
||||
*/
|
||||
@ExcelProperty(value = "供货商ID")
|
||||
private Long supplierId;
|
||||
|
||||
/**
|
||||
* 供货商
|
||||
*/
|
||||
@ExcelProperty(value = "供货商")
|
||||
private String supplier;
|
||||
|
||||
/**
|
||||
* 设备材料名称
|
||||
*/
|
||||
@ExcelProperty(value = "设备材料名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 供货来源(字典)
|
||||
*/
|
||||
@ExcelProperty(value = "供货来源(字典)", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "supply")
|
||||
private String supply;
|
||||
|
||||
/**
|
||||
* 规格型号
|
||||
*/
|
||||
@ExcelProperty(value = "规格型号")
|
||||
private String specification;
|
||||
|
||||
/**
|
||||
* 特征描述
|
||||
*/
|
||||
@ExcelProperty(value = "特征描述")
|
||||
private String signalment;
|
||||
|
||||
/**
|
||||
* 物料编码
|
||||
*/
|
||||
@ExcelProperty(value = "物料编码")
|
||||
private String materialCode;
|
||||
|
||||
/**
|
||||
* 计划到场时间
|
||||
*/
|
||||
@ExcelProperty(value = "计划到场时间")
|
||||
private Date arrivalTime;
|
||||
|
||||
/**
|
||||
* 计划完成时间
|
||||
*/
|
||||
@ExcelProperty(value = "计划完成时间")
|
||||
private Date finishTime;
|
||||
|
||||
/**
|
||||
* 计量单位
|
||||
*/
|
||||
@ExcelProperty(value = "计量单位")
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 计划数量
|
||||
*/
|
||||
@ExcelProperty(value = "计划数量")
|
||||
private Long plan;
|
||||
|
||||
/**
|
||||
* 实际数量
|
||||
*/
|
||||
@ExcelProperty(value = "实际数量")
|
||||
private Long realQuantity;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
package org.dromara.cailiaoshebei.domain.vo;
|
||||
|
||||
import org.dromara.cailiaoshebei.domain.BusSuppliesprice;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 物资-物资清单视图对象 bus_suppliesprice
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = BusSuppliesprice.class)
|
||||
public class BusSuppliespriceVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@ExcelProperty(value = "ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 材料设备ID
|
||||
*/
|
||||
@ExcelProperty(value = "材料设备ID")
|
||||
private Long cailiaoshebeiId;
|
||||
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
@ExcelProperty(value = "单价")
|
||||
private Long unitPrice;
|
||||
|
||||
/**
|
||||
* 合同号
|
||||
*/
|
||||
@ExcelProperty(value = "合同号")
|
||||
private String contractNum;
|
||||
|
||||
/**
|
||||
* 预估供应周期
|
||||
*/
|
||||
@ExcelProperty(value = "预估供应周期")
|
||||
private Long estimatedCycle;
|
||||
|
||||
/**
|
||||
* 供货公司
|
||||
*/
|
||||
@ExcelProperty(value = "供货公司")
|
||||
private String supplierCompany;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package org.dromara.cailiaoshebei.mapper;
|
||||
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebei;
|
||||
import org.dromara.cailiaoshebei.domain.vo.BusCailiaoshebeiVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 物资-材料设备Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
public interface BusCailiaoshebeiMapper extends BaseMapperPlus<BusCailiaoshebei, BusCailiaoshebeiVo> {
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package org.dromara.cailiaoshebei.mapper;
|
||||
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebeiPici;
|
||||
import org.dromara.cailiaoshebei.domain.vo.BusCailiaoshebeiPiciVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 物资-批次号Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
public interface BusCailiaoshebeiPiciMapper extends BaseMapperPlus<BusCailiaoshebeiPici, BusCailiaoshebeiPiciVo> {
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package org.dromara.cailiaoshebei.mapper;
|
||||
|
||||
import org.dromara.cailiaoshebei.domain.BusSuppliesprice;
|
||||
import org.dromara.cailiaoshebei.domain.vo.BusSuppliespriceVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 物资-物资清单Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
public interface BusSuppliespriceMapper extends BaseMapperPlus<BusSuppliesprice, BusSuppliespriceVo> {
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package org.dromara.cailiaoshebei.service;
|
||||
|
||||
import org.dromara.cailiaoshebei.domain.vo.BusCailiaoshebeiPiciVo;
|
||||
import org.dromara.cailiaoshebei.domain.bo.BusCailiaoshebeiPiciBo;
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebeiPici;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物资-批次号Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
public interface IBusCailiaoshebeiPiciService extends IService<BusCailiaoshebeiPici>{
|
||||
|
||||
/**
|
||||
* 查询物资-批次号
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 物资-批次号
|
||||
*/
|
||||
BusCailiaoshebeiPiciVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询物资-批次号列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 物资-批次号分页列表
|
||||
*/
|
||||
TableDataInfo<BusCailiaoshebeiPiciVo> queryPageList(BusCailiaoshebeiPiciBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的物资-批次号列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 物资-批次号列表
|
||||
*/
|
||||
List<BusCailiaoshebeiPiciVo> queryList(BusCailiaoshebeiPiciBo bo);
|
||||
|
||||
/**
|
||||
* 新增物资-批次号
|
||||
*
|
||||
* @param bo 物资-批次号
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(BusCailiaoshebeiPiciBo bo);
|
||||
|
||||
/**
|
||||
* 修改物资-批次号
|
||||
*
|
||||
* @param bo 物资-批次号
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(BusCailiaoshebeiPiciBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除物资-批次号信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
package org.dromara.cailiaoshebei.service;
|
||||
|
||||
import org.dromara.cailiaoshebei.domain.bo.*;
|
||||
import org.dromara.cailiaoshebei.domain.vo.BusCailiaoshebeiListPlanRes;
|
||||
import org.dromara.cailiaoshebei.domain.vo.BusCailiaoshebeiVo;
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebei;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物资-材料设备Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
public interface IBusCailiaoshebeiService extends IService<BusCailiaoshebei>{
|
||||
|
||||
/**
|
||||
* 查询物资-材料设备
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 物资-材料设备
|
||||
*/
|
||||
BusCailiaoshebeiVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询物资-材料设备列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 物资-材料设备分页列表
|
||||
*/
|
||||
TableDataInfo<BusCailiaoshebeiVo> queryPageList(BusCailiaoshebeiBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的物资-材料设备列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 物资-材料设备列表
|
||||
*/
|
||||
List<BusCailiaoshebeiVo> queryList(BusCailiaoshebeiBo bo);
|
||||
|
||||
/**
|
||||
* 新增物资-材料设备
|
||||
*
|
||||
* @param req 物资-材料设备
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(BusCailiaoshebeiAddReq req);
|
||||
|
||||
/**
|
||||
* 修改物资-材料设备(设计)
|
||||
*
|
||||
* @param bo 物资-材料设备
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(BusCailiaoshebeiEditReq bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除物资-材料设备信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 分页查询物资-材料设备列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 物资-材料设备分页列表
|
||||
*/
|
||||
TableDataInfo<BusCailiaoshebeiListPlanRes> queryPageListPlan(BusCailiaoshebeiBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 修改物资-材料设备(计划)
|
||||
*
|
||||
* @param bo 物资-材料设备
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByPlanBo(BusCailiaoshebeiEditPlanReq bo);
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package org.dromara.cailiaoshebei.service;
|
||||
|
||||
import org.dromara.cailiaoshebei.domain.vo.BusSuppliespriceVo;
|
||||
import org.dromara.cailiaoshebei.domain.bo.BusSuppliespriceBo;
|
||||
import org.dromara.cailiaoshebei.domain.BusSuppliesprice;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物资-物资清单Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
public interface IBusSuppliespriceService extends IService<BusSuppliesprice>{
|
||||
|
||||
/**
|
||||
* 查询物资-物资清单
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 物资-物资清单
|
||||
*/
|
||||
BusSuppliespriceVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询物资-物资清单列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 物资-物资清单分页列表
|
||||
*/
|
||||
TableDataInfo<BusSuppliespriceVo> queryPageList(BusSuppliespriceBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的物资-物资清单列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 物资-物资清单列表
|
||||
*/
|
||||
List<BusSuppliespriceVo> queryList(BusSuppliespriceBo bo);
|
||||
|
||||
/**
|
||||
* 新增物资-物资清单
|
||||
*
|
||||
* @param bo 物资-物资清单
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(BusSuppliespriceBo bo);
|
||||
|
||||
/**
|
||||
* 修改物资-物资清单
|
||||
*
|
||||
* @param bo 物资-物资清单
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(BusSuppliespriceBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除物资-物资清单信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
@ -0,0 +1,134 @@
|
||||
package org.dromara.cailiaoshebei.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.cailiaoshebei.domain.bo.BusCailiaoshebeiPiciBo;
|
||||
import org.dromara.cailiaoshebei.domain.vo.BusCailiaoshebeiPiciVo;
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebeiPici;
|
||||
import org.dromara.cailiaoshebei.mapper.BusCailiaoshebeiPiciMapper;
|
||||
import org.dromara.cailiaoshebei.service.IBusCailiaoshebeiPiciService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 物资-批次号Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class BusCailiaoshebeiPiciServiceImpl extends ServiceImpl<BusCailiaoshebeiPiciMapper, BusCailiaoshebeiPici> implements IBusCailiaoshebeiPiciService {
|
||||
|
||||
private final BusCailiaoshebeiPiciMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询物资-批次号
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 物资-批次号
|
||||
*/
|
||||
@Override
|
||||
public BusCailiaoshebeiPiciVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询物资-批次号列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 物资-批次号分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<BusCailiaoshebeiPiciVo> queryPageList(BusCailiaoshebeiPiciBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<BusCailiaoshebeiPici> lqw = buildQueryWrapper(bo);
|
||||
Page<BusCailiaoshebeiPiciVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的物资-批次号列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 物资-批次号列表
|
||||
*/
|
||||
@Override
|
||||
public List<BusCailiaoshebeiPiciVo> queryList(BusCailiaoshebeiPiciBo bo) {
|
||||
LambdaQueryWrapper<BusCailiaoshebeiPici> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<BusCailiaoshebeiPici> buildQueryWrapper(BusCailiaoshebeiPiciBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<BusCailiaoshebeiPici> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByAsc(BusCailiaoshebeiPici::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBatchNumber()), BusCailiaoshebeiPici::getBatchNumber, bo.getBatchNumber());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getApprovalDesign()), BusCailiaoshebeiPici::getApprovalDesign, bo.getApprovalDesign());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getApprovalPlan()), BusCailiaoshebeiPici::getApprovalPlan, bo.getApprovalPlan());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getApprovalProject()), BusCailiaoshebeiPici::getApprovalProject, bo.getApprovalProject());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物资-批次号
|
||||
*
|
||||
* @param bo 物资-批次号
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(BusCailiaoshebeiPiciBo bo) {
|
||||
BusCailiaoshebeiPici add = MapstructUtils.convert(bo, BusCailiaoshebeiPici.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物资-批次号
|
||||
*
|
||||
* @param bo 物资-批次号
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(BusCailiaoshebeiPiciBo bo) {
|
||||
BusCailiaoshebeiPici update = MapstructUtils.convert(bo, BusCailiaoshebeiPici.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(BusCailiaoshebeiPici 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,215 @@
|
||||
package org.dromara.cailiaoshebei.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebeiPici;
|
||||
import org.dromara.cailiaoshebei.domain.BusSuppliesprice;
|
||||
import org.dromara.cailiaoshebei.domain.bo.*;
|
||||
import org.dromara.cailiaoshebei.domain.dto.BusCailiaoshebeiEditPlanDto;
|
||||
import org.dromara.cailiaoshebei.domain.vo.BusCailiaoshebeiListPlanRes;
|
||||
import org.dromara.cailiaoshebei.service.IBusCailiaoshebeiPiciService;
|
||||
import org.dromara.cailiaoshebei.service.IBusSuppliespriceService;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.utils.BatchNumberGenerator;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.cailiaoshebei.domain.vo.BusCailiaoshebeiVo;
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebei;
|
||||
import org.dromara.cailiaoshebei.mapper.BusCailiaoshebeiMapper;
|
||||
import org.dromara.cailiaoshebei.service.IBusCailiaoshebeiService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
/**
|
||||
* 物资-材料设备Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class BusCailiaoshebeiServiceImpl extends ServiceImpl<BusCailiaoshebeiMapper, BusCailiaoshebei> implements IBusCailiaoshebeiService {
|
||||
|
||||
private final BusCailiaoshebeiMapper baseMapper;
|
||||
private final IBusCailiaoshebeiPiciService busCailiaoshebeiPiciService;
|
||||
private final IBusSuppliespriceService busSuppliespriceService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询物资-材料设备
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 物资-材料设备
|
||||
*/
|
||||
@Override
|
||||
public BusCailiaoshebeiVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询物资-材料设备列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 物资-材料设备分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<BusCailiaoshebeiVo> queryPageList(BusCailiaoshebeiBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<BusCailiaoshebei> lqw = buildQueryWrapper(bo);
|
||||
Page<BusCailiaoshebeiVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的物资-材料设备列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 物资-材料设备列表
|
||||
*/
|
||||
@Override
|
||||
public List<BusCailiaoshebeiVo> queryList(BusCailiaoshebeiBo bo) {
|
||||
LambdaQueryWrapper<BusCailiaoshebei> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<BusCailiaoshebei> buildQueryWrapper(BusCailiaoshebeiBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<BusCailiaoshebei> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByAsc(BusCailiaoshebei::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBatchId()), BusCailiaoshebei::getBatchId, bo.getBatchId());
|
||||
lqw.eq(bo.getSupplierId() != null, BusCailiaoshebei::getSupplierId, bo.getSupplierId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSupplier()), BusCailiaoshebei::getSupplier, bo.getSupplier());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getName()), BusCailiaoshebei::getName, bo.getName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSupply()), BusCailiaoshebei::getSupply, bo.getSupply());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSpecification()), BusCailiaoshebei::getSpecification, bo.getSpecification());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSignalment()), BusCailiaoshebei::getSignalment, bo.getSignalment());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getMaterialCode()), BusCailiaoshebei::getMaterialCode, bo.getMaterialCode());
|
||||
lqw.eq(bo.getArrivalTime() != null, BusCailiaoshebei::getArrivalTime, bo.getArrivalTime());
|
||||
lqw.eq(bo.getFinishTime() != null, BusCailiaoshebei::getFinishTime, bo.getFinishTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), BusCailiaoshebei::getUnit, bo.getUnit());
|
||||
lqw.eq(bo.getPlan() != null, BusCailiaoshebei::getPlan, bo.getPlan());
|
||||
lqw.eq(bo.getRealQuantity() != null, BusCailiaoshebei::getRealQuantity, bo.getRealQuantity());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物资-材料设备
|
||||
*
|
||||
* @param bo 物资-材料设备
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public Boolean insertByBo(BusCailiaoshebeiAddReq bo) {
|
||||
//1、创建批次号
|
||||
BusCailiaoshebeiPici busCailiaoshebeiPici = new BusCailiaoshebeiPici().
|
||||
setProjectId(bo.getProjectId()).
|
||||
setBatchNumber(BatchNumberGenerator.generateBatchNumber("PC-"));
|
||||
boolean save = busCailiaoshebeiPiciService.save(busCailiaoshebeiPici);
|
||||
if (!save) {
|
||||
return false;
|
||||
}
|
||||
//2、新增初始化数据信息
|
||||
BusCailiaoshebei add = MapstructUtils.convert(bo, BusCailiaoshebei.class);
|
||||
assert add != null;
|
||||
add.setBatchId(busCailiaoshebeiPici.getId()); //批次ID
|
||||
add.setMaterialCode(BatchNumberGenerator.generateBatchNumber("WL-")); //物料编码
|
||||
validEntityBeforeSave(add);
|
||||
Boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物资-材料设备
|
||||
*
|
||||
* @param bo 物资-材料设备
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(BusCailiaoshebeiEditReq bo) {
|
||||
BusCailiaoshebei update = MapstructUtils.convert(bo, BusCailiaoshebei.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Boolean updateByPlanBo(BusCailiaoshebeiEditPlanReq bo) {
|
||||
//1、计划部更新主体数据的计划时间和完成时间
|
||||
BusCailiaoshebei entity = MapstructUtils.convert(bo, BusCailiaoshebei.class);
|
||||
validEntityBeforeSave(entity);
|
||||
if (baseMapper.updateById(entity)==0){
|
||||
return false;
|
||||
}
|
||||
//2、为每个供应商确认单价等信息
|
||||
List<BusCailiaoshebeiEditPlanDto> listOfMaterialInventory = bo.getListOfMaterialInventory();
|
||||
List<BusSuppliesprice> busSuppliesprices = BeanUtil.copyToList(listOfMaterialInventory, BusSuppliesprice.class);
|
||||
busSuppliesprices.forEach(busSuppliesprice -> {
|
||||
assert entity != null;
|
||||
busSuppliesprice.setCailiaoshebeiId(entity.getId());
|
||||
});
|
||||
return busSuppliespriceService.saveBatch(busSuppliesprices);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(BusCailiaoshebei entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除物资-材料设备信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询物资-材料设备列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 物资-材料设备分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<BusCailiaoshebeiListPlanRes> queryPageListPlan(BusCailiaoshebeiBo bo, PageQuery pageQuery) {
|
||||
// 1、查询原始数据分页对象
|
||||
LambdaQueryWrapper<BusCailiaoshebei> lqw = buildQueryWrapper(bo);
|
||||
Page<BusCailiaoshebei> originalPage = this.page(pageQuery.build(), lqw);
|
||||
// 2、转换Page对象中的记录列表,同时保留分页信息
|
||||
Page<BusCailiaoshebeiListPlanRes> convertedPage = (Page<BusCailiaoshebeiListPlanRes>) originalPage.convert(busCailiaoshebei -> {
|
||||
BusCailiaoshebeiListPlanRes res = new BusCailiaoshebeiListPlanRes();// 将单个BusCailiaoshebei转换为BusCailiaoshebeiListPlanRes
|
||||
BeanUtil.copyProperties(busCailiaoshebei, res);// 可以使用BeanUtil.copyProperties进行属性复制
|
||||
return res;// 如果有需要手动处理的属性,可以在这里补充
|
||||
});
|
||||
// 3、用转换后的分页对象构建TableDataInfo
|
||||
return TableDataInfo.build(convertedPage);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,135 @@
|
||||
package org.dromara.cailiaoshebei.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.cailiaoshebei.domain.bo.BusSuppliespriceBo;
|
||||
import org.dromara.cailiaoshebei.domain.vo.BusSuppliespriceVo;
|
||||
import org.dromara.cailiaoshebei.domain.BusSuppliesprice;
|
||||
import org.dromara.cailiaoshebei.mapper.BusSuppliespriceMapper;
|
||||
import org.dromara.cailiaoshebei.service.IBusSuppliespriceService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 物资-物资清单Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-31
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class BusSuppliespriceServiceImpl extends ServiceImpl<BusSuppliespriceMapper, BusSuppliesprice> implements IBusSuppliespriceService {
|
||||
|
||||
private final BusSuppliespriceMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询物资-物资清单
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 物资-物资清单
|
||||
*/
|
||||
@Override
|
||||
public BusSuppliespriceVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询物资-物资清单列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 物资-物资清单分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<BusSuppliespriceVo> queryPageList(BusSuppliespriceBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<BusSuppliesprice> lqw = buildQueryWrapper(bo);
|
||||
Page<BusSuppliespriceVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的物资-物资清单列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 物资-物资清单列表
|
||||
*/
|
||||
@Override
|
||||
public List<BusSuppliespriceVo> queryList(BusSuppliespriceBo bo) {
|
||||
LambdaQueryWrapper<BusSuppliesprice> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<BusSuppliesprice> buildQueryWrapper(BusSuppliespriceBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<BusSuppliesprice> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByAsc(BusSuppliesprice::getId);
|
||||
lqw.eq(bo.getCailiaoshebeiId() != null, BusSuppliesprice::getCailiaoshebeiId, bo.getCailiaoshebeiId());
|
||||
lqw.eq(bo.getUnitPrice() != null, BusSuppliesprice::getUnitPrice, bo.getUnitPrice());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContractNum()), BusSuppliesprice::getContractNum, bo.getContractNum());
|
||||
lqw.eq(bo.getEstimatedCycle() != null, BusSuppliesprice::getEstimatedCycle, bo.getEstimatedCycle());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSupplierCompany()), BusSuppliesprice::getSupplierCompany, bo.getSupplierCompany());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物资-物资清单
|
||||
*
|
||||
* @param bo 物资-物资清单
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(BusSuppliespriceBo bo) {
|
||||
BusSuppliesprice add = MapstructUtils.convert(bo, BusSuppliesprice.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物资-物资清单
|
||||
*
|
||||
* @param bo 物资-物资清单
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(BusSuppliespriceBo bo) {
|
||||
BusSuppliesprice update = MapstructUtils.convert(bo, BusSuppliesprice.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(BusSuppliesprice 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,53 @@
|
||||
package org.dromara.common.utils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
/**
|
||||
* @Author 铁憨憨
|
||||
* @Date 2025/7/31 9:54
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class BatchNumberGenerator {
|
||||
private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||
private static final AtomicInteger COUNTER = new AtomicInteger(0);
|
||||
private static final int MAX_COUNTER = 9999;
|
||||
private static String lastTimestamp = "";
|
||||
|
||||
/**
|
||||
* 生成唯一批次号,格式为 yyyyMMddHHmmssXXXX,XXXX为四位递增数字
|
||||
* @param str 自定义字符串
|
||||
* @return 唯一批次号字符串
|
||||
* @throws RuntimeException 当同一毫秒内生成数量超过9999时抛出异常
|
||||
*/
|
||||
public static synchronized String generateBatchNumber(String str) {
|
||||
String currentTimestamp = LocalDateTime.now().format(FORMATTER);
|
||||
|
||||
if (!currentTimestamp.equals(lastTimestamp)) {
|
||||
lastTimestamp = currentTimestamp;
|
||||
COUNTER.set(0);
|
||||
}
|
||||
|
||||
int counterValue = COUNTER.getAndIncrement();
|
||||
if (counterValue >= MAX_COUNTER) {
|
||||
throw new RuntimeException("批次号生成器在同一毫秒内生成的数量已达到上限");
|
||||
}
|
||||
//判断str是否为空
|
||||
if (str == null || str.isEmpty()) {
|
||||
return currentTimestamp + String.format("%04d", counterValue);
|
||||
}
|
||||
return currentTimestamp + str + String.format("%04d", counterValue);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
System.out.println(generateBatchNumber(null));
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.cailiaoshebei.mapper.BusCailiaoshebeiMapper">
|
||||
|
||||
</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.cailiaoshebei.mapper.BusCailiaoshebeiPiciMapper">
|
||||
|
||||
</mapper>
|
Reference in New Issue
Block a user