diff --git a/pom.xml b/pom.xml
index 76d47d8..fb8787e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,7 +17,7 @@
https://github.com/YunaiV/ruoyi-vue-pro
- 3.0.41
+ 3.0.42
17
${java.version}
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/ReportDocumentMainController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/ReportDocumentMainController.java
index bf2971f..ca6d450 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/ReportDocumentMainController.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/ReportDocumentMainController.java
@@ -11,16 +11,11 @@ import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.excel.core.util.ExcelUtils;
-import com.zt.plat.framework.security.core.LoginUser;
-import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
-import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi;
-import com.zt.plat.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
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.service.ReportDocumentMainService;
import com.zt.plat.module.qms.business.reportdoc.service.ReportDocumentTypeService;
-import com.zt.plat.module.qms.enums.ErrorCodeConstants;
import com.zt.plat.module.qms.enums.QmsCommonConstant;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@@ -29,23 +24,16 @@ import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.util.List;
-import java.util.Map;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
-import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception0;
import static com.zt.plat.framework.common.pojo.CommonResult.error;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
-import static com.zt.plat.module.qms.enums.ErrorCodeConstants.ERROR_CODE_MODULE_COMMON;
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.REPORT_DOCUMENT_TYPE_NOT_EXISTS;
-import static com.zt.plat.module.qms.enums.QmsBpmConstant.BPM_CALLBACK_BEAN_NAME;
@Tag(name = "管理后台 - 检测报告业务")
@RestController
@@ -65,7 +53,7 @@ public class ReportDocumentMainController extends AbstractFileUploadController i
@Resource private ReportDocumentTypeService reportDocumentTypeService;
@PostMapping("/create")
- @Operation(summary = "创建检测报告业务")
+ @Operation(summary = "创建检测报告")
@PreAuthorize("@ss.hasPermission('qms:report-document-main:create')")
public CommonResult createReportDocumentMain(@Valid @RequestBody ReportDocumentMainSaveReqVO createReqVO) {
return success(reportDocumentMainService.createReportDocumentMain(createReqVO));
@@ -91,44 +79,11 @@ public class ReportDocumentMainController extends AbstractFileUploadController i
return success(reportDocumentMainService.createReportDocumentMain(vo));
}
-// @Resource private BpmProcessInstanceApi bpmProcessInstanceApi;
-// @Override
-// @Transactional(rollbackFor = Exception.class)
-// public CommonResult createProcessInstance(ReportDocumentMainSaveReqVO entity) {
-// LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
-// Long id = entity.getId();
-// DataFormDO dataForm = getDataForm(id);
-// Long dataCollectionId = dataForm.getDataCollectionId();
-// DataCollectionDO dataCollection = dataCollectionService.getDataCollection(dataCollectionId);
-// if(dataCollection == null)
-// throw exception(ErrorCodeConstants.DATA_FORM_EMPTY_COLLECTION_ID);
-// if(ObjectUtils.isEmpty(dataCollection.getFlowKey()))
-// throw exception(ErrorCodeConstants.DATA_COLLECTION_EMPTY_WF_KEY);
-// JSONObject formData = new JSONObject();
-// if(dataForm.getFormData() != null)
-// formData = JSONObject.parseObject(dataForm.getFormData());
-// formData.put("mainId", id);
-// formData.put("applyUser", dataForm.getApplyUser());
-// formData.put("applyUserId", dataForm.getApplyUserId());
-// formData.put("applyDepartment", dataForm.getApplyDepartment());
-// formData.put("applyDepartmentId", dataForm.getApplyDepartmentId());
-// formData.put("applyTime", dataForm.getApplyTime());
-// Map variables = formData.toJavaObject(Map.class);
-// variables.put(BPM_CALLBACK_BEAN_NAME, "dataFormService");
-// BpmProcessInstanceCreateReqDTO reqDTO = new BpmProcessInstanceCreateReqDTO();
-// reqDTO.setBusinessKey(String.valueOf(id));
-// reqDTO.setProcessDefinitionKey(dataCollection.getFlowKey());
-// reqDTO.setVariables(variables);
-// CommonResult result = bpmProcessInstanceApi.createProcessInstance(loginUser.getId(), reqDTO);
-// if(!result.isSuccess()){
-// throw exception0(ERROR_CODE_MODULE_COMMON, result.getMsg());
-// }
-// String wfInsId = result.getData();
-// dataForm.setFlowInstanceId(wfInsId);
-// dataFormMapper.updateById(dataForm);
-// return BeanUtils.toBean(dataForm, DataFormRespVO.class);
-// }
-
+ @PostMapping("/createProcessInstance")
+ @Operation(summary = "发起流程")
+ public CommonResult createProcessInstance(@Valid @RequestBody ReportDocumentMainSaveReqVO createReqVO) {
+ return reportDocumentMainService.createProcessInstance(createReqVO);
+ }
@PostMapping("/execAddData")
@Operation(summary = "增加数据")
@@ -146,6 +101,7 @@ public class ReportDocumentMainController extends AbstractFileUploadController i
@Operation(summary = "更新检测报告业务")
@PreAuthorize("@ss.hasPermission('qms:report-document-main:update')")
public CommonResult updateReportDocumentMain(@Valid @RequestBody ReportDocumentMainSaveReqVO updateReqVO) {
+ updateReqVO.setCancelFlag("0");
reportDocumentMainService.updateReportDocumentMain(updateReqVO);
return success(true);
}
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainPageReqVO.java
index e3ad7b0..6c6e9d9 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainPageReqVO.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainPageReqVO.java
@@ -15,7 +15,7 @@ import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
public class ReportDocumentMainPageReqVO extends PageParam {
@Schema(description = "流程实例ID", example = "10765")
- private Long flowInstanceId;
+ private String flowInstanceId;
@Schema(description = "报告类型ID", example = "2124")
private Long reportDocumentTypeId;
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainRespVO.java
index d33f7d3..2bb3930 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainRespVO.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainRespVO.java
@@ -19,7 +19,7 @@ public class ReportDocumentMainRespVO {
@Schema(description = "流程实例ID", example = "10765")
@ExcelProperty("流程实例ID")
- private Long flowInstanceId;
+ private String flowInstanceId;
@Schema(description = "报告类型ID", example = "2124")
@ExcelProperty("报告类型ID")
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainSaveReqVO.java
index f0135e9..cec7ea5 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainSaveReqVO.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainSaveReqVO.java
@@ -15,7 +15,7 @@ public class ReportDocumentMainSaveReqVO {
private Long id;
@Schema(description = "流程实例ID", example = "10765")
- private Long flowInstanceId;
+ private String flowInstanceId;
@Schema(description = "报告类型ID", example = "2124")
private Long reportDocumentTypeId;
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/dataobject/ReportDocumentMainDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/dataobject/ReportDocumentMainDO.java
index 56c7b10..a04c459 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/dataobject/ReportDocumentMainDO.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/dataobject/ReportDocumentMainDO.java
@@ -35,7 +35,7 @@ public class ReportDocumentMainDO extends BusinessBaseDO {
* 流程实例ID
*/
@TableField("FLW_INSC_ID")
- private Long flowInstanceId;
+ private String flowInstanceId;
/**
* 报告类型ID
*/
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainServiceImpl.java
index 35d956e..e739313 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainServiceImpl.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainServiceImpl.java
@@ -1,41 +1,57 @@
package com.zt.plat.module.qms.business.reportdoc.service;
import cn.hutool.core.collection.CollUtil;
+import com.alibaba.fastjson.JSONObject;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
+import com.zt.plat.framework.security.core.LoginUser;
+import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
+import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi;
+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.dto.QmsBpmDTO;
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.reportdoc.controller.vo.*;
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO;
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.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.QmsCommonConstant;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
+import java.util.Map;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception0;
import static com.zt.plat.framework.common.pojo.CommonResult.error;
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*;
+import static com.zt.plat.module.qms.enums.QmsBpmConstant.BPM_CALLBACK_BEAN_NAME;
/**
* 检测报告业务 Service 实现类
*
* @author 后台管理
*/
-@Service
+@Service("reportDocumentMainService")
@Validated
-public class ReportDocumentMainServiceImpl implements ReportDocumentMainService {
+public class ReportDocumentMainServiceImpl implements ReportDocumentMainService, BMPCallbackInterface {
@Resource private ReportDocumentMainMapper reportDocumentMainMapper;
@Resource private BusinessAssayReportDataService businessAssayReportDataService;
@Resource private ReportDocumentDataService reportDocumentDataService;
-
+ @Resource private BpmProcessInstanceApi bpmProcessInstanceApi;
/***
* 增加报表数据
* 传入:报告id、 报表数据ids
@@ -172,7 +188,65 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService
}
@Override
- public CommonResult createProcessInstance(ReportDocumentMainSaveReqVO entity) {
- return null;
+ @Transactional(rollbackFor = Exception.class)
+ public CommonResult createProcessInstance(ReportDocumentMainSaveReqVO param) {
+ LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
+ //当前登录用户昵称
+ String nickName = SecurityFrameworkUtils.getLoginUserNickname();
+ Long id = param.getId();
+ ReportDocumentMainDO entity = getReportDocumentMain(id);
+ JSONObject formData = new JSONObject();
+ if(entity.getFormData() != null)
+ formData = JSONObject.parseObject(entity.getFormData());
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+ formData.put("mainId", id);
+ formData.put("applyUser", nickName);
+ formData.put("applyUserId", loginUser.getId());
+ formData.put("applyDepartment", loginUser.getVisitDeptName());
+ formData.put("applyDepartmentId", loginUser.getVisitDeptId());
+ formData.put("applyTime", sdf.format(new Date()));
+ Map variables = formData.toJavaObject(Map.class);
+ variables.put(BPM_CALLBACK_BEAN_NAME, "reportDocumentMainService"); //流程回调时使用的service
+ BpmProcessInstanceCreateReqDTO reqDTO = new BpmProcessInstanceCreateReqDTO();
+ reqDTO.setBusinessKey(String.valueOf(id));
+ reqDTO.setProcessDefinitionKey(entity.getFlowKey());
+ reqDTO.setVariables(variables);
+ CommonResult result = bpmProcessInstanceApi.createProcessInstance(loginUser.getId(), reqDTO);
+ if(!result.isSuccess()){
+ throw exception0(ERROR_CODE_MODULE_COMMON, result.getMsg());
+ }
+ String wfInsId = result.getData();
+ entity.setFlowInstanceId(wfInsId);
+ entity.setFlowStatus(QmsCommonConstant.IN_PROGRESS);
+ reportDocumentMainMapper.updateById(entity);
+ ReportDocumentMainRespVO respVO = BeanUtils.toBean(entity, ReportDocumentMainRespVO.class);
+ return CommonResult.success(respVO);
+ }
+
+ //流程回调
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public CommonResult callback(QmsBpmDTO reqDTO) {
+ JSONObject variables = reqDTO.getVariables();
+ //流程状态 3-拒绝 1-通过 2-完成
+ String PROCESS_STATUS = variables.getString(QmsBpmConstant.PROCESS_INSTANCE_VARIABLE_STATUS);
+ String mainId = variables.getString("mainId");
+ ReportDocumentMainDO entity = getReportDocumentMain(Long.valueOf(mainId));
+ if("3".equals(PROCESS_STATUS)){
+ //驳回
+ entity.setFlowStatus(QmsCommonConstant.REJECT);
+ }
+ if("2".equals(PROCESS_STATUS)){
+ //完成
+ entity.setFlowStatus(QmsCommonConstant.COMPLETED);
+ }
+ //todo 处理意见和签名
+
+ reportDocumentMainMapper.updateById(entity);
+ JSONObject ret = new JSONObject();
+
+
+ return CommonResult.success(ret);
}
}