fix:物料使用记录

This commit is contained in:
shusir
2026-02-25 18:11:37 +08:00
parent ffd4b2cac4
commit 4312630da6
25 changed files with 414 additions and 51 deletions

View File

@@ -3,6 +3,7 @@ package com.zt.plat.module.qms.resource.material.controller.admin;
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationPageReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationPageReqVO;
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationRespVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationRespVO;
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationSaveReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationSaveReqVO;
import com.zt.plat.module.qms.resource.material.controller.vo.query.MaterialInfomationQueryVO;
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInfomationDO; import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInfomationDO;
import com.zt.plat.module.qms.resource.material.service.MaterialInfomationService; import com.zt.plat.module.qms.resource.material.service.MaterialInfomationService;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -44,14 +45,14 @@ public class MaterialInfomationController implements BusinessControllerMarker {
@Resource @Resource
private MaterialInfomationService materialInfomationService; private MaterialInfomationService materialInfomationService;
@PostMapping("/create") // @PostMapping("/create")
@Operation(summary = "创建物料实例") @Operation(summary = "创建物料实例")
@PreAuthorize("@ss.hasPermission('qms:material-infomation:create')") @PreAuthorize("@ss.hasPermission('qms:material-infomation:create')")
public CommonResult<MaterialInfomationRespVO> createMaterialInfomation(@Valid @RequestBody MaterialInfomationSaveReqVO createReqVO) { public CommonResult<MaterialInfomationRespVO> createMaterialInfomation(@Valid @RequestBody MaterialInfomationSaveReqVO createReqVO) {
return success(materialInfomationService.createMaterialInfomation(createReqVO)); return success(materialInfomationService.createMaterialInfomation(createReqVO));
} }
@PutMapping("/update") // @PutMapping("/update")
@Operation(summary = "更新物料实例") @Operation(summary = "更新物料实例")
@PreAuthorize("@ss.hasPermission('qms:material-infomation:update')") @PreAuthorize("@ss.hasPermission('qms:material-infomation:update')")
public CommonResult<Boolean> updateMaterialInfomation(@Valid @RequestBody MaterialInfomationSaveReqVO updateReqVO) { public CommonResult<Boolean> updateMaterialInfomation(@Valid @RequestBody MaterialInfomationSaveReqVO updateReqVO) {
@@ -59,7 +60,7 @@ public class MaterialInfomationController implements BusinessControllerMarker {
return success(true); return success(true);
} }
@DeleteMapping("/delete") // @DeleteMapping("/delete")
@Operation(summary = "删除物料实例") @Operation(summary = "删除物料实例")
@Parameter(name = "id", description = "编号", required = true) @Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('qms:material-infomation:delete')") @PreAuthorize("@ss.hasPermission('qms:material-infomation:delete')")
@@ -68,7 +69,7 @@ public class MaterialInfomationController implements BusinessControllerMarker {
return success(true); return success(true);
} }
@DeleteMapping("/delete-list") // @DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true) @Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除物料实例") @Operation(summary = "批量删除物料实例")
@PreAuthorize("@ss.hasPermission('qms:material-infomation:delete')") @PreAuthorize("@ss.hasPermission('qms:material-infomation:delete')")
@@ -82,16 +83,15 @@ public class MaterialInfomationController implements BusinessControllerMarker {
@Parameter(name = "id", description = "编号", required = true, example = "1024") @Parameter(name = "id", description = "编号", required = true, example = "1024")
// @PreAuthorize("@ss.hasPermission('qms:material-infomation:query')") // @PreAuthorize("@ss.hasPermission('qms:material-infomation:query')")
public CommonResult<MaterialInfomationRespVO> getMaterialInfomation(@RequestParam("id") Long id) { public CommonResult<MaterialInfomationRespVO> getMaterialInfomation(@RequestParam("id") Long id) {
MaterialInfomationDO materialInfomation = materialInfomationService.getMaterialInfomation(id); MaterialInfomationRespVO infomationRespVO = materialInfomationService.getMaterialInfomationWithPdtInfoByInfId(id);
return success(BeanUtils.toBean(materialInfomation, MaterialInfomationRespVO.class)); return success(infomationRespVO);
} }
@GetMapping("/get-by-code") @GetMapping("/get-by-code")
@Operation(summary = "根据物料编码获取物料") @Operation(summary = "根据物料编码获取物料")
@Parameter(name = "code", description = "编码", required = true, example = "SN001")
// @PreAuthorize("@ss.hasPermission('qms:material-infomation:query')") // @PreAuthorize("@ss.hasPermission('qms:material-infomation:query')")
public CommonResult<MaterialInfomationRespVO> getMaterialInfomationWithPdtInfoByInfCode(@RequestParam("code") String code) { public CommonResult<MaterialInfomationRespVO> getMaterialInfomationWithPdtInfoByInfCode(@Valid MaterialInfomationQueryVO queryVO) {
MaterialInfomationRespVO materialInfomation = materialInfomationService.getMaterialInfomationWithPdtInfoByInfCode(code); MaterialInfomationRespVO materialInfomation = materialInfomationService.getMaterialInfomationWithPdtInfoByInfCode(queryVO);
return success(materialInfomation); return success(materialInfomation);
} }

View File

@@ -90,8 +90,8 @@ public class MaterialUseRecordController implements BusinessControllerMarker {
@Operation(summary = "获得使用记录分页") @Operation(summary = "获得使用记录分页")
// @PreAuthorize("@ss.hasPermission('qms:material-use-record:query')") // @PreAuthorize("@ss.hasPermission('qms:material-use-record:query')")
public CommonResult<PageResult<MaterialUseRecordRespVO>> getMaterialUseRecordPage(@Valid MaterialUseRecordPageReqVO pageReqVO) { public CommonResult<PageResult<MaterialUseRecordRespVO>> getMaterialUseRecordPage(@Valid MaterialUseRecordPageReqVO pageReqVO) {
PageResult<MaterialUseRecordDO> pageResult = materialUseRecordService.getMaterialUseRecordPage(pageReqVO); PageResult<MaterialUseRecordRespVO> pageResult = materialUseRecordService.getMaterialUseRecordPageWithInf(pageReqVO);
return success(BeanUtils.toBean(pageResult, MaterialUseRecordRespVO.class)); return success(pageResult);
} }
@GetMapping("/export-excel") @GetMapping("/export-excel")

View File

@@ -11,6 +11,8 @@ import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialUseRecordDetailPageReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialUseRecordDetailPageReqVO;
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialUseRecordDetailRespVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialUseRecordDetailRespVO;
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialUseRecordDetailSaveReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialUseRecordDetailSaveReqVO;
import com.zt.plat.module.qms.resource.material.controller.vo.query.MaterialUseRecordWithMakeInfoQueryVO;
import com.zt.plat.module.qms.resource.material.controller.vo.resp.MaterialUseRecordWithMakeInfoRespVO;
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialUseRecordDetailDO; import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialUseRecordDetailDO;
import com.zt.plat.module.qms.resource.material.service.MaterialUseRecordDetailService; import com.zt.plat.module.qms.resource.material.service.MaterialUseRecordDetailService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@@ -29,9 +31,9 @@ import java.util.List;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static com.zt.plat.framework.common.pojo.CommonResult.success; import static com.zt.plat.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 使用记录配置关系,用于处理危险品溶液配置关系") @Tag(name = "管理后台 - 物料使用记录配置关系,用于处理危险品溶液配置关系")
@RestController @RestController
@RequestMapping("/qms/material-use-record-detail") @RequestMapping("/qms/resource/material-use-record-detail")
@Validated @Validated
public class MaterialUseRecordDetailController implements BusinessControllerMarker { public class MaterialUseRecordDetailController implements BusinessControllerMarker {
@@ -39,14 +41,14 @@ public class MaterialUseRecordDetailController implements BusinessControllerMark
@Resource @Resource
private MaterialUseRecordDetailService materialUseRecordDetailService; private MaterialUseRecordDetailService materialUseRecordDetailService;
@PostMapping("/create") // @PostMapping("/create")
@Operation(summary = "创建使用记录配置关系,用于处理危险品溶液配置关系") @Operation(summary = "创建使用记录配置关系,用于处理危险品溶液配置关系")
@PreAuthorize("@ss.hasPermission('qms:material-use-record-detail:create')") @PreAuthorize("@ss.hasPermission('qms:material-use-record-detail:create')")
public CommonResult<MaterialUseRecordDetailRespVO> createMaterialUseRecordDetail(@Valid @RequestBody MaterialUseRecordDetailSaveReqVO createReqVO) { public CommonResult<MaterialUseRecordDetailRespVO> createMaterialUseRecordDetail(@Valid @RequestBody MaterialUseRecordDetailSaveReqVO createReqVO) {
return success(materialUseRecordDetailService.createMaterialUseRecordDetail(createReqVO)); return success(materialUseRecordDetailService.createMaterialUseRecordDetail(createReqVO));
} }
@PutMapping("/update") // @PutMapping("/update")
@Operation(summary = "更新使用记录配置关系,用于处理危险品溶液配置关系") @Operation(summary = "更新使用记录配置关系,用于处理危险品溶液配置关系")
@PreAuthorize("@ss.hasPermission('qms:material-use-record-detail:update')") @PreAuthorize("@ss.hasPermission('qms:material-use-record-detail:update')")
public CommonResult<Boolean> updateMaterialUseRecordDetail(@Valid @RequestBody MaterialUseRecordDetailSaveReqVO updateReqVO) { public CommonResult<Boolean> updateMaterialUseRecordDetail(@Valid @RequestBody MaterialUseRecordDetailSaveReqVO updateReqVO) {
@@ -54,7 +56,7 @@ public class MaterialUseRecordDetailController implements BusinessControllerMark
return success(true); return success(true);
} }
@DeleteMapping("/delete") // @DeleteMapping("/delete")
@Operation(summary = "删除使用记录配置关系,用于处理危险品溶液配置关系") @Operation(summary = "删除使用记录配置关系,用于处理危险品溶液配置关系")
@Parameter(name = "id", description = "编号", required = true) @Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('qms:material-use-record-detail:delete')") @PreAuthorize("@ss.hasPermission('qms:material-use-record-detail:delete')")
@@ -63,7 +65,7 @@ public class MaterialUseRecordDetailController implements BusinessControllerMark
return success(true); return success(true);
} }
@DeleteMapping("/delete-list") // @DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true) @Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除使用记录配置关系,用于处理危险品溶液配置关系") @Operation(summary = "批量删除使用记录配置关系,用于处理危险品溶液配置关系")
@PreAuthorize("@ss.hasPermission('qms:material-use-record-detail:delete')") @PreAuthorize("@ss.hasPermission('qms:material-use-record-detail:delete')")
@@ -81,6 +83,13 @@ public class MaterialUseRecordDetailController implements BusinessControllerMark
return success(BeanUtils.toBean(materialUseRecordDetail, MaterialUseRecordDetailRespVO.class)); return success(BeanUtils.toBean(materialUseRecordDetail, MaterialUseRecordDetailRespVO.class));
} }
@GetMapping("/get-makeinfo")
@Operation(summary = "获取危化品配置信息")
public CommonResult<List<MaterialUseRecordWithMakeInfoRespVO>> getMaterialMakeInfoUseRecordDetail(@Valid MaterialUseRecordWithMakeInfoQueryVO queryVO) {
List<MaterialUseRecordWithMakeInfoRespVO> makeInfoRespVOList = materialUseRecordDetailService.getMaterialMakeInfoUseRecordDetail(queryVO);
return success(makeInfoRespVOList);
}
@GetMapping("/page") @GetMapping("/page")
@Operation(summary = "获得使用记录配置关系,用于处理危险品溶液配置关系分页") @Operation(summary = "获得使用记录配置关系,用于处理危险品溶液配置关系分页")
@PreAuthorize("@ss.hasPermission('qms:material-use-record-detail:query')") @PreAuthorize("@ss.hasPermission('qms:material-use-record-detail:query')")

View File

@@ -5,7 +5,6 @@ import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Schema(description = "管理后台 - 使用记录新增/修改 Request VO") @Schema(description = "管理后台 - 使用记录新增/修改 Request VO")
@@ -13,8 +12,8 @@ import java.util.List;
public class MaterialHazardousMakeSaveReqVO { public class MaterialHazardousMakeSaveReqVO {
@Schema(description = "使用记录ids") @Schema(description = "使用记录ids")
@NotNull @NotEmpty
private List<Long> recordIds; private List<MaterialUseRecordSaveReqVO> records;
@Schema(description = "配置的大类") @Schema(description = "配置的大类")
@NotNull @NotNull

View File

@@ -27,6 +27,9 @@ public class MaterialInfomationPageReqVO extends PageParam {
@Schema(description = "编码") @Schema(description = "编码")
private String code; private String code;
@Schema(description = "来源,批次入库,标液配置、危化品配置等")
private String origin;
@Schema(description = "名称") @Schema(description = "名称")
private String name; private String name;

View File

@@ -1,10 +1,12 @@
package com.zt.plat.module.qms.resource.material.controller.vo; package com.zt.plat.module.qms.resource.material.controller.vo;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.zt.plat.module.qms.core.aspect.annotation.Dict;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*; import com.alibaba.excel.annotation.*;
@@ -56,10 +58,19 @@ public class MaterialInfomationRespVO {
@ExcelProperty("编码") @ExcelProperty("编码")
private String code; private String code;
@Schema(description = "来源,批次入库,标液配置、危化品配置等")
@ExcelProperty("来源,批次入库,标液配置、危化品配置等")
@Dict(dicCode = "material_infomation_origin")
private String origin;
@Schema(description = "名称") @Schema(description = "名称")
@ExcelProperty("名称") @ExcelProperty("名称")
private String name; private String name;
@Schema(description = "额定容量")
@ExcelProperty("额定容量")
private BigDecimal standardCapacity;
@Schema(description = "型号") @Schema(description = "型号")
@ExcelProperty("型号") @ExcelProperty("型号")
private String modelNo; private String modelNo;

View File

@@ -77,7 +77,7 @@ public class MaterialProductRespVO {
private String parameter; private String parameter;
@Schema(description = "额定容量") @Schema(description = "额定容量")
@ExcelProperty("技术参数") @ExcelProperty("额定容量")
private BigDecimal standardCapacity; private BigDecimal standardCapacity;
@Schema(description = "制造商") @Schema(description = "制造商")

View File

@@ -2,6 +2,7 @@ package com.zt.plat.module.qms.resource.material.controller.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.zt.plat.module.qms.core.aspect.annotation.Dict;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@@ -20,9 +21,14 @@ public class MaterialUseRecordRespVO {
@ExcelProperty("物料实例id,1-是0-否") @ExcelProperty("物料实例id,1-是0-否")
private Long infomationId; private Long infomationId;
@Schema(description = "物料实例编号")
@ExcelProperty("物料实例编号")
private String infomationCode;
@Schema(description = "是否配置危险品", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "是否配置危险品", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("是否配置危险品") @ExcelProperty("是否配置危险品")
private String hazardousMakeFlag; @Dict(dicCode = "yes_or_no")
private Integer hazardousMakeFlag;
@Schema(description = "本次数量", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "本次数量", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("本次数量") @ExcelProperty("本次数量")

View File

@@ -16,13 +16,12 @@ public class MaterialUseRecordSaveReqVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15790") @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15790")
private Long id; private Long id;
@Schema(description = "物料实例id,1-是0-否", requiredMode = Schema.RequiredMode.REQUIRED, example = "16550") @Schema(description = "物料实例id,", requiredMode = Schema.RequiredMode.REQUIRED, example = "16550")
@NotNull(message = "物料实例id,1-是0-否不能为空") @NotNull(message = "物料实例id不能为空")
private Long infomationId; private Long infomationId;
@Schema(description = "是否配置危险品", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "是否配置危险品", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "是否配置危险品不能为空") private Integer hazardousMakeFlag;
private String hazardousMakeFlag;
@Schema(description = "本次数量", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "本次数量", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "本次数量不能为空") @NotNull(message = "本次数量不能为空")

View File

@@ -0,0 +1,83 @@
package com.zt.plat.module.qms.resource.material.controller.vo.query;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 物料实例 Request VO")
@Data
public class MaterialInfomationQueryVO {
@Schema(description = "物料大类id", example = "2691")
private Long productId;
@Schema(description = "批次id", example = "2703")
private Long batchId;
@Schema(description = "存放位置", example = "13603")
private String locationId;
@Schema(description = "编码")
private String code;
@Schema(description = "名称")
private String name;
@Schema(description = "是否危险品,1-是0-否")
private Integer hazardous;
@Schema(description = "是否标准溶液,1-是0-否")
private Integer standardSolutionFlag;
@Schema(description = "是否标准物质,1-是0-否")
private Integer standardMaterialFlag;
@Schema(description = "上架状态,0-未上架1-已上架", example = "2")
private Integer publishStatus;
@Schema(description = "领用状态,0-未领用1-已领用", example = "1")
private Integer usageStatus;
@Schema(description = "所属部门ID", example = "16158")
private Integer managerDepartmentId;
@Schema(description = "领用人部门", example = "王五")
private String managerDepartmentName;
@Schema(description = "负责人id", example = "7209")
private Long managerUserId;
@Schema(description = "负责人", example = "张三")
private String managerUserName;
@Schema(description = "开封状态,0-未开封1-已开封", example = "2")
private Integer openStatus;
@Schema(description = "开封人id", example = "8280")
private Long openUserId;
@Schema(description = "开封人", example = "王五")
private String openUserName;
@Schema(description = "过期状态")
private String expirationFlag;
@Schema(description = "剩余量")
private BigDecimal remainingVolume;
@Schema(description = "用完标记,0-未标记1-已用完标记")
private Integer useEndFlag;
@Schema(description = "备注")
private String remark;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

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