feat:样品库功能,开发基本完成,需进一步调细节。 报告数据微调

This commit is contained in:
FCL
2025-11-13 17:48:34 +08:00
parent c79590d36e
commit e0f6d288b1
39 changed files with 894 additions and 261 deletions

View File

@@ -83,6 +83,9 @@ public interface QmsCommonConstant {
/** 已完成 **/ /** 已完成 **/
String COMPLETED = "completed"; String COMPLETED = "completed";
/** 已下架 **/
String TAKEN_OFF = "taken_off";
/** 分配任务 **/ /** 分配任务 **/
String TASK_ASSIGN = "task_assign"; String TASK_ASSIGN = "task_assign";
@@ -125,6 +128,9 @@ public interface QmsCommonConstant {
/** 班组送样 **/ /** 班组送样 **/
String FLOW_NODE_TEAM_SEND = "flw_team_send"; String FLOW_NODE_TEAM_SEND = "flw_team_send";
/** 样品归库 **/
String FLOW_SAMPLE_STORAGE = "flw_sample_storage";
/** 结束 **/ /** 结束 **/
String FLOW_NODE_END = "flw_end"; String FLOW_NODE_END = "flw_end";

View File

@@ -0,0 +1,21 @@
package com.zt.plat.module.qms.enums;
/**
* 权限模块常量
*/
public interface QmsWarehouseLocationConstant {
//数据类型
String DATA_TYPE_LOCATION = "库位";
String DATA_TYPE_WAREHOUSE = "仓库";
//仓库分类
String WAREHOUSE_TYPE_SAMPLE = "样品库";
String WAREHOUSE_TYPE_MATERIAL = "物料试剂";
//样品下架操作方式
String SAMPLE_TAKE_OFF_ACTION_WAY_SAMPLE = "sample";
String SAMPLE_TAKE_OFF_ACTION_WAY_LOCATION = "warehouseLocation";
}

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.qms.business.bus.controller.admin; package com.zt.plat.module.qms.business.bus.controller.admin;
import com.alibaba.fastjson.JSONObject;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchPageReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchPageReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchRespVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchSaveReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchSaveReqVO;
@@ -43,21 +44,47 @@ public class BusinessSampleDispatchController implements BusinessControllerMarke
@Resource @Resource
private BusinessSampleDispatchService businessSampleDispatchService; private BusinessSampleDispatchService businessSampleDispatchService;
@PostMapping("/create") @PostMapping("/createTempData")
@Operation(summary = "创建样品调拨") @Operation(summary = "创建临时数据")
// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:create')") public CommonResult<BusinessSampleDispatchRespVO> createTempData() {
public CommonResult<BusinessSampleDispatchRespVO> createBusinessSampleDispatch(@Valid @RequestBody BusinessSampleDispatchSaveReqVO createReqVO) { BusinessSampleDispatchSaveReqVO vo = new BusinessSampleDispatchSaveReqVO();
return success(businessSampleDispatchService.createBusinessSampleDispatch(createReqVO)); vo.setCancelStatus("-1");
return success(businessSampleDispatchService.createBusinessSampleDispatch(vo));
} }
@PutMapping("/update") @PutMapping("/update")
@Operation(summary = "更新样品调拨") @Operation(summary = "更新样品调拨")
// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:update')")
public CommonResult<Boolean> updateBusinessSampleDispatch(@Valid @RequestBody BusinessSampleDispatchSaveReqVO updateReqVO) { public CommonResult<Boolean> updateBusinessSampleDispatch(@Valid @RequestBody BusinessSampleDispatchSaveReqVO updateReqVO) {
updateReqVO.setCancelStatus("0");
businessSampleDispatchService.updateBusinessSampleDispatch(updateReqVO); businessSampleDispatchService.updateBusinessSampleDispatch(updateReqVO);
return success(true); return success(true);
} }
@PutMapping("/addOrRemoveSample")
@Operation(summary = "增加或移除样品")
public CommonResult<Boolean> addOrRemoveSample(@Valid @RequestBody BusinessSampleDispatchSaveReqVO updateReqVO) {
businessSampleDispatchService.addOrRemoveSample(updateReqVO);
return success(true);
}
@PostMapping("/createProcessInstance")
@Operation(summary = "发起流程")
public CommonResult<BusinessSampleDispatchRespVO> createProcessInstance(@Valid @RequestBody BusinessSampleDispatchSaveReqVO vo) {
return businessSampleDispatchService.createProcessInstance(vo);
}
@PostMapping("/execDispatch")
@Operation(summary = "执行调拨")
public CommonResult<String> execDispatch(@Valid @RequestBody BusinessSampleDispatchSaveReqVO vo) {
return businessSampleDispatchService.execDispatch(vo);
}
@PostMapping("/execGiveback")
@Operation(summary = "调拨归还")
public CommonResult<String> execGiveback(@RequestBody JSONObject vo) {
return businessSampleDispatchService.execGiveback(vo);
}
@DeleteMapping("/delete") @DeleteMapping("/delete")
@Operation(summary = "删除样品调拨") @Operation(summary = "删除样品调拨")
@Parameter(name = "id", description = "编号", required = true) @Parameter(name = "id", description = "编号", required = true)

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.qms.business.bus.controller.admin; package com.zt.plat.module.qms.business.bus.controller.admin;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailExtendRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailPageReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailPageReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailRespVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailSaveReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailSaveReqVO;
@@ -88,9 +89,9 @@ public class BusinessSampleDispatchDetailController implements BusinessControlle
@GetMapping("/page") @GetMapping("/page")
@Operation(summary = "获得样品调拨明细分页") @Operation(summary = "获得样品调拨明细分页")
// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:query')") // @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:query')")
public CommonResult<PageResult<BusinessSampleDispatchDetailRespVO>> getBusinessSampleDispatchDetailPage(@Valid BusinessSampleDispatchDetailPageReqVO pageReqVO) { public CommonResult<PageResult<BusinessSampleDispatchDetailExtendRespVO>> getBusinessSampleDispatchDetailPage(@Valid BusinessSampleDispatchDetailPageReqVO pageReqVO) {
PageResult<BusinessSampleDispatchDetailDO> pageResult = businessSampleDispatchDetailService.getBusinessSampleDispatchDetailPage(pageReqVO); PageResult<BusinessSampleDispatchDetailExtendRespVO> pageResult = businessSampleDispatchDetailService.getBusinessSampleDispatchDetailPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessSampleDispatchDetailRespVO.class)); return success(pageResult);
} }
@GetMapping("/export-excel") @GetMapping("/export-excel")
@@ -100,7 +101,7 @@ public class BusinessSampleDispatchDetailController implements BusinessControlle
public void exportBusinessSampleDispatchDetailExcel(@Valid BusinessSampleDispatchDetailPageReqVO pageReqVO, public void exportBusinessSampleDispatchDetailExcel(@Valid BusinessSampleDispatchDetailPageReqVO pageReqVO,
HttpServletResponse response) throws IOException { HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessSampleDispatchDetailDO> list = businessSampleDispatchDetailService.getBusinessSampleDispatchDetailPage(pageReqVO).getList(); List<BusinessSampleDispatchDetailExtendRespVO> list = businessSampleDispatchDetailService.getBusinessSampleDispatchDetailPage(pageReqVO).getList();
// 导出 Excel // 导出 Excel
ExcelUtils.write(response, "样品调拨明细.xls", "数据", BusinessSampleDispatchDetailRespVO.class, ExcelUtils.write(response, "样品调拨明细.xls", "数据", BusinessSampleDispatchDetailRespVO.class,
BeanUtils.toBean(list, BusinessSampleDispatchDetailRespVO.class)); BeanUtils.toBean(list, BusinessSampleDispatchDetailRespVO.class));

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.qms.business.bus.controller.admin; package com.zt.plat.module.qms.business.bus.controller.admin;
import com.alibaba.fastjson.JSONObject;
import com.zt.plat.module.qms.business.bus.controller.vo.*; import com.zt.plat.module.qms.business.bus.controller.vo.*;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@@ -105,6 +106,13 @@ public class BusinessSubSampleController implements BusinessControllerMarker {
return success(pageResult); return success(pageResult);
} }
@GetMapping("/page-stock")
@Operation(summary = "查询样品库分页数据")
public CommonResult<PageResult<BusinessSubSampleExtendRespVO>> pageStock(@Valid BusinessSubSamplePageReqVO pageReqVO) {
PageResult<BusinessSubSampleExtendRespVO> pageResult = businessSubSampleService.getBusinessSubSamplePage(pageReqVO);
return success(pageResult);
}
@GetMapping("/page-task") @GetMapping("/page-task")
@Operation(summary = "获得子样业务分页") @Operation(summary = "获得子样业务分页")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample:query')") //@PreAuthorize("@ss.hasPermission('qms:business-sub-sample:query')")
@@ -141,4 +149,24 @@ public class BusinessSubSampleController implements BusinessControllerMarker {
BeanUtils.toBean(list, BusinessSubSampleRespVO.class)); BeanUtils.toBean(list, BusinessSubSampleRespVO.class));
} }
@PostMapping("/execReturnToStock")
@Operation(summary = "样品归库")
public CommonResult<BusinessSubSampleRespVO> execReturnToStock(@Valid @RequestBody BusinessSubSampleSaveReqVO reqVO) {
return success(businessSubSampleService.execReturnToStock(reqVO));
}
@PostMapping("/execTakeOff")
@Operation(summary = "样品下架")
public CommonResult<Integer> execTakeOff(@RequestBody JSONObject reqVO) {
Integer count = businessSubSampleService.execTakeOff(reqVO);
return success(count);
}
@PostMapping("/execChangeLocation")
@Operation(summary = "库位变更")
public CommonResult<Integer> execChangeLocation(@RequestBody JSONObject reqVO) {
Integer count = businessSubSampleService.execChangeLocation(reqVO);
return success(count);
}
} }

View File

@@ -20,7 +20,7 @@ public class BusinessHandoverRecordSubSaveReqVO {
private Long businessSubSampleId; private Long businessSubSampleId;
@Schema(description = "样品流程配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "9154") @Schema(description = "样品流程配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "9154")
@NotNull(message = "样品流程配置ID不能为空") // @NotNull(message = "样品流程配置ID不能为空")
private Long configSampleFlowId; private Long configSampleFlowId;
@Schema(description = "样品流程节点KEY", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "样品流程节点KEY", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -50,11 +50,11 @@ public class BusinessHandoverRecordSubSaveReqVO {
private Long operatorId; private Long operatorId;
@Schema(description = "送样人", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "送样人", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "送样人不能为空") // @NotEmpty(message = "送样人不能为空")
private String sendSampleOperator; private String sendSampleOperator;
@Schema(description = "收样人", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "收样人", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "收样人不能为空") // @NotEmpty(message = "收样人不能为空")
private String receiveSampleOperator; private String receiveSampleOperator;
@Schema(description = "上一个交接记录ID", example = "5605") @Schema(description = "上一个交接记录ID", example = "5605")

View File

@@ -0,0 +1,32 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class BusinessSampleDispatchDetailExtendRespVO extends BusinessSampleDispatchDetailRespVO{
//样品编号
private String sampleCode;
//样品名称
private String sampleName;
//归库码
private String sampleReturnCode;
//归库状态
private String sampleReturnStatus;
//归库时间
private LocalDateTime sampleReturnTime;
//调拨状态
private String dispatchStatus;
//库位编码
private String warehouseLocationCode;
//仓库名称
private String warehouseName;
}

View File

@@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -12,66 +13,41 @@ import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
@Data @Data
public class BusinessSampleDispatchDetailPageReqVO extends PageParam { public class BusinessSampleDispatchDetailPageReqVO extends PageParam {
@Schema(description = "主表数据id,支持", example = "10889") @Schema(description = "父ID", example = "828")
private Long parentId; private Long parentId;
@Schema(description = "业务数据ID", example = "10723") @Schema(description = "子样数据ID", example = "828")
private Long businessSubSampleId; private Long businessSubSampleId;
@Schema(description = "领用人") @Schema(description = "领用人")
private String borrowUser; private String borrowUser;
@Schema(description = "领用人id", example = "11884") @Schema(description = "领用人id", example = "22151")
private Long borrowUserId; private Long borrowUserId;
@Schema(description = "领用时间") @Schema(description = "领用时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Long[] borrowTime; private LocalDateTime[] borrowTime;
@Schema(description = "领用状态,0-未领用1-已领用", example = "1")
private String borrowStatus;
@Schema(description = "归还人") @Schema(description = "归还人")
private String givebackUser; private String givebackUser;
@Schema(description = "归还人id", example = "30812") @Schema(description = "归还人id", example = "23976")
private Long givebackUserId; private Long givebackUserId;
@Schema(description = "归还时间") @Schema(description = "归还时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Long[] givebackTime; private LocalDateTime[] givebackTime;
@Schema(description = "申请部门") @Schema(description = "归还状态,0-未归还1-已归还", example = "2")
private String applyDepartment; private String givebackStatus;
@Schema(description = "申请部门id", example = "10703")
private Long applyDepartmentId;
@Schema(description = "申请时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] applyTime;
@Schema(description = "提交状态,0-未提交1-已提交", example = "2")
private String submitStatus;
@Schema(description = "审批状态,0-未审批1-已审批", example = "2")
private String approvalStatus;
@Schema(description = "使用状态", example = "2") @Schema(description = "使用状态", example = "2")
private String useStatus; private String useStatus;
@Schema(description = "表单数据,表单数据")
private String formData;
@Schema(description = "表单模板,表单编辑器模板")
private String formTemplate;
@Schema(description = "流程实例id", example = "25078")
private String flowInstanceId;
@Schema(description = "流程审批状态", example = "1")
private String flowStatus;
@Schema(description = "审批意见")
private String opinion;
@Schema(description = "所属部门") @Schema(description = "所属部门")
private String systemDepartmentCode; private String systemDepartmentCode;
@@ -82,4 +58,13 @@ public class BusinessSampleDispatchDetailPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime; private LocalDateTime[] createTime;
//================================扩展字段=============================================
@Schema(description = "样品号")
private String sampleCode;
@Schema(description = "idsList")
private List<Long> idList;
} }

View File

@@ -10,67 +10,42 @@ import java.time.LocalDateTime;
@Data @Data
public class BusinessSampleDispatchDetailSaveReqVO { public class BusinessSampleDispatchDetailSaveReqVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31752") @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "20771")
private Long id; private Long id;
@Schema(description = "主表数据id,支持", requiredMode = Schema.RequiredMode.REQUIRED, example = "10889") @Schema(description = "父ID", example = "828")
@NotNull(message = "主表数据id,支持不能为空")
private Long parentId; private Long parentId;
@Schema(description = "业务数据ID", example = "10723") @Schema(description = "子样数据ID", example = "828")
private Long businessSubSampleId; private Long businessSubSampleId;
@Schema(description = "领用人") @Schema(description = "领用人")
private String borrowUser; private String borrowUser;
@Schema(description = "领用人id", example = "11884") @Schema(description = "领用人id", example = "22151")
private Long borrowUserId; private Long borrowUserId;
@Schema(description = "领用时间") @Schema(description = "领用时间")
private Long borrowTime; private LocalDateTime borrowTime;
@Schema(description = "领用状态,0-未领用1-已领用", example = "1")
private String borrowStatus;
@Schema(description = "归还人") @Schema(description = "归还人")
private String givebackUser; private String givebackUser;
@Schema(description = "归还人id", example = "30812") @Schema(description = "归还人id", example = "23976")
private Long givebackUserId; private Long givebackUserId;
@Schema(description = "归还时间") @Schema(description = "归还时间")
private Long givebackTime; private LocalDateTime givebackTime;
@Schema(description = "申请部门") @Schema(description = "归还状态,0-未归还1-已归还", example = "2")
private String applyDepartment; private String givebackStatus;
@Schema(description = "申请部门id", example = "10703")
private Long applyDepartmentId;
@Schema(description = "申请时间")
private LocalDateTime applyTime;
@Schema(description = "提交状态,0-未提交1-已提交", example = "2")
private String submitStatus;
@Schema(description = "审批状态,0-未审批1-已审批", example = "2")
private String approvalStatus;
@Schema(description = "使用状态", example = "2") @Schema(description = "使用状态", example = "2")
private String useStatus; private String useStatus;
@Schema(description = "表单数据,表单数据")
private String formData;
@Schema(description = "表单模板,表单编辑器模板")
private String formTemplate;
@Schema(description = "流程实例id", example = "25078")
private String flowInstanceId;
@Schema(description = "流程审批状态", example = "1")
private String flowStatus;
@Schema(description = "审批意见")
private String opinion;
@Schema(description = "所属部门") @Schema(description = "所属部门")
private String systemDepartmentCode; private String systemDepartmentCode;

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