feat:样品库接口调整

This commit is contained in:
FCL
2025-11-17 16:57:37 +08:00
parent 24a6e95f26
commit 12cd5a4d94
17 changed files with 139 additions and 13 deletions

View File

@@ -87,6 +87,7 @@ public interface ErrorCodeConstants {
ErrorCode CONFIG_PERMISSION_NOT_EXISTS = new ErrorCode(1_032_050_000, "权限配置不存在"); ErrorCode CONFIG_PERMISSION_NOT_EXISTS = new ErrorCode(1_032_050_000, "权限配置不存在");
ErrorCode CONFIG_PERMISSION_DUPLICATE = new ErrorCode(1_032_050_000, "权限配置数据有误"); ErrorCode CONFIG_PERMISSION_DUPLICATE = new ErrorCode(1_032_050_000, "权限配置数据有误");
ErrorCode CONFIG_WAREHOUSE_LOCATION_NOT_EXISTS = new ErrorCode(1_032_050_000, "存放位置不存在"); ErrorCode CONFIG_WAREHOUSE_LOCATION_NOT_EXISTS = new ErrorCode(1_032_050_000, "存放位置不存在");
ErrorCode CONFIG_WAREHOUSE_LOCATION_CODE_DUPLICATE = new ErrorCode(1_032_050_000, "库位编码重复,请检查库位数据,或联系管理员处理!");
/*=================================bus 检验业务 1_032_100_000 ~ 1_032_149_999==================================*/ /*=================================bus 检验业务 1_032_100_000 ~ 1_032_149_999==================================*/
ErrorCode BUSINESS_SAMPLE_ENTRUST_REGISTRATION_NOT_EXISTS = new ErrorCode(1_032_100_000, "委检登记业务不存在"); ErrorCode BUSINESS_SAMPLE_ENTRUST_REGISTRATION_NOT_EXISTS = new ErrorCode(1_032_100_000, "委检登记业务不存在");

View File

@@ -4,6 +4,9 @@ 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;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
import com.zt.plat.module.qms.business.bus.service.BusinessSubSampleService;
import com.zt.plat.module.qms.enums.QmsCommonConstant;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@@ -30,6 +33,7 @@ import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.BUSINESS_SUB_SAMPLE_NOT_EXISTS;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDO;
import com.zt.plat.module.qms.business.bus.service.BusinessSampleDispatchService; import com.zt.plat.module.qms.business.bus.service.BusinessSampleDispatchService;
@@ -41,8 +45,8 @@ import com.zt.plat.module.qms.business.bus.service.BusinessSampleDispatchService
public class BusinessSampleDispatchController implements BusinessControllerMarker { public class BusinessSampleDispatchController implements BusinessControllerMarker {
@Resource @Resource private BusinessSampleDispatchService businessSampleDispatchService;
private BusinessSampleDispatchService businessSampleDispatchService; @Resource private BusinessSubSampleService businessSubSampleService;
@PostMapping("/createTempData") @PostMapping("/createTempData")
@Operation(summary = "创建临时数据") @Operation(summary = "创建临时数据")
@@ -67,6 +71,32 @@ public class BusinessSampleDispatchController implements BusinessControllerMarke
return success(true); return success(true);
} }
@PutMapping("/addBySampleCode")
@Operation(summary = "增加或移除样品")
public CommonResult<Boolean> addBySampleCode(HttpServletRequest request) {
String id = request.getParameter("id");
String sampleCode = request.getParameter("sampleCode");
BusinessSubSampleDO businessSubSampleDO = businessSubSampleService.getBySampleCode(sampleCode);
if(businessSubSampleDO == null)
return CommonResult.error(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "未查询到此样品!");
//判断样品状态
String returnStatus = businessSubSampleDO.getReturnStatus();
if(!QmsCommonConstant.COMPLETED.equals(returnStatus)){
return CommonResult.error(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "样品状态为:"+returnStatus+",不能调拨!");
}
String dispatchStatus = businessSubSampleDO.getDispatchStatus();
if("1".equals(dispatchStatus)){
return CommonResult.error(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "样品已被调拨:请归还后再调拨!");
}
List<Long> sampleIds = new ArrayList<>();
sampleIds.add(businessSubSampleDO.getId());
BusinessSampleDispatchSaveReqVO updateReqVO = new BusinessSampleDispatchSaveReqVO();
updateReqVO.setId(Long.valueOf(id));
updateReqVO.setAddSubSampleIds(sampleIds);
businessSampleDispatchService.addOrRemoveSample(updateReqVO);
return success(true);
}
@PostMapping("/createProcessInstance") @PostMapping("/createProcessInstance")
@Operation(summary = "发起流程") @Operation(summary = "发起流程")
public CommonResult<BusinessSampleDispatchRespVO> createProcessInstance(@Valid @RequestBody BusinessSampleDispatchSaveReqVO vo) { public CommonResult<BusinessSampleDispatchRespVO> createProcessInstance(@Valid @RequestBody BusinessSampleDispatchSaveReqVO vo) {

View File

@@ -1,9 +1,10 @@
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.*;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailPageReqVO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailRespVO; import com.zt.plat.module.qms.business.bus.service.BusinessSubSampleService;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailSaveReqVO; import com.zt.plat.module.qms.enums.QmsCommonConstant;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@@ -30,6 +31,8 @@ import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.BUSINESS_SAMPLE_DISPATCH_DETAIL_NOT_EXISTS;
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.BUSINESS_SUB_SAMPLE_NOT_EXISTS;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDetailDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDetailDO;
import com.zt.plat.module.qms.business.bus.service.BusinessSampleDispatchDetailService; import com.zt.plat.module.qms.business.bus.service.BusinessSampleDispatchDetailService;
@@ -41,8 +44,28 @@ import com.zt.plat.module.qms.business.bus.service.BusinessSampleDispatchDetailS
public class BusinessSampleDispatchDetailController implements BusinessControllerMarker { public class BusinessSampleDispatchDetailController implements BusinessControllerMarker {
@Resource @Resource private BusinessSampleDispatchDetailService businessSampleDispatchDetailService;
private BusinessSampleDispatchDetailService businessSampleDispatchDetailService; @Resource private BusinessSubSampleService businessSubSampleService;
@GetMapping("/searchBySampleCode")
@Operation(summary = "扫码查询待归还样品")
public CommonResult<BusinessSampleDispatchDetailExtendRespVO> searchBySampleCode(HttpServletRequest request) {
String sampleCode = request.getParameter("sampleCode");
if(ObjectUtils.isEmpty(sampleCode))
return CommonResult.error(BUSINESS_SAMPLE_DISPATCH_DETAIL_NOT_EXISTS.getCode(), "请输入样品编号!");
BusinessSampleDispatchDetailPageReqVO reqVO = new BusinessSampleDispatchDetailPageReqVO();
reqVO.setSampleCode(sampleCode);
reqVO.setBorrowStatus("1");
reqVO.setGivebackStatus("0");
PageResult<BusinessSampleDispatchDetailExtendRespVO> pageResult = businessSampleDispatchDetailService.getBusinessSampleDispatchDetailPage(reqVO);
if(pageResult.getTotal() == 0)
return CommonResult.error(BUSINESS_SAMPLE_DISPATCH_DETAIL_NOT_EXISTS.getCode(), "未查询到此样品!");
if(pageResult.getList().size() > 1)
return CommonResult.error(BUSINESS_SAMPLE_DISPATCH_DETAIL_NOT_EXISTS.getCode(), "样品编号重复,请联系管理员检查数据!");
BusinessSampleDispatchDetailExtendRespVO businessSampleDispatchDetailExtendRespVO = pageResult.getList().get(0);
return success(businessSampleDispatchDetailExtendRespVO);
}
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建样品调拨明细") @Operation(summary = "创建样品调拨明细")

View File

@@ -24,6 +24,9 @@ public class BusinessSampleDispatchDetailExtendRespVO extends BusinessSampleDisp
//调拨状态 //调拨状态
private String dispatchStatus; private String dispatchStatus;
//归库状态
private String returnStatus;
//库位编码 //库位编码
private String warehouseLocationCode; private String warehouseLocationCode;

View File

@@ -66,5 +66,9 @@ public class BusinessSampleDispatchDetailPageReqVO extends PageParam {
@Schema(description = "idsList") @Schema(description = "idsList")
private List<Long> idList; private List<Long> idList;
@Schema(description = "调拨状态")
private String dispatchStatus;
@Schema(description = "归库状态")
private String returnStatus;
} }

View File

@@ -34,6 +34,9 @@ public class BusinessSampleDispatchPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] applyTime; private LocalDateTime[] applyTime;
@Schema(description = "申请原因")
private String applyContent;
@Schema(description = "库管员") @Schema(description = "库管员")
private String warehouseUser; private String warehouseUser;

View File

@@ -43,6 +43,10 @@ public class BusinessSampleDispatchRespVO {
@ExcelProperty("申请时间") @ExcelProperty("申请时间")
private LocalDateTime applyTime; private LocalDateTime applyTime;
@Schema(description = "申请原因")
@ExcelProperty("申请原因")
private String applyContent;
@Schema(description = "库管员") @Schema(description = "库管员")
@ExcelProperty("库管员") @ExcelProperty("库管员")
private String warehouseUser; private String warehouseUser;

View File

@@ -34,6 +34,9 @@ public class BusinessSampleDispatchSaveReqVO {
@Schema(description = "申请时间") @Schema(description = "申请时间")
private LocalDateTime applyTime; private LocalDateTime applyTime;
@Schema(description = "申请原因")
private String applyContent;
@Schema(description = "库管员") @Schema(description = "库管员")
private String warehouseUser; private String warehouseUser;

View File

@@ -23,4 +23,10 @@ public class BusinessSubSampleExtendRespVO extends BusinessSubSampleRespVO {
@Schema(description = "样品标签打印模版") @Schema(description = "样品标签打印模版")
private String printTemplate; private String printTemplate;
@Schema(description = "库位编码")
private String warehouseLocationCode;
@Schema(description = "仓库名称")
private String warehouseName;
} }

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.qms.business.bus.controller.vo; package com.zt.plat.module.qms.business.bus.controller.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
@@ -99,6 +100,9 @@ public class BusinessSubSamplePageReqVO extends PageParam {
@Schema(description = "归库状态,【字典】【jy_sample_return_status】待归库、已归库、已调拨、已下架、待销毁、已销毁", example = "2") @Schema(description = "归库状态,【字典】【jy_sample_return_status】待归库、已归库、已调拨、已下架、待销毁、已销毁", example = "2")
private String returnStatus; private String returnStatus;
@Schema(description = "调拨状态")
private String dispatchStatus;
@Schema(description = "打印次数", example = "32651") @Schema(description = "打印次数", example = "32651")
private Integer returnCodePrintCount; private Integer returnCodePrintCount;
@@ -128,4 +132,8 @@ public class BusinessSubSamplePageReqVO extends PageParam {
@Schema(description = "备注") @Schema(description = "备注")
private String remark; private String remark;
//扩展字段
@Schema(description = "库位编码")
private String warehouseLocationCode;
} }

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.qms.business.bus.controller.vo; package com.zt.plat.module.qms.business.bus.controller.vo;
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 java.util.*; import java.util.*;
@@ -123,6 +124,7 @@ public class BusinessSubSampleRespVO {
@Schema(description = "归库状态,【字典】【jy_sample_return_status】待归库、已归库、已调拨、已下架、待销毁、已销毁", example = "2") @Schema(description = "归库状态,【字典】【jy_sample_return_status】待归库、已归库、已调拨、已下架、待销毁、已销毁", example = "2")
@ExcelProperty("归库状态,【字典】【jy_sample_return_status】待归库、已归库、已调拨、已下架、待销毁、已销毁") @ExcelProperty("归库状态,【字典】【jy_sample_return_status】待归库、已归库、已调拨、已下架、待销毁、已销毁")
@Dict(dicCode = "jy_sample_return_status")
private String returnStatus; private String returnStatus;
@Schema(description = "调拨状态") @Schema(description = "调拨状态")

View File

@@ -66,6 +66,13 @@ public class BusinessSampleDispatchDO extends BusinessBaseDO {
*/ */
@TableField("APL_TM") @TableField("APL_TM")
private LocalDateTime applyTime; private LocalDateTime applyTime;
/**
* 申请原因
*/
@TableField("APL_CNTT")
private LocalDateTime applyContent;
/** /**
* 库管员 * 库管员
*/ */

View File

@@ -44,6 +44,7 @@ public interface BusinessSampleDispatchDetailMapper extends BaseMapperX<Business
.inIfPresent(BusinessSampleDispatchDetailDO::getId, reqVO.getIdList()) .inIfPresent(BusinessSampleDispatchDetailDO::getId, reqVO.getIdList())
.eqIfPresent(BusinessSampleDispatchDetailDO::getParentId, reqVO.getParentId()) .eqIfPresent(BusinessSampleDispatchDetailDO::getParentId, reqVO.getParentId())
.eqIfPresent(BusinessSampleDispatchDetailDO::getBusinessSubSampleId, reqVO.getBusinessSubSampleId()) .eqIfPresent(BusinessSampleDispatchDetailDO::getBusinessSubSampleId, reqVO.getBusinessSubSampleId())
.eqIfPresent(BusinessSubSampleDO::getSampleCode, reqVO.getSampleCode())
.eqIfPresent(BusinessSampleDispatchDetailDO::getBorrowUser, reqVO.getBorrowUser()) .eqIfPresent(BusinessSampleDispatchDetailDO::getBorrowUser, reqVO.getBorrowUser())
.eqIfPresent(BusinessSampleDispatchDetailDO::getBorrowUserId, reqVO.getBorrowUserId()) .eqIfPresent(BusinessSampleDispatchDetailDO::getBorrowUserId, reqVO.getBorrowUserId())
.betweenIfPresent(BusinessSampleDispatchDetailDO::getBorrowTime, reqVO.getBorrowTime()) .betweenIfPresent(BusinessSampleDispatchDetailDO::getBorrowTime, reqVO.getBorrowTime())

View File

@@ -4,14 +4,18 @@ import java.util.*;
import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX; import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailExtendRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubSampleExtendRespVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubSampleExtendRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubSamplePageReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubSamplePageReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubSampleReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubSampleReqVO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigSubSampleDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigSubSampleDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationParDO;
import com.zt.plat.module.qms.common.dic.dal.dataobject.DictionaryBusinessDO; import com.zt.plat.module.qms.common.dic.dal.dataobject.DictionaryBusinessDO;
import com.zt.plat.module.qms.enums.QmsCommonConstant; import com.zt.plat.module.qms.enums.QmsCommonConstant;
import com.zt.plat.module.qms.enums.QmsWarehouseLocationConstant;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@@ -29,10 +33,18 @@ public interface BusinessSubSampleMapper extends BaseMapperX<BusinessSubSampleDO
.selectSub(BusinessAssayTaskDataDO.class, s -> s.selectCount(BusinessAssayTaskDataDO::getId).eq(BusinessAssayTaskDataDO::getBusinessSubSampleId, BusinessSubSampleDO::getId), BusinessSubSampleExtendRespVO::getAssayTaskCount) .selectSub(BusinessAssayTaskDataDO.class, s -> s.selectCount(BusinessAssayTaskDataDO::getId).eq(BusinessAssayTaskDataDO::getBusinessSubSampleId, BusinessSubSampleDO::getId), BusinessSubSampleExtendRespVO::getAssayTaskCount)
.leftJoin(ConfigSubSampleDO.class, ConfigSubSampleDO::getId, BusinessSubSampleDO::getConfigSubSampleId) .leftJoin(ConfigSubSampleDO.class, ConfigSubSampleDO::getId, BusinessSubSampleDO::getConfigSubSampleId)
.leftJoin(DictionaryBusinessDO.class, DictionaryBusinessDO::getId, BusinessSubSampleDO::getDictionaryBusinessId) .leftJoin(DictionaryBusinessDO.class, DictionaryBusinessDO::getId, BusinessSubSampleDO::getDictionaryBusinessId)
//库位
.leftJoin(ConfigWarehouseLocationDO.class, ConfigWarehouseLocationDO::getId, BusinessSubSampleDO::getConfigWarehouseLocationInfomationId, w->{
w.eq(ConfigWarehouseLocationDO::getWarehouseType, QmsWarehouseLocationConstant.WAREHOUSE_TYPE_SAMPLE);
})
//仓库
.leftJoin(ConfigWarehouseLocationParDO.class, ConfigWarehouseLocationParDO::getId, ConfigWarehouseLocationDO::getParentId)
.selectAll(BusinessSubSampleDO.class) .selectAll(BusinessSubSampleDO.class)
.selectAs(DictionaryBusinessDO::getName, BusinessSubSampleExtendRespVO::getDictionaryBusinessName) .selectAs(DictionaryBusinessDO::getName, BusinessSubSampleExtendRespVO::getDictionaryBusinessName)
.selectAs(ConfigSubSampleDO::getIsPrint, BusinessSubSampleExtendRespVO::getIsPrint) .selectAs(ConfigSubSampleDO::getIsPrint, BusinessSubSampleExtendRespVO::getIsPrint)
.selectAs(ConfigSubSampleDO::getPrintTemplate, BusinessSubSampleExtendRespVO::getPrintTemplate) .selectAs(ConfigSubSampleDO::getPrintTemplate, BusinessSubSampleExtendRespVO::getPrintTemplate)
.selectAs(ConfigWarehouseLocationDO::getCode, BusinessSubSampleExtendRespVO::getWarehouseLocationCode)
.selectAs(ConfigWarehouseLocationParDO::getName, BusinessSubSampleExtendRespVO::getWarehouseName)
.eqIfPresent(BusinessSubSampleDO::getBusinessBaseSampleId, reqVO.getBusinessBaseSampleId()) .eqIfPresent(BusinessSubSampleDO::getBusinessBaseSampleId, reqVO.getBusinessBaseSampleId())
.eqIfPresent(BusinessSubSampleDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleId()) .eqIfPresent(BusinessSubSampleDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleId())
.eqIfPresent(BusinessSubSampleDO::getConfigSubSampleId, reqVO.getConfigSubSampleId()) .eqIfPresent(BusinessSubSampleDO::getConfigSubSampleId, reqVO.getConfigSubSampleId())
@@ -60,6 +72,7 @@ public interface BusinessSubSampleMapper extends BaseMapperX<BusinessSubSampleDO
.betweenIfPresent(BusinessSubSampleDO::getReportTime, reqVO.getReportTime()) .betweenIfPresent(BusinessSubSampleDO::getReportTime, reqVO.getReportTime())
.betweenIfPresent(BusinessSubSampleDO::getReturnTime, reqVO.getReturnTime()) .betweenIfPresent(BusinessSubSampleDO::getReturnTime, reqVO.getReturnTime())
.eqIfPresent(BusinessSubSampleDO::getReturnStatus, reqVO.getReturnStatus()) .eqIfPresent(BusinessSubSampleDO::getReturnStatus, reqVO.getReturnStatus())
.eqIfPresent(BusinessSubSampleDO::getDispatchStatus, reqVO.getDispatchStatus())
.eqIfPresent(BusinessSubSampleDO::getReturnCodePrintCount, reqVO.getReturnCodePrintCount()) .eqIfPresent(BusinessSubSampleDO::getReturnCodePrintCount, reqVO.getReturnCodePrintCount())
.betweenIfPresent(BusinessSubSampleDO::getPrintLastTime, reqVO.getPrintLastTime()) .betweenIfPresent(BusinessSubSampleDO::getPrintLastTime, reqVO.getPrintLastTime())
.eqIfPresent(BusinessSubSampleDO::getUpSampleRecordId, reqVO.getUpSampleRecordId()) .eqIfPresent(BusinessSubSampleDO::getUpSampleRecordId, reqVO.getUpSampleRecordId())
@@ -69,6 +82,7 @@ public interface BusinessSubSampleMapper extends BaseMapperX<BusinessSubSampleDO
.eqIfPresent(BusinessSubSampleDO::getUpdateCount, reqVO.getUpdateCount()) .eqIfPresent(BusinessSubSampleDO::getUpdateCount, reqVO.getUpdateCount())
.eqIfPresent(BusinessSubSampleDO::getRemark, reqVO.getRemark()) .eqIfPresent(BusinessSubSampleDO::getRemark, reqVO.getRemark())
.eqIfPresent(BusinessSubSampleDO::getUpSampleRecordId, reqVO.getUpSampleRecordId()) .eqIfPresent(BusinessSubSampleDO::getUpSampleRecordId, reqVO.getUpSampleRecordId())
.likeIfPresent(ConfigWarehouseLocationDO::getCode, reqVO.getWarehouseLocationCode())
.orderByDesc(BusinessSubSampleDO::getSampleFlowNodeTime).orderByAsc(BusinessSubSampleDO::getSampleCode)); .orderByDesc(BusinessSubSampleDO::getSampleFlowNodeTime).orderByAsc(BusinessSubSampleDO::getSampleCode));
} }
@@ -108,6 +122,7 @@ public interface BusinessSubSampleMapper extends BaseMapperX<BusinessSubSampleDO
.betweenIfPresent(BusinessSubSampleDO::getReportTime, reqVO.getReportTime()) .betweenIfPresent(BusinessSubSampleDO::getReportTime, reqVO.getReportTime())
.betweenIfPresent(BusinessSubSampleDO::getReturnTime, reqVO.getReturnTime()) .betweenIfPresent(BusinessSubSampleDO::getReturnTime, reqVO.getReturnTime())
.eqIfPresent(BusinessSubSampleDO::getReturnStatus, reqVO.getReturnStatus()) .eqIfPresent(BusinessSubSampleDO::getReturnStatus, reqVO.getReturnStatus())
.eqIfPresent(BusinessSubSampleDO::getDispatchStatus, reqVO.getDispatchStatus())
.eqIfPresent(BusinessSubSampleDO::getReturnCodePrintCount, reqVO.getReturnCodePrintCount()) .eqIfPresent(BusinessSubSampleDO::getReturnCodePrintCount, reqVO.getReturnCodePrintCount())
.betweenIfPresent(BusinessSubSampleDO::getPrintLastTime, reqVO.getPrintLastTime()) .betweenIfPresent(BusinessSubSampleDO::getPrintLastTime, reqVO.getPrintLastTime())
.eqIfPresent(BusinessSubSampleDO::getUpSampleRecordId, reqVO.getUpSampleRecordId()) .eqIfPresent(BusinessSubSampleDO::getUpSampleRecordId, reqVO.getUpSampleRecordId())

View File

@@ -187,6 +187,7 @@ public class BusinessSampleDispatchServiceImpl implements BusinessSampleDispatch
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public CommonResult<String> execGiveback(JSONObject paramVo) { public CommonResult<String> execGiveback(JSONObject paramVo) {
String givebackUser = paramVo.getString("givebackUser"); //归还人 String givebackUser = paramVo.getString("givebackUser"); //归还人
@@ -236,8 +237,14 @@ public class BusinessSampleDispatchServiceImpl implements BusinessSampleDispatch
@Override @Override
public BusinessSampleDispatchRespVO createBusinessSampleDispatch(BusinessSampleDispatchSaveReqVO createReqVO) { public BusinessSampleDispatchRespVO createBusinessSampleDispatch(BusinessSampleDispatchSaveReqVO createReqVO) {
// 插入
BusinessSampleDispatchDO businessSampleDispatch = BeanUtils.toBean(createReqVO, BusinessSampleDispatchDO.class); BusinessSampleDispatchDO businessSampleDispatch = BeanUtils.toBean(createReqVO, BusinessSampleDispatchDO.class);
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
String nickName = SecurityFrameworkUtils.getLoginUserNickname();
if(businessSampleDispatch.getApplyUser() == null){
businessSampleDispatch.setApplyUser(nickName);
businessSampleDispatch.setApplyUserId(loginUser.getId());
}
businessSampleDispatchMapper.insert(businessSampleDispatch); businessSampleDispatchMapper.insert(businessSampleDispatch);
// 返回 // 返回
return BeanUtils.toBean(businessSampleDispatch, BusinessSampleDispatchRespVO.class); return BeanUtils.toBean(businessSampleDispatch, BusinessSampleDispatchRespVO.class);

View File

@@ -11,6 +11,7 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleHandover
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleHandoverDetailDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleHandoverDetailDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationDO;
import com.zt.plat.module.qms.business.config.service.ConfigWarehouseLocationService; import com.zt.plat.module.qms.business.config.service.ConfigWarehouseLocationService;
import com.zt.plat.module.qms.common.dic.service.DictionaryBusinessService;
import com.zt.plat.module.qms.core.code.SequenceUtil; import com.zt.plat.module.qms.core.code.SequenceUtil;
import com.zt.plat.module.qms.enums.QmsCommonConstant; import com.zt.plat.module.qms.enums.QmsCommonConstant;
import com.zt.plat.module.qms.enums.QmsWarehouseLocationConstant; import com.zt.plat.module.qms.enums.QmsWarehouseLocationConstant;
@@ -55,6 +56,7 @@ public class BusinessSubSampleServiceImpl implements BusinessSubSampleService {
@Resource private BusinessSampleHandoverService businessSampleHandoverService; @Resource private BusinessSampleHandoverService businessSampleHandoverService;
@Resource private BusinessSampleHandoverDetailService businessSampleHandoverDetailService; @Resource private BusinessSampleHandoverDetailService businessSampleHandoverDetailService;
@Resource private BusinessHandoverRecordSubService businessHandoverRecordSubService; @Resource private BusinessHandoverRecordSubService businessHandoverRecordSubService;
@Resource private DictionaryBusinessService dictionaryBusinessService;
@Resource private SequenceUtil sequenceUtil; @Resource private SequenceUtil sequenceUtil;
@Override @Override
@@ -230,7 +232,10 @@ public class BusinessSubSampleServiceImpl implements BusinessSubSampleService {
//创建交接抬头 //创建交接抬头
BusinessSampleHandoverSaveReqVO handoverVO = new BusinessSampleHandoverSaveReqVO(); BusinessSampleHandoverSaveReqVO handoverVO = new BusinessSampleHandoverSaveReqVO();
String code = sequenceUtil.genCode("/XJ|@yyMMdd|*XJ_CODE-3-D"); String codeTemplate = dictionaryBusinessService.getValueByDataKey("sample_take_off_serial");
if(ObjectUtils.isEmpty(codeTemplate))
throw exception0(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "缺少“样品下架记录编号规则”的配置,请在业务参数字典增加此配置!");
String code = sequenceUtil.genCode(codeTemplate);
handoverVO.setCode(code); handoverVO.setCode(code);
handoverVO.setName("样品下架记录"); handoverVO.setName("样品下架记录");
handoverVO.setSampleFlowNodeKey(QmsCommonConstant.FLOW_SAMPLE_STORAGE); handoverVO.setSampleFlowNodeKey(QmsCommonConstant.FLOW_SAMPLE_STORAGE);

View File

@@ -42,9 +42,13 @@ public class ConfigWarehouseLocationServiceImpl implements ConfigWarehouseLocati
query.eq(ConfigWarehouseLocationDO::getCode, code); query.eq(ConfigWarehouseLocationDO::getCode, code);
query.eq(ConfigWarehouseLocationDO::getWarehouseType, warehouseType); query.eq(ConfigWarehouseLocationDO::getWarehouseType, warehouseType);
query.eq(ConfigWarehouseLocationDO::getDataType, QmsWarehouseLocationConstant.DATA_TYPE_LOCATION); query.eq(ConfigWarehouseLocationDO::getDataType, QmsWarehouseLocationConstant.DATA_TYPE_LOCATION);
query.last("limit 1"); // query.last("limit 1");
ConfigWarehouseLocationDO configWarehouseLocation = configWarehouseLocationMapper.selectOne(query); List<ConfigWarehouseLocationDO> list = configWarehouseLocationMapper.selectList(query);
return configWarehouseLocation; if(list.size() > 1)
throw exception(CONFIG_WAREHOUSE_LOCATION_CODE_DUPLICATE);
if(list.isEmpty())
return null;
return list.get(0);
} }
@Override @Override