fix:申请过和非申请的溶液配置

This commit is contained in:
shusir
2026-02-11 16:47:31 +08:00
parent 112a9f935d
commit 4a94b0c841
26 changed files with 533 additions and 119 deletions

View File

@@ -77,4 +77,11 @@ public interface DeviceProductService {
*/
PageResult<DeviceProductDO> getDeviceProductPage(DeviceProductPageReqVO pageReqVO);
/**
* 根据分类名获取设备大类
*
* @param deviceCategoryName 分类名称
* @return 设备大类列表
*/
List<DeviceProductDO> getDeviceProductByCategoryName(String deviceCategoryName);
}

View File

@@ -1,6 +1,7 @@
package com.zt.plat.module.qms.resource.device.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.zt.plat.framework.common.exception.ServiceException;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.pojo.PageResult;
@@ -210,6 +211,19 @@ public class DeviceProductServiceImpl implements DeviceProductService {
return deviceProductMapper.selectPage(pageReqVO);
}
@Override
public List<DeviceProductDO> getDeviceProductByCategoryName(String deviceCategoryName) {
List<DeviceProductDO> category = deviceProductMapper.selectList(Wrappers.lambdaQuery(DeviceProductDO.class)
.eq(DeviceProductDO::getNodeType, DataTypeConstant.DATA_TYPE_CATEGORY)
.eq(DeviceProductDO::getName, deviceCategoryName)
.last("limit 1"));
if (CollUtil.isEmpty(category)) return List.of();
return deviceProductMapper.selectList(Wrappers.lambdaQuery(DeviceProductDO.class)
.like(DeviceProductDO::getIdPath, "/" + category.get(0).getId() + "/")
.eq(DeviceProductDO::getNodeType, DataTypeConstant.DATA_TYPE_DATA));
}
private String getIdPath(DeviceProductDO entity){
String parIdPath = "";
if(ObjectUtils.isEmpty(entity.getParentId()) || 0L == entity.getParentId())

View File

@@ -6,4 +6,10 @@ package com.zt.plat.module.qms.resource.material.constant;
public class MaterialConstants {
// 字典 类型
public static final String DICT_MATERIAL_FLOW_TYPE = "jy_material_lifecycle_bsn_type";
// 序列号
public static final String SEQUENCE_INF_KEY = "QMS_MATERIAL_INF_NO";
// 外部模块
public static final String DEVICE_BURETTE_CATEGORY_NAME = "滴定管";
}

View File

@@ -1,38 +0,0 @@
package com.zt.plat.module.qms.resource.material.controller.admin;
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialProductPageReqVO;
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialProductRespVO;
import com.zt.plat.module.qms.resource.material.service.MaterialProductService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 物料库存")
@RestController
@RequestMapping("/qms/resource/material-inventory")
@Validated
@DeptDataPermissionIgnore(enable = "true")
public class MaterialInventoryController implements BusinessControllerMarker {
@Autowired
private MaterialProductService materialProductService;
@GetMapping("/page")
@Operation(summary = "获得物料大类分页")
public CommonResult<PageResult<MaterialProductRespVO>> getMaterialInventoryPage(@Valid MaterialProductPageReqVO pageReqVO) {
// 需要库存数量和预警信息
PageResult<MaterialProductRespVO> pageResult = materialProductService.getMaterialInventoryPage(pageReqVO);
return success(pageResult);
}
}

View File

@@ -97,9 +97,9 @@ public class MaterialLifecycleController extends AbstractFileUploadController im
@GetMapping("/page")
@Operation(summary = "获得物料流程分页")
// @PreAuthorize("@ss.hasPermission('qms:material-lifecycle:query')")
public CommonResult<PageResult<MaterialLifecycleRespVO>> getMaterialLifecyclePage(@Valid MaterialLifecyclePageReqVO pageReqVO) {
PageResult<MaterialLifecycleDO> pageResult = materialLifecycleService.getMaterialLifecyclePage(pageReqVO);
return success(BeanUtils.toBean(pageResult, MaterialLifecycleRespVO.class));
public CommonResult<PageResult<MaterialLifecycleRespVO>> getMaterialLifecycleRespVOPage(@Valid MaterialLifecyclePageReqVO pageReqVO) {
PageResult<MaterialLifecycleRespVO> pageResult = materialLifecycleService.getMaterialLifecycleRespVOPage(pageReqVO);
return success(pageResult);
}
@PutMapping("/submit")

View File

@@ -88,6 +88,14 @@ public class MaterialProductController extends AbstractFileUploadController impl
return success(BeanUtils.toBean(pageResult, MaterialProductRespVO.class));
}
@GetMapping("/inventory-page")
@Operation(summary = "库存管理页面物料大类分页")
public CommonResult<PageResult<MaterialProductRespVO>> getMaterialInventoryPage(@Valid MaterialProductPageReqVO pageReqVO) {
// 需要库存数量和预警信息
PageResult<MaterialProductRespVO> pageResult = materialProductService.getMaterialInventoryPage(pageReqVO);
return success(pageResult);
}
@GetMapping("category-data")
@Operation(summary = "获得物料分类和大类")
public CommonResult<List<MaterialProductRespVO>> getCategoryAndData(@Valid MaterialProductQueryVO queryVO) {

View File

@@ -10,11 +10,17 @@ import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.module.qms.resource.device.controller.vo.DeviceProductPageReqVO;
import com.zt.plat.module.qms.resource.device.controller.vo.DeviceProductRespVO;
import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceProductDO;
import com.zt.plat.module.qms.resource.material.controller.vo.DeviceProductWithInfomationsRespVO;
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialStandardSolutionPageReqVO;
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialStandardSolutionRespVO;
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialStandardSolutionSaveReqVO;
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialStandardSolutionDO;
import com.zt.plat.module.qms.resource.material.service.MaterialStandardSolutionService;
import com.zt.plat.module.qms.resource.material.valid.AddGroup;
import com.zt.plat.module.qms.resource.material.valid.UpdateGroup;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -51,14 +57,14 @@ public class MaterialStandardSolutionController extends AbstractFileUploadContro
@PostMapping("/create")
@Operation(summary = "新建配置")
// @PreAuthorize("@ss.hasPermission('qms:material-standard-solution:create')")
public CommonResult<MaterialStandardSolutionRespVO> createMaterialStandardSolution(@Valid @RequestBody MaterialStandardSolutionSaveReqVO createReqVO) {
public CommonResult<MaterialStandardSolutionRespVO> createMaterialStandardSolution(@Validated(AddGroup.class) @RequestBody MaterialStandardSolutionSaveReqVO createReqVO) {
return success(materialStandardSolutionService.createMaterialStandardSolution(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新标液,标准溶液,包含配置信息")
@Operation(summary = "更新标液,包含配置信息")
// @PreAuthorize("@ss.hasPermission('qms:material-standard-solution:update')")
public CommonResult<Boolean> updateMaterialStandardSolution(@Valid @RequestBody MaterialStandardSolutionSaveReqVO updateReqVO) {
public CommonResult<Boolean> updateMaterialStandardSolution(@Validated(UpdateGroup.class) @RequestBody MaterialStandardSolutionSaveReqVO updateReqVO) {
materialStandardSolutionService.updateMaterialStandardSolution(updateReqVO);
return success(true);
}
@@ -75,7 +81,7 @@ public class MaterialStandardSolutionController extends AbstractFileUploadContro
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除标液,标准溶液,包含配置信息")
// @PreAuthorize("@ss.hasPermission('qms:material-standard-solution:delete')")
@PreAuthorize("@ss.hasPermission('qms:material-standard-solution:delete')")
public CommonResult<Boolean> deleteMaterialStandardSolutionList(@RequestBody BatchDeleteReqVO req) {
materialStandardSolutionService.deleteMaterialStandardSolutionListByIds(req.getIds());
return success(true);
@@ -85,9 +91,9 @@ public class MaterialStandardSolutionController extends AbstractFileUploadContro
@Operation(summary = "获得标液,标准溶液,包含配置信息")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
// @PreAuthorize("@ss.hasPermission('qms:material-standard-solution:query')")
public CommonResult<MaterialStandardSolutionRespVO> getMaterialStandardSolution(@RequestParam("id") Long id) {
MaterialStandardSolutionDO materialStandardSolution = materialStandardSolutionService.getMaterialStandardSolution(id);
return success(BeanUtils.toBean(materialStandardSolution, MaterialStandardSolutionRespVO.class));
public CommonResult<MaterialStandardSolutionRespVO> getStandardSolutionWithMaterialInfo(@RequestParam("id") Long id) {
MaterialStandardSolutionRespVO solutionRespVO = materialStandardSolutionService.getStandardSolutionWithMaterialInfo(id);
return success(solutionRespVO);
}
@GetMapping("/page")
@@ -98,6 +104,14 @@ public class MaterialStandardSolutionController extends AbstractFileUploadContro
return success(pageResult);
}
@GetMapping("/device-burette-list")
@Operation(summary = "获取设备滴定管")
public CommonResult<List<DeviceProductWithInfomationsRespVO>> getDeviceBuretteProductWithInfomationList() {
List<DeviceProductWithInfomationsRespVO> deviceProductRespVOS = materialStandardSolutionService.getDeviceBuretteProductWithInfomationList();
return success(deviceProductRespVOS);
}
@GetMapping("/export-excel")
@Operation(summary = "导出标液,标准溶液,包含配置信息 Excel")
@PreAuthorize("@ss.hasPermission('qms:material-standard-solution:export')")

View File

@@ -0,0 +1,60 @@
package com.zt.plat.module.qms.resource.material.controller.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 设备-设备信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DeviceInfomationRespVOBySol {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "32125")
@ExcelProperty("主键")
private Long id;
@Schema(description = "设备大类id", example = "32101")
@ExcelProperty("设备大类id")
private Long productId;
@Schema(description = "设备名称", example = "张三")
@ExcelProperty("设备名称")
private String name;
@Schema(description = "设备状态", example = "2")
@ExcelProperty("设备状态")
private String deviceStatus;
@Schema(description = "数量")
@ExcelProperty("数量")
private String deviceNumber;
@Schema(description = "管理编号")
@ExcelProperty("管理编号")
private String deviceCode;
@Schema(description = "资产编号")
@ExcelProperty("资产编号")
private String assetCode;
@Schema(description = "出厂编号")
@ExcelProperty("出厂编号")
private String factoryCode;
@Schema(description = "存放位置")
@ExcelProperty("存放位置")
private String position;
@Schema(description = "备注")
@ExcelProperty("备注")
private String remark;
@Schema(description = "创建时间")
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,52 @@
package com.zt.plat.module.qms.resource.material.controller.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.zt.plat.module.qms.resource.device.controller.vo.DeviceInfomationRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Schema(description = "管理后台 - 设备-设备大类 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DeviceProductWithInfomationsRespVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "2648")
@ExcelProperty("主键")
private Long id;
@Schema(description = "父ID", example = "5458")
@ExcelProperty("父ID")
private Long parentId;
@Schema(description = "id路径")
@ExcelProperty("id路径")
private String idPath;
@Schema(description = "节点类型,分类|大类", example = "1")
@ExcelProperty("节点类型,分类|大类")
private String nodeType;
@Schema(description = "名称", example = "王五")
@ExcelProperty("名称")
private String name;
@Schema(description = "型号")
@ExcelProperty("型号")
private String modelNo;
@Schema(description = "规格")
@ExcelProperty("规格")
private String specification;
@Schema(description = "技术指标")
@ExcelProperty("技术指标")
private String parameter;
@Schema(description = "设备实例列表")
private List<DeviceInfomationRespVOBySol> children;
}

View File

@@ -132,10 +132,6 @@ public class MaterialInfomationRespVO {
@ExcelProperty("配置日期")
private LocalDateTime makeDate;
@Schema(description = "到期日期")
@ExcelProperty("到期日期")
private LocalDateTime dueDate;
@Schema(description = "浓度")
@ExcelProperty("浓度")
private String concentration;
@@ -160,6 +156,10 @@ public class MaterialInfomationRespVO {
@ExcelProperty("开封日期")
private LocalDateTime openDate;
@Schema(description = "生产日期")
@ExcelProperty("生产日期")
private LocalDate manufacturerDate;
@Schema(description = "到期日期")
@ExcelProperty("到期日期")
private LocalDate expirationDate;

Some files were not shown because too many files have changed in this diff Show More