feat:报告编制
This commit is contained in:
@@ -106,7 +106,8 @@ public interface ErrorCodeConstants {
|
|||||||
//检测报告
|
//检测报告
|
||||||
ErrorCode REPORT_DOCUMENT_MAIN_NOT_EXISTS = new ErrorCode(1_032_100_000, "检测报告业务不存在");
|
ErrorCode REPORT_DOCUMENT_MAIN_NOT_EXISTS = new ErrorCode(1_032_100_000, "检测报告业务不存在");
|
||||||
ErrorCode REPORT_DOCUMENT_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "检测报告明细不存在");
|
ErrorCode REPORT_DOCUMENT_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "检测报告明细不存在");
|
||||||
ErrorCode REPORT_DOCUMENT_TYPE_NOT_EXISTS = new ErrorCode(1_032_050_000, "报告类型配置不存在");
|
ErrorCode REPORT_DOCUMENT_TYPE_NOT_EXISTS = new ErrorCode(1_032_100_000, "报告类型配置不存在");
|
||||||
|
ErrorCode REPORT_DOCUMENT_MAIN_CORRELATION_NOT_EXISTS = new ErrorCode(1_032_100_000, "报告主数据关系不存在");
|
||||||
|
|
||||||
/*=================================resource 资源管理 1_032_150_000 ~ 1_032_199_999 ==================================*/
|
/*=================================resource 资源管理 1_032_150_000 ~ 1_032_199_999 ==================================*/
|
||||||
ErrorCode DEVICE_INFOMATION_NOT_EXISTS = new ErrorCode(1_032_150_000, "设备_设备信息不存在");
|
ErrorCode DEVICE_INFOMATION_NOT_EXISTS = new ErrorCode(1_032_150_000, "设备_设备信息不存在");
|
||||||
|
|||||||
@@ -107,4 +107,11 @@ public class BusinessSampleEntrustRegistrationController implements BusinessCont
|
|||||||
BeanUtils.toBean(list, BusinessSampleEntrustRegistrationRespVO.class));
|
BeanUtils.toBean(list, BusinessSampleEntrustRegistrationRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/queryWaitingDataForReport")
|
||||||
|
@Operation(summary = "查询待编制数据")
|
||||||
|
public CommonResult<PageResult<BusinessSampleEntrustRegistrationExtendRespVO>> queryWaitingDataForReport(@Valid BusinessSampleEntrustRegistrationPageReqVO pageReqVO) {
|
||||||
|
PageResult<BusinessSampleEntrustRegistrationExtendRespVO> result = businessSampleEntrustRegistrationService.queryWaitingDataForReport(pageReqVO);
|
||||||
|
return success(result);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -65,4 +65,6 @@ public class BusinessAssayReportDataPageReqVO extends PageParam {
|
|||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private LocalDateTime[] baseSampleCreateTime;
|
private LocalDateTime[] baseSampleCreateTime;
|
||||||
|
|
||||||
|
@Schema(description = "委托id列表")
|
||||||
|
private List<Long> businessSampleEntrustRegistrationIdList;
|
||||||
}
|
}
|
||||||
@@ -102,6 +102,10 @@ public class BusinessAssayReportDataDO extends BusinessBaseDO {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String sampleName;
|
private String sampleName;
|
||||||
|
|
||||||
|
//样品大类名称
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String baseSampleName;
|
||||||
|
|
||||||
//样品创建时间
|
//样品创建时间
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private LocalDateTime baseSampleCreateTime;
|
private LocalDateTime baseSampleCreateTime;
|
||||||
|
|||||||
@@ -252,4 +252,10 @@ public class BusinessSampleEntrustRegistrationDO extends BusinessBaseDO {
|
|||||||
@TableField("RMK")
|
@TableField("RMK")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
//================扩展字段====================
|
||||||
|
//委托来源
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String configEntrustSourceName;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.zt.plat.module.qms.business.bus.dal.mapper;
|
package com.zt.plat.module.qms.business.bus.dal.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX;
|
import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX;
|
||||||
@@ -10,6 +12,7 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustR
|
|||||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigEntrustSourceDO;
|
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigEntrustSourceDO;
|
||||||
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;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 委检登记业务 Mapper
|
* 委检登记业务 Mapper
|
||||||
@@ -72,4 +75,7 @@ public interface BusinessSampleEntrustRegistrationMapper extends BaseMapperX<Bus
|
|||||||
.orderByDesc(BusinessSampleEntrustRegistrationDO::getId));
|
.orderByDesc(BusinessSampleEntrustRegistrationDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//查询报告待编制数据
|
||||||
|
Page<BusinessSampleEntrustRegistrationDO> queryWaitingDataForReport(IPage<?> page, @Param("param") BusinessSampleEntrustRegistrationPageReqVO param);
|
||||||
}
|
}
|
||||||
@@ -64,4 +64,10 @@ public interface BusinessSampleEntrustRegistrationService {
|
|||||||
*/
|
*/
|
||||||
PageResult<BusinessSampleEntrustRegistrationExtendRespVO> getBusinessSampleEntrustRegistrationPage(BusinessSampleEntrustRegistrationPageReqVO pageReqVO);
|
PageResult<BusinessSampleEntrustRegistrationExtendRespVO> getBusinessSampleEntrustRegistrationPage(BusinessSampleEntrustRegistrationPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询待编制数据*/
|
||||||
|
PageResult<BusinessSampleEntrustRegistrationExtendRespVO> queryWaitingDataForReport(BusinessSampleEntrustRegistrationPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.zt.plat.module.qms.business.bus.service;
|
package com.zt.plat.module.qms.business.bus.service;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleEntrustRegistrationExtendRespVO;
|
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleEntrustRegistrationExtendRespVO;
|
||||||
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleEntrustRegistrationPageReqVO;
|
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleEntrustRegistrationPageReqVO;
|
||||||
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleEntrustRegistrationRespVO;
|
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleEntrustRegistrationRespVO;
|
||||||
@@ -91,4 +93,12 @@ public class BusinessSampleEntrustRegistrationServiceImpl implements BusinessSam
|
|||||||
return businessSampleEntrustRegistrationMapper.selectPage(pageReqVO);
|
return businessSampleEntrustRegistrationMapper.selectPage(pageReqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//查询待编制数据
|
||||||
|
@Override
|
||||||
|
public PageResult<BusinessSampleEntrustRegistrationExtendRespVO> queryWaitingDataForReport(BusinessSampleEntrustRegistrationPageReqVO pageReqVO) {
|
||||||
|
IPage<BusinessSampleEntrustRegistrationDO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
||||||
|
Page<BusinessSampleEntrustRegistrationDO> pageList = businessSampleEntrustRegistrationMapper.queryWaitingDataForReport(page, pageReqVO);
|
||||||
|
PageResult<BusinessSampleEntrustRegistrationDO> pageResult = new PageResult<>(pageList.getRecords(), pageList.getTotal());
|
||||||
|
return BeanUtils.toBean(pageResult, BusinessSampleEntrustRegistrationExtendRespVO.class);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.zt.plat.module.qms.business.reportdoc.controller.admin;
|
package com.zt.plat.module.qms.business.reportdoc.controller.admin;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
|
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
|
||||||
import com.zt.plat.framework.business.annotation.FileUploadController;
|
import com.zt.plat.framework.business.annotation.FileUploadController;
|
||||||
import com.zt.plat.framework.business.controller.AbstractFileUploadController;
|
import com.zt.plat.framework.business.controller.AbstractFileUploadController;
|
||||||
@@ -55,10 +57,26 @@ public class ReportDocumentDataController extends AbstractFileUploadController i
|
|||||||
@Resource private ReportDocumentMainService reportDocumentMainService;
|
@Resource private ReportDocumentMainService reportDocumentMainService;
|
||||||
@Resource private ReportDocumentTypeService reportDocumentTypeService;
|
@Resource private ReportDocumentTypeService reportDocumentTypeService;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 查询报告明细数据,返回结果包含报表字段配置、组装后的报告明细数据*/
|
||||||
|
@GetMapping("/queryReportDetail")
|
||||||
|
@Operation(summary = "查询报告明细数据")
|
||||||
|
@Parameter(name = "mainId", description = "报告id", required = true, example = "1024")
|
||||||
|
public CommonResult<List<JSONObject>> queryReportDetail(@RequestParam("mainId") Long mainId) {
|
||||||
|
|
||||||
|
ReportDocumentMainDO mainDO = reportDocumentMainService.getReportDocumentMain(mainId);
|
||||||
|
Long typeId = mainDO.getReportDocumentTypeId();
|
||||||
|
ReportDocumentTypeDO typeDO = reportDocumentTypeService.getReportDocumentType(typeId);
|
||||||
|
Long confId = typeDO.getConfigReportTypeId();
|
||||||
|
// Map<String, Object> param = new HashMap<>();
|
||||||
|
// List<ReportDocumentDataDO> list = reportDocumentDataService.listByMainDataId(mainId).getData();
|
||||||
|
// return success(BeanUtils.toBean(list, ReportDocumentDataRespVO.class));
|
||||||
|
CommonResult<List<JSONObject>> result = reportDocumentDataService.assembleDynamicData(mainDO, typeDO);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/queryAddedData")
|
@GetMapping("/queryAddedData")
|
||||||
@Operation(summary = "已编制报表数据查询")
|
@Operation(summary = "查询已编制报表数据")
|
||||||
@Parameter(name = "mainId", description = "报告id", required = true, example = "1024")
|
@Parameter(name = "mainId", description = "报告id", required = true, example = "1024")
|
||||||
public CommonResult<List<ReportDocumentDataRespVO>> queryAddedData(@RequestParam("mainId") Long mainId) {
|
public CommonResult<List<ReportDocumentDataRespVO>> queryAddedData(@RequestParam("mainId") Long mainId) {
|
||||||
|
|
||||||
|
|||||||
@@ -85,10 +85,16 @@ public class ReportDocumentMainController extends AbstractFileUploadController i
|
|||||||
return reportDocumentMainService.createProcessInstance(createReqVO);
|
return reportDocumentMainService.createProcessInstance(createReqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/execAddData")
|
@PostMapping("/execAddDataBySample")
|
||||||
@Operation(summary = "增加数据")
|
@Operation(summary = "增加数据(按样品)")
|
||||||
public CommonResult<String> execAddData(@RequestBody ReportDocumentMainSaveReqVO vo) {
|
public CommonResult<String> execAddDataBySample(@RequestBody ReportDocumentMainSaveReqVO vo) {
|
||||||
return reportDocumentMainService.execAddData(vo);
|
return reportDocumentMainService.execAddDataBySample(vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/execAddDataByEntrust")
|
||||||
|
@Operation(summary = "增加数据(按委托)")
|
||||||
|
public CommonResult<String> execAddDataByEntrust(@RequestBody ReportDocumentMainSaveReqVO vo) {
|
||||||
|
return reportDocumentMainService.execAddDataByEntrust(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/execRemoveData")
|
@PostMapping("/execRemoveData")
|
||||||
|
|||||||
@@ -0,0 +1,109 @@
|
|||||||
|
package com.zt.plat.module.qms.business.reportdoc.controller.admin;
|
||||||
|
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationPageReqVO;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationRespVO;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationSaveReqVO;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
|
||||||
|
import jakarta.validation.*;
|
||||||
|
import jakarta.servlet.http.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
|
||||||
|
import com.zt.plat.framework.common.pojo.PageParam;
|
||||||
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
|
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||||
|
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||||
|
import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
import com.zt.plat.framework.excel.core.util.ExcelUtils;
|
||||||
|
|
||||||
|
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
|
||||||
|
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||||
|
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainCorrelationDO;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.service.ReportDocumentMainCorrelationService;
|
||||||
|
|
||||||
|
@Tag(name = "管理后台 - 检测报告关系表")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/qms/report-document-main-correlation")
|
||||||
|
@Validated
|
||||||
|
public class ReportDocumentMainCorrelationController implements BusinessControllerMarker {
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ReportDocumentMainCorrelationService reportDocumentMainCorrelationService;
|
||||||
|
|
||||||
|
@PostMapping("/create")
|
||||||
|
@Operation(summary = "创建检测报告关系表")
|
||||||
|
@PreAuthorize("@ss.hasPermission('qms:report-document-main-correlation:create')")
|
||||||
|
public CommonResult<ReportDocumentMainCorrelationRespVO> createReportDocumentMainCorrelation(@Valid @RequestBody ReportDocumentMainCorrelationSaveReqVO createReqVO) {
|
||||||
|
return success(reportDocumentMainCorrelationService.createReportDocumentMainCorrelation(createReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新检测报告关系表")
|
||||||
|
@PreAuthorize("@ss.hasPermission('qms:report-document-main-correlation:update')")
|
||||||
|
public CommonResult<Boolean> updateReportDocumentMainCorrelation(@Valid @RequestBody ReportDocumentMainCorrelationSaveReqVO updateReqVO) {
|
||||||
|
reportDocumentMainCorrelationService.updateReportDocumentMainCorrelation(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
@Operation(summary = "删除检测报告关系表")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('qms:report-document-main-correlation:delete')")
|
||||||
|
public CommonResult<Boolean> deleteReportDocumentMainCorrelation(@RequestParam("id") Long id) {
|
||||||
|
reportDocumentMainCorrelationService.deleteReportDocumentMainCorrelation(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete-list")
|
||||||
|
@Parameter(name = "ids", description = "编号", required = true)
|
||||||
|
@Operation(summary = "批量删除检测报告关系表")
|
||||||
|
@PreAuthorize("@ss.hasPermission('qms:report-document-main-correlation:delete')")
|
||||||
|
public CommonResult<Boolean> deleteReportDocumentMainCorrelationList(@RequestBody BatchDeleteReqVO req) {
|
||||||
|
reportDocumentMainCorrelationService.deleteReportDocumentMainCorrelationListByIds(req.getIds());
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
@Operation(summary = "获得检测报告关系表")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
|
@PreAuthorize("@ss.hasPermission('qms:report-document-main-correlation:query')")
|
||||||
|
public CommonResult<ReportDocumentMainCorrelationRespVO> getReportDocumentMainCorrelation(@RequestParam("id") Long id) {
|
||||||
|
ReportDocumentMainCorrelationDO reportDocumentMainCorrelation = reportDocumentMainCorrelationService.getReportDocumentMainCorrelation(id);
|
||||||
|
return success(BeanUtils.toBean(reportDocumentMainCorrelation, ReportDocumentMainCorrelationRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page")
|
||||||
|
@Operation(summary = "获得检测报告关系表分页")
|
||||||
|
@PreAuthorize("@ss.hasPermission('qms:report-document-main-correlation:query')")
|
||||||
|
public CommonResult<PageResult<ReportDocumentMainCorrelationRespVO>> getReportDocumentMainCorrelationPage(@Valid ReportDocumentMainCorrelationPageReqVO pageReqVO) {
|
||||||
|
PageResult<ReportDocumentMainCorrelationDO> pageResult = reportDocumentMainCorrelationService.getReportDocumentMainCorrelationPage(pageReqVO);
|
||||||
|
return success(BeanUtils.toBean(pageResult, ReportDocumentMainCorrelationRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/export-excel")
|
||||||
|
@Operation(summary = "导出检测报告关系表 Excel")
|
||||||
|
@PreAuthorize("@ss.hasPermission('qms:report-document-main-correlation:export')")
|
||||||
|
@ApiAccessLog(operateType = EXPORT)
|
||||||
|
public void exportReportDocumentMainCorrelationExcel(@Valid ReportDocumentMainCorrelationPageReqVO pageReqVO,
|
||||||
|
HttpServletResponse response) throws IOException {
|
||||||
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||||
|
List<ReportDocumentMainCorrelationDO> list = reportDocumentMainCorrelationService.getReportDocumentMainCorrelationPage(pageReqVO).getList();
|
||||||
|
// 导出 Excel
|
||||||
|
ExcelUtils.write(response, "检测报告关系表.xls", "数据", ReportDocumentMainCorrelationRespVO.class,
|
||||||
|
BeanUtils.toBean(list, ReportDocumentMainCorrelationRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -32,4 +32,15 @@ public class ReportDocumentDataPageReqVO extends PageParam {
|
|||||||
@Schema(description = "备注")
|
@Schema(description = "备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "附加内容")
|
||||||
|
private String externalContent;
|
||||||
|
|
||||||
|
@Schema(description = "样品编号")
|
||||||
|
private String sampleCode;
|
||||||
|
|
||||||
|
@Schema(description = "样品名称")
|
||||||
|
private String sampleName;
|
||||||
|
|
||||||
|
@Schema(description = "样品大类名称")
|
||||||
|
private String baseSampleName;
|
||||||
}
|
}
|
||||||
@@ -40,11 +40,24 @@ public class ReportDocumentDataRespVO {
|
|||||||
@ExcelProperty("备注")
|
@ExcelProperty("备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
//==================扩展字段===========
|
@Schema(description = "附加内容")
|
||||||
|
@ExcelProperty("附加内容")
|
||||||
|
private String externalContent;
|
||||||
|
|
||||||
|
@Schema(description = "样品编号")
|
||||||
|
@ExcelProperty("样品编号")
|
||||||
|
private String sampleCode;
|
||||||
|
|
||||||
@Schema(description = "样品名称")
|
@Schema(description = "样品名称")
|
||||||
@ExcelProperty("样品名称")
|
@ExcelProperty("样品名称")
|
||||||
private String sampleName;
|
private String sampleName;
|
||||||
|
|
||||||
|
@Schema(description = "样品大类名称")
|
||||||
|
@ExcelProperty("样品大类名称")
|
||||||
|
private String baseSampleName;
|
||||||
|
|
||||||
|
//==================扩展字段===========
|
||||||
|
|
||||||
@Schema(description = "样品创建时间")
|
@Schema(description = "样品创建时间")
|
||||||
@ExcelProperty("样品创建时间")
|
@ExcelProperty("样品创建时间")
|
||||||
private LocalDateTime baseSampleCreateTime;
|
private LocalDateTime baseSampleCreateTime;
|
||||||
|
|||||||
@@ -28,4 +28,16 @@ public class ReportDocumentDataSaveReqVO {
|
|||||||
@Schema(description = "备注")
|
@Schema(description = "备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "附加内容")
|
||||||
|
private String externalContent;
|
||||||
|
|
||||||
|
@Schema(description = "样品编号")
|
||||||
|
private String sampleCode;
|
||||||
|
|
||||||
|
@Schema(description = "样品名称")
|
||||||
|
private String sampleName;
|
||||||
|
|
||||||
|
@Schema(description = "样品大类名称")
|
||||||
|
private String baseSampleName;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package com.zt.plat.module.qms.business.reportdoc.controller.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import com.zt.plat.framework.common.pojo.PageParam;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
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 ReportDocumentMainCorrelationPageReqVO extends PageParam {
|
||||||
|
|
||||||
|
@Schema(description = "报告id", example = "21148")
|
||||||
|
private Long mainId;
|
||||||
|
|
||||||
|
@Schema(description = "关联id", example = "24996")
|
||||||
|
private Long correlationId;
|
||||||
|
|
||||||
|
@Schema(description = "关联类型", example = "2")
|
||||||
|
private String correlationType;
|
||||||
|
|
||||||
|
@Schema(description = "所属部门")
|
||||||
|
private String systemDepartmentCode;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
@Schema(description = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
package com.zt.plat.module.qms.business.reportdoc.controller.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.alibaba.excel.annotation.*;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 检测报告关系表 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class ReportDocumentMainCorrelationRespVO {
|
||||||
|
|
||||||
|
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27670")
|
||||||
|
@ExcelProperty("ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "报告id", example = "21148")
|
||||||
|
@ExcelProperty("报告id")
|
||||||
|
private Long mainId;
|
||||||
|
|
||||||
|
@Schema(description = "关联id", example = "24996")
|
||||||
|
@ExcelProperty("关联id")
|
||||||
|
private Long correlationId;
|
||||||
|
|
||||||
|
@Schema(description = "关联类型", example = "2")
|
||||||
|
@ExcelProperty("关联类型")
|
||||||
|
private String correlationType;
|
||||||
|
|
||||||
|
@Schema(description = "所属部门")
|
||||||
|
@ExcelProperty("所属部门")
|
||||||
|
private String systemDepartmentCode;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
@Schema(description = "备注")
|
||||||
|
@ExcelProperty("备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.zt.plat.module.qms.business.reportdoc.controller.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 检测报告关系表新增/修改 Request VO")
|
||||||
|
@Data
|
||||||
|
public class ReportDocumentMainCorrelationSaveReqVO {
|
||||||
|
|
||||||
|
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27670")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "报告id", example = "21148")
|
||||||
|
private Long mainId;
|
||||||
|
|
||||||
|
@Schema(description = "关联id", example = "24996")
|
||||||
|
private Long correlationId;
|
||||||
|
|
||||||
|
@Schema(description = "关联类型", example = "2")
|
||||||
|
private String correlationType;
|
||||||
|
|
||||||
|
@Schema(description = "所属部门")
|
||||||
|
private String systemDepartmentCode;
|
||||||
|
|
||||||
|
@Schema(description = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -89,4 +89,10 @@ public class ReportDocumentMainSaveReqVO {
|
|||||||
@Schema(description = "表单设计器模板id")
|
@Schema(description = "表单设计器模板id")
|
||||||
private Long dataTemplateId;
|
private Long dataTemplateId;
|
||||||
|
|
||||||
|
|
||||||
|
//====================附加属性==============================
|
||||||
|
@Schema(description = "委托id,支持多值")
|
||||||
|
private String businessSampleEntrustRegistrationIds;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -57,11 +57,28 @@ public class ReportDocumentDataDO extends BusinessBaseDO {
|
|||||||
@TableField("RMK")
|
@TableField("RMK")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
//==================扩展字段===========
|
/**
|
||||||
|
* 附加内容
|
||||||
|
*/
|
||||||
|
@TableField("DOC_CNTT")
|
||||||
|
private String externalContent;
|
||||||
|
|
||||||
|
//样品编号
|
||||||
|
@TableField("SMP_CD")
|
||||||
|
private String sampleCode;
|
||||||
|
|
||||||
//样品名称
|
//样品名称
|
||||||
@TableField(exist = false)
|
@TableField("SMP_NAME")
|
||||||
private String sampleName;
|
private String sampleName;
|
||||||
|
|
||||||
|
//样品大类名称
|
||||||
|
@TableField("BSE_SMP_NAME")
|
||||||
|
private String baseSampleName;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//==================扩展字段===========
|
||||||
|
|
||||||
//样品创建时间
|
//样品创建时间
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private LocalDateTime baseSampleCreateTime;
|
private LocalDateTime baseSampleCreateTime;
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
package com.zt.plat.module.qms.business.reportdoc.dal.dataobject;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
|
||||||
|
/**
|
||||||
|
* 检测报告关系表 DO
|
||||||
|
*
|
||||||
|
* @author 后台管理
|
||||||
|
*/
|
||||||
|
@TableName("t_rpt_doc_main_corr")
|
||||||
|
@KeySequence("t_rpt_doc_main_corr_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
/**
|
||||||
|
* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
|
||||||
|
*/
|
||||||
|
public class ReportDocumentMainCorrelationDO extends BusinessBaseDO {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 报告id
|
||||||
|
*/
|
||||||
|
@TableField("MAIN_ID")
|
||||||
|
private Long mainId;
|
||||||
|
/**
|
||||||
|
* 关联id
|
||||||
|
*/
|
||||||
|
@TableField("CORR_ID")
|
||||||
|
private Long correlationId;
|
||||||
|
/**
|
||||||
|
* 关联类型
|
||||||
|
*/
|
||||||
|
@TableField("CORR_TP")
|
||||||
|
private String correlationType;
|
||||||
|
/**
|
||||||
|
* 所属部门
|
||||||
|
*/
|
||||||
|
@TableField("SYS_DEPT_CD")
|
||||||
|
private String systemDepartmentCode;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@TableField("RMK")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package com.zt.plat.module.qms.business.reportdoc.dal.mapper;
|
||||||
|
|
||||||
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
|
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationPageReqVO;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainCorrelationDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检测报告关系表 Mapper
|
||||||
|
*
|
||||||
|
* @author 后台管理
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ReportDocumentMainCorrelationMapper extends BaseMapperX<ReportDocumentMainCorrelationDO> {
|
||||||
|
|
||||||
|
default PageResult<ReportDocumentMainCorrelationDO> selectPage(ReportDocumentMainCorrelationPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<ReportDocumentMainCorrelationDO>()
|
||||||
|
.eqIfPresent(ReportDocumentMainCorrelationDO::getMainId, reqVO.getMainId())
|
||||||
|
.eqIfPresent(ReportDocumentMainCorrelationDO::getCorrelationId, reqVO.getCorrelationId())
|
||||||
|
.eqIfPresent(ReportDocumentMainCorrelationDO::getCorrelationType, reqVO.getCorrelationType())
|
||||||
|
.eqIfPresent(ReportDocumentMainCorrelationDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
|
||||||
|
.betweenIfPresent(ReportDocumentMainCorrelationDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.eqIfPresent(ReportDocumentMainCorrelationDO::getRemark, reqVO.getRemark())
|
||||||
|
.orderByDesc(ReportDocumentMainCorrelationDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -6,6 +6,11 @@ import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|||||||
import com.zt.plat.module.qms.business.reportdoc.controller.vo.*;
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.*;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO;
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.springframework.util.ObjectUtils;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检测报告业务 Mapper
|
* 检测报告业务 Mapper
|
||||||
@@ -17,6 +22,8 @@ public interface ReportDocumentMainMapper extends BaseMapperX<ReportDocumentMain
|
|||||||
|
|
||||||
|
|
||||||
default PageResult<ReportDocumentMainDO> selectPage(ReportDocumentMainPageReqVO reqVO) {
|
default PageResult<ReportDocumentMainDO> selectPage(ReportDocumentMainPageReqVO reqVO) {
|
||||||
|
String flowStatus = reqVO.getFlowStatus();
|
||||||
|
|
||||||
LambdaQueryWrapperX<ReportDocumentMainDO> wrapper = new LambdaQueryWrapperX<>();
|
LambdaQueryWrapperX<ReportDocumentMainDO> wrapper = new LambdaQueryWrapperX<>();
|
||||||
wrapper.ne(ReportDocumentMainDO::getCancelFlag, -1); //-1为临时数据
|
wrapper.ne(ReportDocumentMainDO::getCancelFlag, -1); //-1为临时数据
|
||||||
wrapper.eqIfPresent(ReportDocumentMainDO::getFlowInstanceId, reqVO.getFlowInstanceId());
|
wrapper.eqIfPresent(ReportDocumentMainDO::getFlowInstanceId, reqVO.getFlowInstanceId());
|
||||||
@@ -32,7 +39,11 @@ public interface ReportDocumentMainMapper extends BaseMapperX<ReportDocumentMain
|
|||||||
wrapper.betweenIfPresent(ReportDocumentMainDO::getDocumentStartTime, reqVO.getDocumentStartTime());
|
wrapper.betweenIfPresent(ReportDocumentMainDO::getDocumentStartTime, reqVO.getDocumentStartTime());
|
||||||
wrapper.betweenIfPresent(ReportDocumentMainDO::getDocumentEndTime, reqVO.getDocumentEndTime());
|
wrapper.betweenIfPresent(ReportDocumentMainDO::getDocumentEndTime, reqVO.getDocumentEndTime());
|
||||||
wrapper.eqIfPresent(ReportDocumentMainDO::getFormData, reqVO.getFormData());
|
wrapper.eqIfPresent(ReportDocumentMainDO::getFormData, reqVO.getFormData());
|
||||||
wrapper.eqIfPresent(ReportDocumentMainDO::getFlowStatus, reqVO.getFlowStatus());
|
// wrapper.eqIfPresent(ReportDocumentMainDO::getFlowStatus, reqVO.getFlowStatus());
|
||||||
|
if(!ObjectUtils.isEmpty(flowStatus)){
|
||||||
|
List<String> statusList = Arrays.asList(flowStatus.split(","));
|
||||||
|
wrapper.in(ReportDocumentMainDO::getFlowStatus, statusList);
|
||||||
|
}
|
||||||
wrapper.eqIfPresent(ReportDocumentMainDO::getCancelFlag, reqVO.getCancelFlag());
|
wrapper.eqIfPresent(ReportDocumentMainDO::getCancelFlag, reqVO.getCancelFlag());
|
||||||
wrapper.eqIfPresent(ReportDocumentMainDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode());
|
wrapper.eqIfPresent(ReportDocumentMainDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode());
|
||||||
wrapper.betweenIfPresent(ReportDocumentMainDO::getCreateTime, reqVO.getCreateTime());
|
wrapper.betweenIfPresent(ReportDocumentMainDO::getCreateTime, reqVO.getCreateTime());
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package com.zt.plat.module.qms.business.reportdoc.service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 动态报表数据接口
|
||||||
|
* */
|
||||||
|
public interface DynamicReportDataService {
|
||||||
|
}
|
||||||
@@ -1,9 +1,13 @@
|
|||||||
package com.zt.plat.module.qms.business.reportdoc.service;
|
package com.zt.plat.module.qms.business.reportdoc.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.controller.vo.*;
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.*;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO;
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentTypeDO;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -15,9 +19,13 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface ReportDocumentDataService {
|
public interface ReportDocumentDataService {
|
||||||
|
|
||||||
|
CommonResult<List<JSONObject>> assembleDynamicData(ReportDocumentMainDO mainData, ReportDocumentTypeDO reportConfig);
|
||||||
|
|
||||||
CommonResult<List<ReportDocumentDataDO>> listByMainDataId(Long mainDataId);
|
CommonResult<List<ReportDocumentDataDO>> listByMainDataId(Long mainDataId);
|
||||||
CommonResult<String> removeByMainIdAndDetailIds(Long mainDataId, List<Long> detailIds);
|
CommonResult<String> removeByMainIdAndDetailIds(Long mainDataId, List<Long> detailIds);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建检测报告明细
|
* 创建检测报告明细
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,21 +1,35 @@
|
|||||||
package com.zt.plat.module.qms.business.reportdoc.service;
|
package com.zt.plat.module.qms.business.reportdoc.service;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||||
|
import com.zt.plat.module.qms.business.config.controller.vo.ConfigReportFieldPageReqVO;
|
||||||
|
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigReportFieldDO;
|
||||||
|
import com.zt.plat.module.qms.business.config.service.ConfigReportFieldService;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.controller.vo.*;
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.*;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentTypeDO;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.dal.mapper.ReportDocumentDataMapper;
|
import com.zt.plat.module.qms.business.reportdoc.dal.mapper.ReportDocumentDataMapper;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO;
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.ObjectUtils;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.REPORT_DOCUMENT_DATA_NOT_EXISTS;
|
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.REPORT_DOCUMENT_DATA_NOT_EXISTS;
|
||||||
|
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.REPORT_DOCUMENT_TYPE_NOT_EXISTS;
|
||||||
|
import static com.zt.plat.module.qms.enums.QmsCommonConstant.FIELD_DYNAMIC;
|
||||||
|
import static com.zt.plat.module.qms.enums.QmsCommonConstant.FIELD_FIXED;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检测报告明细 Service 实现类
|
* 检测报告明细 Service 实现类
|
||||||
@@ -26,8 +40,249 @@ import static com.zt.plat.module.qms.enums.ErrorCodeConstants.REPORT_DOCUMENT_DA
|
|||||||
@Validated
|
@Validated
|
||||||
public class ReportDocumentDataServiceImpl implements ReportDocumentDataService {
|
public class ReportDocumentDataServiceImpl implements ReportDocumentDataService {
|
||||||
|
|
||||||
@Resource
|
@Resource private ReportDocumentDataMapper reportDocumentDataMapper;
|
||||||
private ReportDocumentDataMapper reportDocumentDataMapper;
|
@Resource private ConfigReportFieldService configReportFieldService;
|
||||||
|
private final String colPrefix = "col";
|
||||||
|
private final String sampleCodeKey = "SMP_CD";
|
||||||
|
private final String sampleNameKey = "SMP_NAME";
|
||||||
|
private final String name_code_merge = "merge";
|
||||||
|
private final String name_code_name = "name";
|
||||||
|
private final String name_code_code = "code";
|
||||||
|
private final String name_code_split = "split";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 组装动态报表数据
|
||||||
|
* */
|
||||||
|
@Override
|
||||||
|
public CommonResult<List<JSONObject>> assembleDynamicData(ReportDocumentMainDO mainData, ReportDocumentTypeDO typeDO) {
|
||||||
|
if(typeDO == null || typeDO.getConfigReportTypeId() == null)
|
||||||
|
return CommonResult.error(REPORT_DOCUMENT_TYPE_NOT_EXISTS, "报告配置为空,或未配置报表类型,请联系管理员处理!");
|
||||||
|
String customConfig = typeDO.getCustomConfig();
|
||||||
|
|
||||||
|
//查询报表字段配置
|
||||||
|
ConfigReportFieldPageReqVO fieldParam = new ConfigReportFieldPageReqVO();
|
||||||
|
fieldParam.setConfigReportTypeId(typeDO.getConfigReportTypeId());
|
||||||
|
fieldParam.setPageSize(9999);
|
||||||
|
List<ConfigReportFieldDO> fieldListAll = configReportFieldService.getConfigReportFieldPage(fieldParam).getList();
|
||||||
|
if(fieldListAll.isEmpty())
|
||||||
|
return CommonResult.error(REPORT_DOCUMENT_TYPE_NOT_EXISTS, "未配置报表字段,请联系管理员处理!");
|
||||||
|
List<ReportDocumentDataDO> dataList = listByMainDataId(mainData.getId()).getData();
|
||||||
|
//处理字段,提取有数据的字段
|
||||||
|
List<ConfigReportFieldDO> fieldList = new ArrayList<>();
|
||||||
|
List<String> hasFields = new ArrayList<>();
|
||||||
|
for(ConfigReportFieldDO fieldDO : fieldListAll){
|
||||||
|
String field = fieldDO.getField();
|
||||||
|
String fieldName = fieldDO.getFieldName();
|
||||||
|
String fieldType = fieldDO.getFieldType();
|
||||||
|
//先处理固定列
|
||||||
|
if(FIELD_FIXED.equals(fieldType)){
|
||||||
|
if(!hasFields.contains( field)){
|
||||||
|
fieldList.add(fieldDO);
|
||||||
|
hasFields.add(field);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for(ReportDocumentDataDO dataDO : dataList){
|
||||||
|
String documentContent = dataDO.getDocumentContent();
|
||||||
|
JSONObject dataJson = JSONObject.parseObject(documentContent);
|
||||||
|
if(dataJson.containsKey(field)){
|
||||||
|
if(!hasFields.contains( fieldName)){
|
||||||
|
fieldList.add(fieldDO);
|
||||||
|
hasFields.add(fieldName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//组装数据
|
||||||
|
List<JSONObject> step1Arr = assembleStep1(fieldList, dataList, customConfig); //处理后的组数对象
|
||||||
|
//移除第一个元素
|
||||||
|
step1Arr.remove(0);
|
||||||
|
return CommonResult.success(step1Arr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将数据按colCount分组。返回2维数组
|
||||||
|
* @param fieldList 处理过的字段列表。固定字段在最前
|
||||||
|
* @param customConfig 报告配置项
|
||||||
|
* */
|
||||||
|
private List<JSONObject> assembleStep1(List<ConfigReportFieldDO> fieldList, List<ReportDocumentDataDO> dataList, String customConfig){
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(customConfig);
|
||||||
|
Integer dynamicColCount = 3;
|
||||||
|
Integer fixedColCount = 3;
|
||||||
|
Integer maxRowCount = 3;
|
||||||
|
String dynamicColCountStr = jsonObject.getString("dynamicColCount");
|
||||||
|
String fixedColCountStr = jsonObject.getString("fixedColCount");
|
||||||
|
String maxRowCountStr = jsonObject.getString("maxRowCount");
|
||||||
|
String nameCodeType = jsonObject.getString("nameCodeType");
|
||||||
|
if(!ObjectUtils.isEmpty(dynamicColCountStr)) dynamicColCount = Integer.parseInt(dynamicColCountStr);
|
||||||
|
if(!ObjectUtils.isEmpty(fixedColCountStr)) fixedColCount = Integer.parseInt(fixedColCountStr);
|
||||||
|
|
||||||
|
if(!ObjectUtils.isEmpty(maxRowCountStr)) maxRowCount = Integer.parseInt(maxRowCountStr);
|
||||||
|
Integer eleCount = 0; //元素数量,即元素列总数
|
||||||
|
|
||||||
|
for(ConfigReportFieldDO fieldDO : fieldList){
|
||||||
|
String fieldType = fieldDO.getFieldType();
|
||||||
|
if(FIELD_DYNAMIC.equals(fieldType))
|
||||||
|
eleCount ++;
|
||||||
|
}
|
||||||
|
Integer rowCountOneSample = eleCount / dynamicColCount + (eleCount % dynamicColCount == 0 ? 0 : 1); //每个样品要占的行数
|
||||||
|
Integer colCountOneSample = fixedColCount + dynamicColCount; //每个样品要占的列数
|
||||||
|
Integer dataLength = dataList.size();
|
||||||
|
Integer emptyRowCount = dataLength < maxRowCount ? 1 : 0; //空行数
|
||||||
|
Integer allRowCount = 1 + dataLength + emptyRowCount + 1; //标题 + 样品数 + 空行
|
||||||
|
if(rowCountOneSample > 1){
|
||||||
|
allRowCount = (1 + dataLength + emptyRowCount + 9) * rowCountOneSample + emptyRowCount; //(标题 + 样品数 + 空行) * 但样品行数 + 末尾行
|
||||||
|
}
|
||||||
|
List<JSONObject> rowList = new ArrayList<>(Arrays.asList(new JSONObject[allRowCount + 1]));
|
||||||
|
|
||||||
|
//处理表头
|
||||||
|
JSONObject t = new JSONObject();
|
||||||
|
int rowAssist = 1;
|
||||||
|
int colIndex = 1;
|
||||||
|
boolean lastObjFlag = true;
|
||||||
|
for(ConfigReportFieldDO fieldDO : fieldList){
|
||||||
|
String fieldType = fieldDO.getFieldType();
|
||||||
|
if(FIELD_FIXED.equals(fieldType)){ //这里只处理动态列。固定列在 addTitleToRowList 处理
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String fieldName = fieldDO.getFieldName();
|
||||||
|
String colKey = parseNumToString(colIndex, 2);
|
||||||
|
t.put(colPrefix + colKey, fieldName);
|
||||||
|
lastObjFlag = true;
|
||||||
|
if(colIndex % colCountOneSample == 0){
|
||||||
|
addTitleToRowList(nameCodeType, rowAssist, t, dataLength, emptyRowCount, rowList, fieldList);
|
||||||
|
t = new JSONObject();
|
||||||
|
rowAssist++;
|
||||||
|
colIndex = fixedColCount; //第二组以后,从固定列数开始
|
||||||
|
lastObjFlag = false;
|
||||||
|
}
|
||||||
|
colIndex++;
|
||||||
|
}
|
||||||
|
if(lastObjFlag){
|
||||||
|
addTitleToRowList(nameCodeType, rowAssist, t, dataLength, emptyRowCount, rowList, fieldList);
|
||||||
|
}
|
||||||
|
//处理数据
|
||||||
|
int dataIndex = 1;
|
||||||
|
for(ReportDocumentDataDO dataDO : dataList){
|
||||||
|
String documentContent = dataDO.getDocumentContent();
|
||||||
|
JSONObject s = JSONObject.parseObject(documentContent);
|
||||||
|
colIndex = fixedColCount + 1;
|
||||||
|
rowAssist = 1;
|
||||||
|
t = new JSONObject();
|
||||||
|
for(ConfigReportFieldDO fieldDO : fieldList){
|
||||||
|
String fieldType = fieldDO.getFieldType();
|
||||||
|
if(FIELD_FIXED.equals(fieldType)){ //这里只处理动态列。固定列在 addDataToRowList 处理
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String field = fieldDO.getField();
|
||||||
|
String colKey = parseNumToString(colIndex, 2);
|
||||||
|
JSONObject fieldObj = s.getJSONObject( field);
|
||||||
|
String fieldValue = "";
|
||||||
|
if(fieldObj != null)
|
||||||
|
fieldValue = fieldObj.getString("fieldValue");
|
||||||
|
t.put(colPrefix + colKey, fieldValue);
|
||||||
|
lastObjFlag = true;
|
||||||
|
if(colIndex % colCountOneSample == 0){
|
||||||
|
addDataToRowList(nameCodeType, dataDO, rowAssist, t, dataLength, emptyRowCount, dataIndex, rowList, fieldList);
|
||||||
|
t = new JSONObject();
|
||||||
|
rowAssist++;
|
||||||
|
colIndex = fixedColCount + 1; //第二组以后,从固定列数开始
|
||||||
|
lastObjFlag = false;
|
||||||
|
}
|
||||||
|
colIndex++;
|
||||||
|
}
|
||||||
|
if(lastObjFlag){
|
||||||
|
addDataToRowList(nameCodeType, dataDO, rowAssist, t, dataLength, emptyRowCount, dataIndex, rowList, fieldList);
|
||||||
|
}
|
||||||
|
dataIndex ++;
|
||||||
|
}
|
||||||
|
return rowList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param nameCodeType: merge-合并, name-只显示名称, code-只显示编号, split-2列分开显示
|
||||||
|
*
|
||||||
|
* */
|
||||||
|
private void addTitleToRowList(String nameCodeType, Integer rowAssist, JSONObject t, Integer dataLength, Integer emptyRowCount, List<JSONObject> rowList, List<ConfigReportFieldDO> fieldList){
|
||||||
|
int rowIndex = (1 + dataLength + emptyRowCount) * (rowAssist - 1) + 1; //(标题 + 数据行 + 空行)
|
||||||
|
//处理固定列
|
||||||
|
int index = 1;
|
||||||
|
String colKey = parseNumToString(index, 2);
|
||||||
|
if(name_code_merge.equals(nameCodeType)){
|
||||||
|
t.put(colPrefix + colKey, "样品名称及编号");
|
||||||
|
rowList.set(rowIndex, t.clone());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(name_code_name.equals(nameCodeType)){
|
||||||
|
t.put(colPrefix + colKey, "样品名称");
|
||||||
|
rowList.set(rowIndex, t.clone());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(name_code_code.equals(nameCodeType)){
|
||||||
|
t.put(colPrefix + colKey, "样品编号");
|
||||||
|
rowList.set(rowIndex, t.clone());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for(ConfigReportFieldDO fieldDO : fieldList){
|
||||||
|
String fieldName = fieldDO.getFieldName();
|
||||||
|
String fieldType = fieldDO.getFieldType();
|
||||||
|
if(FIELD_DYNAMIC.equals(fieldType))
|
||||||
|
continue;
|
||||||
|
colKey = parseNumToString(index, 2);
|
||||||
|
t.put(colPrefix + colKey, fieldName);
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
rowList.set(rowIndex, t.clone());
|
||||||
|
}
|
||||||
|
private void addDataToRowList(String nameCodeType, ReportDocumentDataDO dataDO, Integer rowAssist, JSONObject t, Integer dataLength, Integer emptyRowCount, Integer dataIndex, List<JSONObject> rowList, List<ConfigReportFieldDO> fieldList){
|
||||||
|
int rowIndex = (1 + dataLength + emptyRowCount) * (rowAssist - 1) + dataIndex + 1; //(标题 + 数据行 + 空行)
|
||||||
|
//处理固定列
|
||||||
|
int index = 1;
|
||||||
|
//处理固定列
|
||||||
|
String colKey = parseNumToString(index, 2);
|
||||||
|
if(name_code_merge.equals(nameCodeType)){
|
||||||
|
String merge = dataDO.getSampleName() + " " + dataDO.getSampleCode();
|
||||||
|
t.put(colPrefix + colKey, merge);
|
||||||
|
rowList.set(rowIndex, t.clone());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(name_code_name.equals(nameCodeType)){
|
||||||
|
t.put(colPrefix + colKey, dataDO.getSampleName());
|
||||||
|
rowList.set(rowIndex, t.clone());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(name_code_code.equals(nameCodeType)){
|
||||||
|
t.put(colPrefix + colKey, dataDO.getSampleCode());
|
||||||
|
rowList.set(rowIndex, t.clone());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for(ConfigReportFieldDO fieldDO : fieldList){
|
||||||
|
String fieldName = fieldDO.getFieldName();
|
||||||
|
String fieldType = fieldDO.getFieldType();
|
||||||
|
String field = fieldDO.getField();
|
||||||
|
if(FIELD_FIXED.equals(fieldType)){
|
||||||
|
colKey = parseNumToString(index, 2);
|
||||||
|
String val = "";
|
||||||
|
if(sampleNameKey.equals( field))
|
||||||
|
val = dataDO.getSampleName();
|
||||||
|
else if(sampleCodeKey.equals( field))
|
||||||
|
val = dataDO.getSampleCode();
|
||||||
|
t.put(colPrefix + colKey, val);
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rowList.set(rowIndex, t.clone());
|
||||||
|
}
|
||||||
|
private String parseNumToString(int num, int len){
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for(int i = 0; i < len - String.valueOf(num).length(); i++){
|
||||||
|
sb.append("0");
|
||||||
|
}
|
||||||
|
return sb.append(num).toString();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommonResult<List<ReportDocumentDataDO>> listByMainDataId(Long mainDataId) {
|
public CommonResult<List<ReportDocumentDataDO>> listByMainDataId(Long mainDataId) {
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
package com.zt.plat.module.qms.business.reportdoc.service;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationPageReqVO;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationRespVO;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationSaveReqVO;
|
||||||
|
import jakarta.validation.*;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainCorrelationDO;
|
||||||
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检测报告关系表 Service 接口
|
||||||
|
*
|
||||||
|
* @author 后台管理
|
||||||
|
*/
|
||||||
|
public interface ReportDocumentMainCorrelationService {
|
||||||
|
|
||||||
|
public static final String CorrelationType_entrust = "entrust";
|
||||||
|
|
||||||
|
List<ReportDocumentMainCorrelationDO> listByMainId(Long mainId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建检测报告关系表
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
ReportDocumentMainCorrelationRespVO createReportDocumentMainCorrelation(@Valid ReportDocumentMainCorrelationSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新检测报告关系表
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateReportDocumentMainCorrelation(@Valid ReportDocumentMainCorrelationSaveReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除检测报告关系表
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteReportDocumentMainCorrelation(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除检测报告关系表
|
||||||
|
*
|
||||||
|
* @param ids 编号
|
||||||
|
*/
|
||||||
|
void deleteReportDocumentMainCorrelationListByIds(List<Long> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得检测报告关系表
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 检测报告关系表
|
||||||
|
*/
|
||||||
|
ReportDocumentMainCorrelationDO getReportDocumentMainCorrelation(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得检测报告关系表分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 检测报告关系表分页
|
||||||
|
*/
|
||||||
|
PageResult<ReportDocumentMainCorrelationDO> getReportDocumentMainCorrelationPage(ReportDocumentMainCorrelationPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
package com.zt.plat.module.qms.business.reportdoc.service;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationPageReqVO;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationRespVO;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationSaveReqVO;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainCorrelationDO;
|
||||||
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
|
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||||
|
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.dal.mapper.ReportDocumentMainCorrelationMapper;
|
||||||
|
|
||||||
|
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;
|
||||||
|
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.REPORT_DOCUMENT_MAIN_CORRELATION_NOT_EXISTS;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检测报告关系表 Service 实现类
|
||||||
|
*
|
||||||
|
* @author 后台管理
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class ReportDocumentMainCorrelationServiceImpl implements ReportDocumentMainCorrelationService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ReportDocumentMainCorrelationMapper reportDocumentMainCorrelationMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ReportDocumentMainCorrelationDO> listByMainId(Long mainId) {
|
||||||
|
LambdaQueryWrapper<ReportDocumentMainCorrelationDO> query = new LambdaQueryWrapper<>();
|
||||||
|
query.eq(ReportDocumentMainCorrelationDO::getMainId, mainId);
|
||||||
|
query.orderByAsc(ReportDocumentMainCorrelationDO::getId);
|
||||||
|
return reportDocumentMainCorrelationMapper.selectList(query);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ReportDocumentMainCorrelationRespVO createReportDocumentMainCorrelation(ReportDocumentMainCorrelationSaveReqVO createReqVO) {
|
||||||
|
// 插入
|
||||||
|
ReportDocumentMainCorrelationDO reportDocumentMainCorrelation = BeanUtils.toBean(createReqVO, ReportDocumentMainCorrelationDO.class);
|
||||||
|
reportDocumentMainCorrelationMapper.insert(reportDocumentMainCorrelation);
|
||||||
|
// 返回
|
||||||
|
return BeanUtils.toBean(reportDocumentMainCorrelation, ReportDocumentMainCorrelationRespVO.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateReportDocumentMainCorrelation(ReportDocumentMainCorrelationSaveReqVO updateReqVO) {
|
||||||
|
// 校验存在
|
||||||
|
validateReportDocumentMainCorrelationExists(updateReqVO.getId());
|
||||||
|
// 更新
|
||||||
|
ReportDocumentMainCorrelationDO updateObj = BeanUtils.toBean(updateReqVO, ReportDocumentMainCorrelationDO.class);
|
||||||
|
reportDocumentMainCorrelationMapper.updateById(updateObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteReportDocumentMainCorrelation(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateReportDocumentMainCorrelationExists(id);
|
||||||
|
// 删除
|
||||||
|
reportDocumentMainCorrelationMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteReportDocumentMainCorrelationListByIds(List<Long> ids) {
|
||||||
|
// 校验存在
|
||||||
|
validateReportDocumentMainCorrelationExists(ids);
|
||||||
|
// 删除
|
||||||
|
reportDocumentMainCorrelationMapper.deleteByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateReportDocumentMainCorrelationExists(List<Long> ids) {
|
||||||
|
List<ReportDocumentMainCorrelationDO> list = reportDocumentMainCorrelationMapper.selectByIds(ids);
|
||||||
|
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
|
||||||
|
throw exception(REPORT_DOCUMENT_MAIN_CORRELATION_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateReportDocumentMainCorrelationExists(Long id) {
|
||||||
|
if (reportDocumentMainCorrelationMapper.selectById(id) == null) {
|
||||||
|
throw exception(REPORT_DOCUMENT_MAIN_CORRELATION_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ReportDocumentMainCorrelationDO getReportDocumentMainCorrelation(Long id) {
|
||||||
|
return reportDocumentMainCorrelationMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<ReportDocumentMainCorrelationDO> getReportDocumentMainCorrelationPage(ReportDocumentMainCorrelationPageReqVO pageReqVO) {
|
||||||
|
return reportDocumentMainCorrelationMapper.selectPage(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ package com.zt.plat.module.qms.business.reportdoc.service;
|
|||||||
|
|
||||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayReportDataDO;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.controller.vo.*;
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.*;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO;
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
@@ -15,8 +16,14 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface ReportDocumentMainService {
|
public interface ReportDocumentMainService {
|
||||||
|
|
||||||
//添加数据到报告
|
//添加数据到报告-按样品
|
||||||
CommonResult<String> execAddData(ReportDocumentMainSaveReqVO reqVO);
|
CommonResult<String> execAddDataBySample(ReportDocumentMainSaveReqVO reqVO);
|
||||||
|
|
||||||
|
//添加数据到报告-按委托
|
||||||
|
CommonResult<String> execAddDataByEntrust(ReportDocumentMainSaveReqVO reqVO);
|
||||||
|
|
||||||
|
//添加数据到报告-按表表数据
|
||||||
|
CommonResult<String> execAddByBusinessAssayReportData(List<BusinessAssayReportDataDO> assayReportDataList, Long id);
|
||||||
|
|
||||||
//移除数据
|
//移除数据
|
||||||
CommonResult<String> execRemoveData(ReportDocumentMainSaveReqVO reqVO);
|
CommonResult<String> execRemoveData(ReportDocumentMainSaveReqVO reqVO);
|
||||||
|
|||||||
@@ -11,14 +11,14 @@ import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi;
|
|||||||
import com.zt.plat.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
|
import com.zt.plat.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
|
||||||
import com.zt.plat.module.qms.api.task.BMPCallbackInterface;
|
import com.zt.plat.module.qms.api.task.BMPCallbackInterface;
|
||||||
import com.zt.plat.module.qms.api.task.dto.QmsBpmDTO;
|
import com.zt.plat.module.qms.api.task.dto.QmsBpmDTO;
|
||||||
|
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayReportDataPageReqVO;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayReportDataDO;
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayReportDataDO;
|
||||||
import com.zt.plat.module.qms.business.bus.service.BusinessAssayReportDataService;
|
import com.zt.plat.module.qms.business.bus.service.BusinessAssayReportDataService;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.controller.vo.*;
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.*;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO;
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO;
|
||||||
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainCorrelationDO;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.dal.mapper.ReportDocumentMainMapper;
|
import com.zt.plat.module.qms.business.reportdoc.dal.mapper.ReportDocumentMainMapper;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO;
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO;
|
||||||
import com.zt.plat.module.qms.core.constant.CommonConstant;
|
|
||||||
import com.zt.plat.module.qms.enums.ErrorCodeConstants;
|
|
||||||
import com.zt.plat.module.qms.enums.QmsBpmConstant;
|
import com.zt.plat.module.qms.enums.QmsBpmConstant;
|
||||||
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
@@ -52,13 +52,14 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService,
|
|||||||
@Resource private BusinessAssayReportDataService businessAssayReportDataService;
|
@Resource private BusinessAssayReportDataService businessAssayReportDataService;
|
||||||
@Resource private ReportDocumentDataService reportDocumentDataService;
|
@Resource private ReportDocumentDataService reportDocumentDataService;
|
||||||
@Resource private BpmProcessInstanceApi bpmProcessInstanceApi;
|
@Resource private BpmProcessInstanceApi bpmProcessInstanceApi;
|
||||||
|
@Resource private ReportDocumentMainCorrelationService reportDocumentMainCorrelationService;
|
||||||
/***
|
/***
|
||||||
* 增加报表数据
|
* 增加报表数据(按样品)
|
||||||
* 传入:报告id、 报表数据ids
|
* 传入:报告id、 报表数据ids
|
||||||
* */
|
* */
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public CommonResult<String> execAddData(ReportDocumentMainSaveReqVO reqVO) {
|
public CommonResult<String> execAddDataBySample(ReportDocumentMainSaveReqVO reqVO) {
|
||||||
Long id = reqVO.getId();
|
Long id = reqVO.getId();
|
||||||
String businessAssayReportDataIds = reqVO.getBusinessAssayReportDataIds();
|
String businessAssayReportDataIds = reqVO.getBusinessAssayReportDataIds();
|
||||||
List<Long> addReportDataIdList = new ArrayList<>();
|
List<Long> addReportDataIdList = new ArrayList<>();
|
||||||
@@ -83,20 +84,65 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService,
|
|||||||
if(isExist)
|
if(isExist)
|
||||||
return error(REPORT_DOCUMENT_DATA_NOT_EXISTS.getCode(), "报表数据已在本报告使用,请勿重复添加");
|
return error(REPORT_DOCUMENT_DATA_NOT_EXISTS.getCode(), "报表数据已在本报告使用,请勿重复添加");
|
||||||
List<BusinessAssayReportDataDO> assayReportDataList = businessAssayReportDataService.listByIds(addReportDataIdList);
|
List<BusinessAssayReportDataDO> assayReportDataList = businessAssayReportDataService.listByIds(addReportDataIdList);
|
||||||
|
return execAddByBusinessAssayReportData(assayReportDataList, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public CommonResult<String> execAddDataByEntrust(ReportDocumentMainSaveReqVO reqVO) {
|
||||||
|
Long id = reqVO.getId();
|
||||||
|
String businessSampleEntrustRegistrationIds = reqVO.getBusinessSampleEntrustRegistrationIds();
|
||||||
|
if(ObjectUtils.isEmpty(businessSampleEntrustRegistrationIds) || id == null)
|
||||||
|
return error(REPORT_DOCUMENT_DATA_NOT_EXISTS.getCode(), "缺少businessSampleEntrustRegistrationIds参数,请刷新后重试");
|
||||||
|
List<ReportDocumentMainCorrelationDO> reportRelationList = reportDocumentMainCorrelationService.listByMainId(id);
|
||||||
|
//todo 判断修改的场景。处理方法:删除reportRelation、ReportDocumentData
|
||||||
|
List<Long> businessSampleEntrustRegistrationIdList = new ArrayList<>();
|
||||||
|
String[] split = businessSampleEntrustRegistrationIds.split(",");
|
||||||
|
for (String s : split) {
|
||||||
|
Long aLong = Long.valueOf(s);
|
||||||
|
businessSampleEntrustRegistrationIdList.add(aLong);
|
||||||
|
}
|
||||||
|
BusinessAssayReportDataPageReqVO reportDataQueryVo = new BusinessAssayReportDataPageReqVO();
|
||||||
|
reportDataQueryVo.setBusinessSampleEntrustRegistrationIdList(businessSampleEntrustRegistrationIdList);
|
||||||
|
reportDataQueryVo.setPageNo(1);
|
||||||
|
reportDataQueryVo.setPageSize(9999);
|
||||||
|
PageResult<BusinessAssayReportDataDO> assayReportPage = businessAssayReportDataService.queryWaitingDataForReport( reportDataQueryVo);
|
||||||
|
List<BusinessAssayReportDataDO> assayReportDataList = assayReportPage.getList();
|
||||||
|
CommonResult<String> ret = execAddByBusinessAssayReportData(assayReportDataList, id);
|
||||||
|
if(!ret.isSuccess())
|
||||||
|
return ret;
|
||||||
|
//保存报告关系表
|
||||||
|
for(Long businessSampleEntrustRegistrationId : businessSampleEntrustRegistrationIdList){
|
||||||
|
ReportDocumentMainCorrelationSaveReqVO correlationEntity = new ReportDocumentMainCorrelationSaveReqVO();
|
||||||
|
correlationEntity.setMainId( id);
|
||||||
|
correlationEntity.setCorrelationId(businessSampleEntrustRegistrationId);
|
||||||
|
correlationEntity.setCorrelationType(ReportDocumentMainCorrelationService.CorrelationType_entrust);
|
||||||
|
reportDocumentMainCorrelationService.createReportDocumentMainCorrelation(correlationEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
return CommonResult.success("操作成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommonResult<String> execAddByBusinessAssayReportData(List<BusinessAssayReportDataDO> assayReportDataList, Long id){
|
||||||
|
if(ObjectUtils.isEmpty(assayReportDataList))
|
||||||
|
return error(REPORT_DOCUMENT_DATA_NOT_EXISTS.getCode(), "您选择的委托还没产生可编制报告的数据,请稍后重试!");
|
||||||
List<ReportDocumentDataDO> insertList = new ArrayList<>();
|
List<ReportDocumentDataDO> insertList = new ArrayList<>();
|
||||||
for (BusinessAssayReportDataDO assayReportData : assayReportDataList) {
|
for (BusinessAssayReportDataDO assayReportData : assayReportDataList) {
|
||||||
ReportDocumentDataDO reportDocumentDataDO = new ReportDocumentDataDO();
|
ReportDocumentDataDO reportDocumentDataDO = new ReportDocumentDataDO();
|
||||||
reportDocumentDataDO.setMainId(id);
|
reportDocumentDataDO.setMainId(id);
|
||||||
reportDocumentDataDO.setSourceId(assayReportData.getId());
|
reportDocumentDataDO.setSourceId(assayReportData.getId());
|
||||||
|
reportDocumentDataDO.setSampleCode(assayReportData.getSampleCode());
|
||||||
|
reportDocumentDataDO.setSampleName(assayReportData.getSampleName());
|
||||||
|
reportDocumentDataDO.setBaseSampleName(assayReportData.getBaseSampleName());
|
||||||
reportDocumentDataDO.setDocumentContent(assayReportData.getAssayData());
|
reportDocumentDataDO.setDocumentContent(assayReportData.getAssayData());
|
||||||
insertList.add(reportDocumentDataDO);
|
insertList.add(reportDocumentDataDO);
|
||||||
}
|
}
|
||||||
if(!insertList.isEmpty())
|
if(!insertList.isEmpty())
|
||||||
reportDocumentDataService.insertBatch(insertList);
|
reportDocumentDataService.insertBatch(insertList);
|
||||||
|
|
||||||
ReportDocumentMainDO reportDocumentMainDO = reportDocumentMainMapper.selectById(id);
|
ReportDocumentMainDO reportDocumentMainDO = reportDocumentMainMapper.selectById(id);
|
||||||
updateCommonField(reportDocumentMainDO);
|
updateCommonField(reportDocumentMainDO);
|
||||||
|
reportDocumentMainMapper.updateById(reportDocumentMainDO);
|
||||||
return CommonResult.success("操作成功");
|
return CommonResult.success("操作成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface ReportDocumentTypeService {
|
public interface ReportDocumentTypeService {
|
||||||
|
|
||||||
|
|
||||||
/*保存数据*/
|
/*保存数据*/
|
||||||
CommonResult<String> save(@Valid ReportDocumentTypeSaveReqVO reqV);
|
CommonResult<String> save(@Valid ReportDocumentTypeSaveReqVO reqV);
|
||||||
CommonResult<String> saveWithNewVersion(@Valid ReportDocumentTypeSaveReqVO reqV);
|
CommonResult<String> saveWithNewVersion(@Valid ReportDocumentTypeSaveReqVO reqV);
|
||||||
|
|||||||
@@ -30,18 +30,31 @@
|
|||||||
d.CREATOR_NAME as creatorName,
|
d.CREATOR_NAME as creatorName,
|
||||||
d.DELETED as deleted,
|
d.DELETED as deleted,
|
||||||
s.CREATE_TIME as baseSampleCreateTime,
|
s.CREATE_TIME as baseSampleCreateTime,
|
||||||
s.SMP_NAME as sampleName
|
s.SMP_NAME as sampleName,
|
||||||
|
s.BSE_SMP_NAME as baseSampleName
|
||||||
FROM T_BSN_ASY_RPT_DAT d
|
FROM T_BSN_ASY_RPT_DAT d
|
||||||
inner join T_BSN_BSE_SMP s on d.BSN_BSE_SMP_ID = s.id
|
inner join T_BSN_BSE_SMP s on d.BSN_BSE_SMP_ID = s.id
|
||||||
<where>
|
<where>
|
||||||
and d.CFG_RPT_TP_ID = #{param.configReportTypeId}
|
<if test="param.configReportTypeId != null and param.configReportTypeId != ''">
|
||||||
and NOT EXISTS (
|
and d.CFG_RPT_TP_ID = #{param.configReportTypeId}
|
||||||
SELECT 1
|
and NOT EXISTS (
|
||||||
FROM T_RPT_DOC_DAT rd
|
SELECT 1
|
||||||
LEFT JOIN T_RPT_DOC_MAIN m on rd.MAIN_ID = m.ID
|
FROM T_RPT_DOC_DAT rd
|
||||||
WHERE rd.SRC_ID = d.id
|
LEFT JOIN T_RPT_DOC_MAIN m on rd.MAIN_ID = m.ID
|
||||||
and m.RPT_DOC_TP = #{param.configReportTypeId}
|
WHERE rd.SRC_ID = d.id
|
||||||
);
|
and m.RPT_DOC_TP = #{param.configReportTypeId}
|
||||||
|
);
|
||||||
|
</if>
|
||||||
|
<if test="param.businessSampleEntrustRegistrationIdList != null and param.businessSampleEntrustRegistrationIdList.size > 0">
|
||||||
|
d.BSN_BSE_SMP_ID in (
|
||||||
|
select BSN_BSE_SMP_ID from T_BSN_SMP_ENTT_DTL d
|
||||||
|
where d.BSN_SMP_ENTT_REG_ID in (
|
||||||
|
<foreach item="item" collection="param.businessSampleEntrustRegistrationIdList" separator=",">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
)
|
||||||
|
)
|
||||||
|
</if>
|
||||||
<if test="param.sampleCode != null and param.sampleCode != ''">
|
<if test="param.sampleCode != null and param.sampleCode != ''">
|
||||||
and d.SMP_CD like '%' || #{param.sampleCode} || '%'
|
and d.SMP_CD like '%' || #{param.sampleCode} || '%'
|
||||||
</if>
|
</if>
|
||||||
|
|||||||
@@ -9,4 +9,78 @@
|
|||||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
<select id="queryWaitingDataForReport" resultType="com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustRegistrationDO">
|
||||||
|
-- SELECT d.*,
|
||||||
|
select
|
||||||
|
m.ID as id,
|
||||||
|
m.ENTT_ID as entrustId,
|
||||||
|
m.ENTT_NUM as entrustNumber,
|
||||||
|
m.ENTT_UNT as entrustUnit,
|
||||||
|
m.CFG_ENTT_SRC_ID as configEntrustSourceId,
|
||||||
|
m.SMP_QTY as sampleQuantity,
|
||||||
|
m.TSK_QTY as taskQuantity,
|
||||||
|
m.TSK_FIND_QTY as taskFinishedQuantity,
|
||||||
|
m.RMNE_SMP_REQM as remaineSampleRequirement,
|
||||||
|
m.CRT_WY as createWay,
|
||||||
|
m.ENTT_TP as entrustType,
|
||||||
|
m.ENTT_TM as entrustTime,
|
||||||
|
m.SMP_SNDR as sampleSender,
|
||||||
|
m.SMP_SND_DT as sampleSendDate,
|
||||||
|
m.SMP_RCVR as sampleReceiver,
|
||||||
|
m.SMP_RCV_DT as sampleReceiveDate,
|
||||||
|
m.SMP_STS as sampleStatus,
|
||||||
|
m.EXT_INF_DAT_COLT_ID as externalInfomationDataCollectionId,
|
||||||
|
m.EXT_INF as externalInfomation,
|
||||||
|
m.CFG_RPT_TMPL_ID as configReportTemplateId,
|
||||||
|
m.CFG_RPT_TMPL_KY as configReportTemplateKey,
|
||||||
|
m.TEL as tel,
|
||||||
|
m.FAX as fax,
|
||||||
|
m.ADR as address,
|
||||||
|
m.PSTL as postal,
|
||||||
|
m.EM as email,
|
||||||
|
m.ENTT_CTGR as entrustCategory,
|
||||||
|
m.SMP_CTGR as sampleCategory,
|
||||||
|
m.SMP_ORGN as sampleOrigin,
|
||||||
|
m.SCRY_REQR as secrecyRequire,
|
||||||
|
m.ASY_MTHD as assayMethod,
|
||||||
|
m.REG_STS as registrationStatus,
|
||||||
|
m.DAT_CHK_STS as dataCheckStatus,
|
||||||
|
m.ASY_STS as assayStatus,
|
||||||
|
m.DAT_STS as dataStatus,
|
||||||
|
m.DOC_MAIN_ID as documentMainId,
|
||||||
|
m.DOC_SND_WY as documentSendWay,
|
||||||
|
m.DOC_PUBR as documentPublisher,
|
||||||
|
m.DOC_PUBR_DT as documentPublisherDate,
|
||||||
|
m.DOC_RCVR as documentReceiver,
|
||||||
|
m.DOC_RCV_DT as documentReceiveDate,
|
||||||
|
m.SYS_DEPT_CD as systemDepartmentCode,
|
||||||
|
m.UPD_CNT as updateCount,
|
||||||
|
m.RMK as remark,
|
||||||
|
es.name as configEntrustSourceName
|
||||||
|
FROM T_BSN_SMP_ENTT_REG m
|
||||||
|
left join T_CFG_ENTT_SRC es on m.CFG_ENTT_SRC_ID = es.id
|
||||||
|
<where>
|
||||||
|
and NOT EXISTS (
|
||||||
|
select 1 from T_RPT_DOC_MAIN dm left join T_RPT_DOC_MAIN_CORR dc on dm.id = dc.MAIN_ID
|
||||||
|
where dc.CORR_ID = m.id and dm.deleted = 0
|
||||||
|
)
|
||||||
|
<if test="param.entrustType != null and param.entrustType != ''">
|
||||||
|
and m.ENTT_TP = #{param.entrustType}
|
||||||
|
</if>
|
||||||
|
<if test="param.entrustTime != null and param.entrustTime.length > 0">
|
||||||
|
and m.ENTT_TM between #{param.entrustTime[0]} and #{param.entrustTime[1]}
|
||||||
|
</if>
|
||||||
|
<if test="param.entrustNumber != null and param.entrustNumber != ''">
|
||||||
|
and m.ENTT_NUM like concat('%',#{param.entrustNumber},'%')
|
||||||
|
</if>
|
||||||
|
<if test="param.entrustUnit != null and param.entrustUnit != ''">
|
||||||
|
and m.ENTT_UNT like concat('%',#{param.entrustUnit},'%')
|
||||||
|
</if>
|
||||||
|
and m.deleted = 0
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<?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="com.zt.plat.module.qms.business.reportdoc.dal.mapper.ReportDocumentMainCorrelationMapper">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
||||||
|
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
|
||||||
|
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
||||||
|
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||||
|
-->
|
||||||
|
|
||||||
|
</mapper>
|
||||||
Reference in New Issue
Block a user