diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
index ae7a28d..4461f67 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
@@ -10,6 +10,7 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.Info.*;
+import com.casic.missiles.dto.customer.MeasureRecordsResponse;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerInfo;
@@ -119,13 +120,20 @@
return ReturnUtil.success(super.packForBT(customerService.certificationByCustomerId(idDTO.getId())));
}
+ @ApiOperation("根据客户id查询检定记录(在样品中实现,可复用)")
+ @PostMapping("/fake/interface")
+ public ReturnDTO> measureRecordsBySampleId() {
+ return null;
+ }
+
@ApiOperation("客户导出")
@PostMapping("/export")
- public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response){
+ public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response) {
customerService.customerExport(request, response);
}
- //*******************************************************************************************************************//
+
+ //*******************************************************************************************************************//
// @ApiOperation("客户批量导入")
// @PostMapping("/batchImport")
// public ReturnDTO exportAdvice(@RequestBody @Valid CustomerAdviceInfo customerAdviceInfo, BindingResult bindingResult) {
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
index ae7a28d..4461f67 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
@@ -10,6 +10,7 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.Info.*;
+import com.casic.missiles.dto.customer.MeasureRecordsResponse;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerInfo;
@@ -119,13 +120,20 @@
return ReturnUtil.success(super.packForBT(customerService.certificationByCustomerId(idDTO.getId())));
}
+ @ApiOperation("根据客户id查询检定记录(在样品中实现,可复用)")
+ @PostMapping("/fake/interface")
+ public ReturnDTO> measureRecordsBySampleId() {
+ return null;
+ }
+
@ApiOperation("客户导出")
@PostMapping("/export")
- public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response){
+ public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response) {
customerService.customerExport(request, response);
}
- //*******************************************************************************************************************//
+
+ //*******************************************************************************************************************//
// @ApiOperation("客户批量导入")
// @PostMapping("/batchImport")
// public ReturnDTO exportAdvice(@RequestBody @Valid CustomerAdviceInfo customerAdviceInfo, BindingResult bindingResult) {
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
index c7d6b3f..101a5d0 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
@@ -10,9 +10,9 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.MeasureRecordsResponse;
+import com.casic.missiles.dto.customer.sample.CustomerSampleIdRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListResponse;
-import com.casic.missiles.dto.customer.sample.MeasureRecordsIdRequest;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerSampleInfo;
@@ -94,20 +94,18 @@
customerSampleService.sampleExport(request, response);
}
- @ApiOperation("根据样品id或客户id查询检定记录")
- @PostMapping("/measureRecordsBySampleId")
- public ReturnDTO> mesureRecordsBySampleId(@RequestBody MeasureRecordsIdRequest recordsIdRequest) {
- return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsBySampleId(recordsIdRequest)));
+ @ApiOperation("根据样品id/客户id查询检定记录")
+ @PostMapping("/measureRecordsById")
+ public ReturnDTO> measureRecordsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) {
+ return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsById(customerSampleIdRequest)));
}
- @ApiOperation("根据样品id查询检定证书")
- @PostMapping("/certificationBySampleId")
- public ReturnDTO> certificationBySampleId(@RequestBody @Valid IdDTO idDTO) {
- Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- return ReturnUtil.success(super.packForBT(customerSampleService.certificationBySampleId(idDTO.getId())));
+ @ApiOperation("根据样品id/客户id查询检定证书")
+ @PostMapping("/certificateRecordsById")
+ public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{
+ return ReturnUtil.success(super.packForBT(customerSampleService.certificateRecordsById(customerSampleIdRequest)));
}
+
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
index ae7a28d..4461f67 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
@@ -10,6 +10,7 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.Info.*;
+import com.casic.missiles.dto.customer.MeasureRecordsResponse;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerInfo;
@@ -119,13 +120,20 @@
return ReturnUtil.success(super.packForBT(customerService.certificationByCustomerId(idDTO.getId())));
}
+ @ApiOperation("根据客户id查询检定记录(在样品中实现,可复用)")
+ @PostMapping("/fake/interface")
+ public ReturnDTO> measureRecordsBySampleId() {
+ return null;
+ }
+
@ApiOperation("客户导出")
@PostMapping("/export")
- public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response){
+ public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response) {
customerService.customerExport(request, response);
}
- //*******************************************************************************************************************//
+
+ //*******************************************************************************************************************//
// @ApiOperation("客户批量导入")
// @PostMapping("/batchImport")
// public ReturnDTO exportAdvice(@RequestBody @Valid CustomerAdviceInfo customerAdviceInfo, BindingResult bindingResult) {
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
index c7d6b3f..101a5d0 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
@@ -10,9 +10,9 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.MeasureRecordsResponse;
+import com.casic.missiles.dto.customer.sample.CustomerSampleIdRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListResponse;
-import com.casic.missiles.dto.customer.sample.MeasureRecordsIdRequest;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerSampleInfo;
@@ -94,20 +94,18 @@
customerSampleService.sampleExport(request, response);
}
- @ApiOperation("根据样品id或客户id查询检定记录")
- @PostMapping("/measureRecordsBySampleId")
- public ReturnDTO> mesureRecordsBySampleId(@RequestBody MeasureRecordsIdRequest recordsIdRequest) {
- return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsBySampleId(recordsIdRequest)));
+ @ApiOperation("根据样品id/客户id查询检定记录")
+ @PostMapping("/measureRecordsById")
+ public ReturnDTO> measureRecordsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) {
+ return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsById(customerSampleIdRequest)));
}
- @ApiOperation("根据样品id查询检定证书")
- @PostMapping("/certificationBySampleId")
- public ReturnDTO> certificationBySampleId(@RequestBody @Valid IdDTO idDTO) {
- Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- return ReturnUtil.success(super.packForBT(customerSampleService.certificationBySampleId(idDTO.getId())));
+ @ApiOperation("根据样品id/客户id查询检定证书")
+ @PostMapping("/certificateRecordsById")
+ public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{
+ return ReturnUtil.success(super.packForBT(customerSampleService.certificateRecordsById(customerSampleIdRequest)));
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
new file mode 100644
index 0000000..ebb9d60
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.enums.notifyevent;
+
+/**
+ * 这里定义bean的信息
+ */
+public interface ActionStatusBeanEnum {
+
+ String APPLY_BEAN_NAME = "equipmentApplyBean";
+
+ String SUPPORT_BEAN_NAME = "equipmentSupportBean";
+
+ String MANAGING_BEAN_NAME = "equipmentManagingBean";
+
+ String CERTIFICATE_BEAN_NAME = "certificatePrintBean";
+
+ String LEASE_BEAN_NAME = "equipmentLeaseBean";
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
index ae7a28d..4461f67 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
@@ -10,6 +10,7 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.Info.*;
+import com.casic.missiles.dto.customer.MeasureRecordsResponse;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerInfo;
@@ -119,13 +120,20 @@
return ReturnUtil.success(super.packForBT(customerService.certificationByCustomerId(idDTO.getId())));
}
+ @ApiOperation("根据客户id查询检定记录(在样品中实现,可复用)")
+ @PostMapping("/fake/interface")
+ public ReturnDTO> measureRecordsBySampleId() {
+ return null;
+ }
+
@ApiOperation("客户导出")
@PostMapping("/export")
- public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response){
+ public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response) {
customerService.customerExport(request, response);
}
- //*******************************************************************************************************************//
+
+ //*******************************************************************************************************************//
// @ApiOperation("客户批量导入")
// @PostMapping("/batchImport")
// public ReturnDTO exportAdvice(@RequestBody @Valid CustomerAdviceInfo customerAdviceInfo, BindingResult bindingResult) {
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
index c7d6b3f..101a5d0 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
@@ -10,9 +10,9 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.MeasureRecordsResponse;
+import com.casic.missiles.dto.customer.sample.CustomerSampleIdRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListResponse;
-import com.casic.missiles.dto.customer.sample.MeasureRecordsIdRequest;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerSampleInfo;
@@ -94,20 +94,18 @@
customerSampleService.sampleExport(request, response);
}
- @ApiOperation("根据样品id或客户id查询检定记录")
- @PostMapping("/measureRecordsBySampleId")
- public ReturnDTO> mesureRecordsBySampleId(@RequestBody MeasureRecordsIdRequest recordsIdRequest) {
- return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsBySampleId(recordsIdRequest)));
+ @ApiOperation("根据样品id/客户id查询检定记录")
+ @PostMapping("/measureRecordsById")
+ public ReturnDTO> measureRecordsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) {
+ return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsById(customerSampleIdRequest)));
}
- @ApiOperation("根据样品id查询检定证书")
- @PostMapping("/certificationBySampleId")
- public ReturnDTO> certificationBySampleId(@RequestBody @Valid IdDTO idDTO) {
- Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- return ReturnUtil.success(super.packForBT(customerSampleService.certificationBySampleId(idDTO.getId())));
+ @ApiOperation("根据样品id/客户id查询检定证书")
+ @PostMapping("/certificateRecordsById")
+ public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{
+ return ReturnUtil.success(super.packForBT(customerSampleService.certificateRecordsById(customerSampleIdRequest)));
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
new file mode 100644
index 0000000..ebb9d60
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.enums.notifyevent;
+
+/**
+ * 这里定义bean的信息
+ */
+public interface ActionStatusBeanEnum {
+
+ String APPLY_BEAN_NAME = "equipmentApplyBean";
+
+ String SUPPORT_BEAN_NAME = "equipmentSupportBean";
+
+ String MANAGING_BEAN_NAME = "equipmentManagingBean";
+
+ String CERTIFICATE_BEAN_NAME = "certificatePrintBean";
+
+ String LEASE_BEAN_NAME = "equipmentLeaseBean";
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
new file mode 100644
index 0000000..9300729
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
@@ -0,0 +1,63 @@
+package com.casic.missiles.enums.notifyevent;
+
+import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+
+import java.util.HashMap;
+
+public enum AwareActionStatusEnum implements ActionStatusBeanEnum {
+ EQUIPMENT_APPLY_USE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STANDARD_USE),
+ EQUIPMENT_APPLY_STOP(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STOP),
+ EQUIPMENT_APPLY_REVOKE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.REVOKE),
+ EQUIPMENT_SUPPORT_STATUS(SUPPORT_BEAN_NAME, ""),
+ DEVICE_MANAGING_IDLE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.IDLE),
+ DEVICE_MANAGING_SEALED(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SEALED),
+ DEVICE_MANAGING_USE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.USE),
+ DEVICE_MANAGING_SCRAP(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SCRAP),
+ DEVICE_MANAGING_MANAGEMENT(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.MANAGEMENT),
+ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING),
+ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED),
+ CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""),
+ ACTION_STATUS_MAP(new HashMap() {
+ {
+ put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE);
+ put(ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL, EQUIPMENT_APPLY_STOP);
+ put(ApplyFromIdEnum.STANDARD_RESUME_APPROVAL, EQUIPMENT_APPLY_REVOKE);
+ put(ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL, EQUIPMENT_SUPPORT_STATUS);
+ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE);
+ put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED);
+ put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE);
+ put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP);
+ put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT);
+ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请
+ put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请
+ put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填
+ }
+ });
+ String actionBeanName;
+ String status;
+
+ AwareActionStatusEnum(String actionBeanName, String status) {
+ this.actionBeanName = actionBeanName;
+ this.status = status;
+ }
+
+ public String getActionBeanName() {
+ return actionBeanName;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public HashMap actionStatusMap;
+
+ AwareActionStatusEnum(HashMap actionStatusMap) {
+ this.actionStatusMap = actionStatusMap;
+ }
+
+ public HashMap getActionStatusMap() {
+ return actionStatusMap;
+ }
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
index ae7a28d..4461f67 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
@@ -10,6 +10,7 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.Info.*;
+import com.casic.missiles.dto.customer.MeasureRecordsResponse;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerInfo;
@@ -119,13 +120,20 @@
return ReturnUtil.success(super.packForBT(customerService.certificationByCustomerId(idDTO.getId())));
}
+ @ApiOperation("根据客户id查询检定记录(在样品中实现,可复用)")
+ @PostMapping("/fake/interface")
+ public ReturnDTO> measureRecordsBySampleId() {
+ return null;
+ }
+
@ApiOperation("客户导出")
@PostMapping("/export")
- public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response){
+ public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response) {
customerService.customerExport(request, response);
}
- //*******************************************************************************************************************//
+
+ //*******************************************************************************************************************//
// @ApiOperation("客户批量导入")
// @PostMapping("/batchImport")
// public ReturnDTO exportAdvice(@RequestBody @Valid CustomerAdviceInfo customerAdviceInfo, BindingResult bindingResult) {
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
index c7d6b3f..101a5d0 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
@@ -10,9 +10,9 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.MeasureRecordsResponse;
+import com.casic.missiles.dto.customer.sample.CustomerSampleIdRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListResponse;
-import com.casic.missiles.dto.customer.sample.MeasureRecordsIdRequest;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerSampleInfo;
@@ -94,20 +94,18 @@
customerSampleService.sampleExport(request, response);
}
- @ApiOperation("根据样品id或客户id查询检定记录")
- @PostMapping("/measureRecordsBySampleId")
- public ReturnDTO> mesureRecordsBySampleId(@RequestBody MeasureRecordsIdRequest recordsIdRequest) {
- return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsBySampleId(recordsIdRequest)));
+ @ApiOperation("根据样品id/客户id查询检定记录")
+ @PostMapping("/measureRecordsById")
+ public ReturnDTO> measureRecordsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) {
+ return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsById(customerSampleIdRequest)));
}
- @ApiOperation("根据样品id查询检定证书")
- @PostMapping("/certificationBySampleId")
- public ReturnDTO> certificationBySampleId(@RequestBody @Valid IdDTO idDTO) {
- Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- return ReturnUtil.success(super.packForBT(customerSampleService.certificationBySampleId(idDTO.getId())));
+ @ApiOperation("根据样品id/客户id查询检定证书")
+ @PostMapping("/certificateRecordsById")
+ public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{
+ return ReturnUtil.success(super.packForBT(customerSampleService.certificateRecordsById(customerSampleIdRequest)));
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
new file mode 100644
index 0000000..ebb9d60
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.enums.notifyevent;
+
+/**
+ * 这里定义bean的信息
+ */
+public interface ActionStatusBeanEnum {
+
+ String APPLY_BEAN_NAME = "equipmentApplyBean";
+
+ String SUPPORT_BEAN_NAME = "equipmentSupportBean";
+
+ String MANAGING_BEAN_NAME = "equipmentManagingBean";
+
+ String CERTIFICATE_BEAN_NAME = "certificatePrintBean";
+
+ String LEASE_BEAN_NAME = "equipmentLeaseBean";
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
new file mode 100644
index 0000000..9300729
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
@@ -0,0 +1,63 @@
+package com.casic.missiles.enums.notifyevent;
+
+import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+
+import java.util.HashMap;
+
+public enum AwareActionStatusEnum implements ActionStatusBeanEnum {
+ EQUIPMENT_APPLY_USE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STANDARD_USE),
+ EQUIPMENT_APPLY_STOP(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STOP),
+ EQUIPMENT_APPLY_REVOKE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.REVOKE),
+ EQUIPMENT_SUPPORT_STATUS(SUPPORT_BEAN_NAME, ""),
+ DEVICE_MANAGING_IDLE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.IDLE),
+ DEVICE_MANAGING_SEALED(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SEALED),
+ DEVICE_MANAGING_USE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.USE),
+ DEVICE_MANAGING_SCRAP(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SCRAP),
+ DEVICE_MANAGING_MANAGEMENT(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.MANAGEMENT),
+ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING),
+ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED),
+ CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""),
+ ACTION_STATUS_MAP(new HashMap() {
+ {
+ put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE);
+ put(ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL, EQUIPMENT_APPLY_STOP);
+ put(ApplyFromIdEnum.STANDARD_RESUME_APPROVAL, EQUIPMENT_APPLY_REVOKE);
+ put(ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL, EQUIPMENT_SUPPORT_STATUS);
+ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE);
+ put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED);
+ put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE);
+ put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP);
+ put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT);
+ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请
+ put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请
+ put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填
+ }
+ });
+ String actionBeanName;
+ String status;
+
+ AwareActionStatusEnum(String actionBeanName, String status) {
+ this.actionBeanName = actionBeanName;
+ this.status = status;
+ }
+
+ public String getActionBeanName() {
+ return actionBeanName;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public HashMap actionStatusMap;
+
+ AwareActionStatusEnum(HashMap actionStatusMap) {
+ this.actionStatusMap = actionStatusMap;
+ }
+
+ public HashMap getActionStatusMap() {
+ return actionStatusMap;
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
new file mode 100644
index 0000000..229d96f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
@@ -0,0 +1,13 @@
+package com.casic.missiles.listeners;
+
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+
+/**
+ * @author cz
+ * 工作流监听后置事件
+ */
+public interface NotifyStatusPostProcessor {
+
+ void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO);
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
index ae7a28d..4461f67 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
@@ -10,6 +10,7 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.Info.*;
+import com.casic.missiles.dto.customer.MeasureRecordsResponse;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerInfo;
@@ -119,13 +120,20 @@
return ReturnUtil.success(super.packForBT(customerService.certificationByCustomerId(idDTO.getId())));
}
+ @ApiOperation("根据客户id查询检定记录(在样品中实现,可复用)")
+ @PostMapping("/fake/interface")
+ public ReturnDTO> measureRecordsBySampleId() {
+ return null;
+ }
+
@ApiOperation("客户导出")
@PostMapping("/export")
- public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response){
+ public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response) {
customerService.customerExport(request, response);
}
- //*******************************************************************************************************************//
+
+ //*******************************************************************************************************************//
// @ApiOperation("客户批量导入")
// @PostMapping("/batchImport")
// public ReturnDTO exportAdvice(@RequestBody @Valid CustomerAdviceInfo customerAdviceInfo, BindingResult bindingResult) {
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
index c7d6b3f..101a5d0 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
@@ -10,9 +10,9 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.MeasureRecordsResponse;
+import com.casic.missiles.dto.customer.sample.CustomerSampleIdRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListResponse;
-import com.casic.missiles.dto.customer.sample.MeasureRecordsIdRequest;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerSampleInfo;
@@ -94,20 +94,18 @@
customerSampleService.sampleExport(request, response);
}
- @ApiOperation("根据样品id或客户id查询检定记录")
- @PostMapping("/measureRecordsBySampleId")
- public ReturnDTO> mesureRecordsBySampleId(@RequestBody MeasureRecordsIdRequest recordsIdRequest) {
- return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsBySampleId(recordsIdRequest)));
+ @ApiOperation("根据样品id/客户id查询检定记录")
+ @PostMapping("/measureRecordsById")
+ public ReturnDTO> measureRecordsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) {
+ return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsById(customerSampleIdRequest)));
}
- @ApiOperation("根据样品id查询检定证书")
- @PostMapping("/certificationBySampleId")
- public ReturnDTO> certificationBySampleId(@RequestBody @Valid IdDTO idDTO) {
- Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- return ReturnUtil.success(super.packForBT(customerSampleService.certificationBySampleId(idDTO.getId())));
+ @ApiOperation("根据样品id/客户id查询检定证书")
+ @PostMapping("/certificateRecordsById")
+ public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{
+ return ReturnUtil.success(super.packForBT(customerSampleService.certificateRecordsById(customerSampleIdRequest)));
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
new file mode 100644
index 0000000..ebb9d60
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.enums.notifyevent;
+
+/**
+ * 这里定义bean的信息
+ */
+public interface ActionStatusBeanEnum {
+
+ String APPLY_BEAN_NAME = "equipmentApplyBean";
+
+ String SUPPORT_BEAN_NAME = "equipmentSupportBean";
+
+ String MANAGING_BEAN_NAME = "equipmentManagingBean";
+
+ String CERTIFICATE_BEAN_NAME = "certificatePrintBean";
+
+ String LEASE_BEAN_NAME = "equipmentLeaseBean";
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
new file mode 100644
index 0000000..9300729
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
@@ -0,0 +1,63 @@
+package com.casic.missiles.enums.notifyevent;
+
+import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+
+import java.util.HashMap;
+
+public enum AwareActionStatusEnum implements ActionStatusBeanEnum {
+ EQUIPMENT_APPLY_USE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STANDARD_USE),
+ EQUIPMENT_APPLY_STOP(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STOP),
+ EQUIPMENT_APPLY_REVOKE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.REVOKE),
+ EQUIPMENT_SUPPORT_STATUS(SUPPORT_BEAN_NAME, ""),
+ DEVICE_MANAGING_IDLE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.IDLE),
+ DEVICE_MANAGING_SEALED(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SEALED),
+ DEVICE_MANAGING_USE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.USE),
+ DEVICE_MANAGING_SCRAP(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SCRAP),
+ DEVICE_MANAGING_MANAGEMENT(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.MANAGEMENT),
+ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING),
+ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED),
+ CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""),
+ ACTION_STATUS_MAP(new HashMap() {
+ {
+ put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE);
+ put(ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL, EQUIPMENT_APPLY_STOP);
+ put(ApplyFromIdEnum.STANDARD_RESUME_APPROVAL, EQUIPMENT_APPLY_REVOKE);
+ put(ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL, EQUIPMENT_SUPPORT_STATUS);
+ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE);
+ put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED);
+ put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE);
+ put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP);
+ put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT);
+ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请
+ put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请
+ put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填
+ }
+ });
+ String actionBeanName;
+ String status;
+
+ AwareActionStatusEnum(String actionBeanName, String status) {
+ this.actionBeanName = actionBeanName;
+ this.status = status;
+ }
+
+ public String getActionBeanName() {
+ return actionBeanName;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public HashMap actionStatusMap;
+
+ AwareActionStatusEnum(HashMap actionStatusMap) {
+ this.actionStatusMap = actionStatusMap;
+ }
+
+ public HashMap getActionStatusMap() {
+ return actionStatusMap;
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
new file mode 100644
index 0000000..229d96f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
@@ -0,0 +1,13 @@
+package com.casic.missiles.listeners;
+
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+
+/**
+ * @author cz
+ * 工作流监听后置事件
+ */
+public interface NotifyStatusPostProcessor {
+
+ void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO);
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
index c2597b0..8ac418f 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
@@ -1,20 +1,18 @@
package com.casic.missiles.listeners.flowable;
-import com.alibaba.excel.util.DateUtils;
-import cn.hutool.core.lang.Assert;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
import com.casic.missiles.enums.system.ApplyFromIdEnum;
import com.casic.missiles.enums.system.ApprovalStatusEnum;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
import com.casic.missiles.exception.BusinessException;
-import com.casic.missiles.mapper.MeterFixedAssetsMapper;
-import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.mapper.equipment.*;
import com.casic.missiles.mapper.system.SystemFlowFormMapper;
-import com.casic.missiles.model.business.BusinessCertificateReport;
import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper;
import com.casic.missiles.model.equipment.*;
import com.casic.missiles.model.system.SystemFlowForm;
@@ -32,12 +30,6 @@
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
@Slf4j
@Component
public class ProcessUpdateStateListener implements ExecutionListener {
@@ -56,175 +48,20 @@
// 查出流程定义信息
SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper);
String id = execution.getProcessInstanceBusinessKey();
- switch (systemFlowForm.getFormId()) {
- // 标准装置申请
- case ApplyFromIdEnum.STANDARD_REVERT_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STANDARD_USE);
- break;
- case ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STOP);
- break;
- case ApplyFromIdEnum.STANDARD_RESUME_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.REVOKE);
- break;
- case ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL:
- changeSupportingEquipment(id);
- break;
- // 设备状态管理申请
- case ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.IDLE);
- break;
- case ApplyFromIdEnum.DEVICE_SEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SEALED);
- break;
- case ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.USE);
- break;
- case ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SCRAP);
- break;
- case ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.MANAGEMENT);
- break;
- // 设备借用领用申请
- case ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_COLLECTING);
- break;
- case ApplyFromIdEnum.DEVICE_BORROW_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_BORROWED);
- break;
- //证书打印审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
- //证书报告审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
-
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId());
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id(id)
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
}
-
//设置通过状态为已通过
runtimeService.updateBusinessStatus(execution.getProcessInstanceId(), ApprovalStatusEnum.PASSED);
-
//审批通过,通知发起人
sendMessageAndSocket(execution, systemFlowForm);
}
- /**
- * 审批通过后修改标准装置配套设备
- * @param id
- */
- private void changeSupportingEquipment(String id) {
- EquipmentStandardApplyMapper standardApplyMapper = SpringContextUtil.getBean(EquipmentStandardApplyMapper.class);
- EquipmentStandardApplyEquipmentMapper applyEquipmentMapper = SpringContextUtil.getBean(EquipmentStandardApplyEquipmentMapper.class);
- EquipmentStandardSupportMapper supportMapper = SpringContextUtil.getBean(EquipmentStandardSupportMapper.class);
- List supportEquipments = new ArrayList<>();
- // 通过申请id查询申请信息
- EquipmentStandardApply standardApply = standardApplyMapper.selectById(id);
- // 通过申请id查询出申请设备列表
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("standard_apply_id",id);
- List equipmentStandardApplyEquipments = applyEquipmentMapper.selectList(queryWrapper);
- // 设备ids
- List equipmentIds = equipmentStandardApplyEquipments.stream().map(EquipmentStandardApplyEquipment::getEquipmentId).collect(Collectors.toList());
- for (Long equipmentId : equipmentIds) {
- EquipmentStandardSupportEquipment supportEquipment = new EquipmentStandardSupportEquipment();
- supportEquipment.setEquipmentId(equipmentId);
- supportEquipment.setStandardEquipmentId(Long.valueOf(standardApply.getStandardEquipmentId()));
- supportEquipments.add(supportEquipment);
- }
- // 通过标准装置id删除原先配套设备
- QueryWrapper supportEquipmentWrapper = new QueryWrapper<>();
- supportEquipmentWrapper.eq("standard_equipment_id",standardApply.getStandardEquipmentId());
- supportMapper.delete(supportEquipmentWrapper);
- // 新增配套设备
- for (EquipmentStandardSupportEquipment supportEquipment : supportEquipments) {
- if (supportMapper.insert(supportEquipment) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- }
- /**
- * 审批通过后修改设备借用/领用状态
- * @param id
- */
- private void updateEquipmentApplyState(String id, String state) {
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.eq("id", id).set("process_result", state);
- if (equipmentApplyMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- /**
- * 审批通过后修改设备管理状态
- * 新增状态变更记录表
- * @param id
- */
- private void updateEquipmentState(String id, String state) {
- EquipmentApplyEquipmentMapper equipmentMapper = SpringContextUtil.getBean(EquipmentApplyEquipmentMapper.class);
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- EquipmentStateChangeLogMapper stateChangeLogMapper = SpringContextUtil.getBean(EquipmentStateChangeLogMapper.class);
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- // 获取申请关联的设备id
- QueryWrapper wrapper = new QueryWrapper<>();
- wrapper.eq("apply_id", id);
- List equipmentApplyEquipments = equipmentMapper.selectList(wrapper);
- // 获取设备idList
- List equipmentIds = equipmentApplyEquipments.stream().map(EquipmentApplyEquipment::getEquipmentId).collect(Collectors.toList());
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", equipmentIds).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) > 0) {
- UpdateWrapper logUpdateWrapper = new UpdateWrapper<>();
- // 修改状态变更记录结束时间
- logUpdateWrapper.in("equipment_id", equipmentIds).isNull("end_date").set("end_date", DateUtils.format(new Date()));
- if (stateChangeLogMapper.update(null, logUpdateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- // 获取当前申请的信息
- EquipmentApply equipmentApply = equipmentApplyMapper.selectById(id);
- // 新增状态变更记录
- for (EquipmentApplyEquipment equipment : equipmentApplyEquipments) {
- EquipmentStateChangeLog stateChangeLog = new EquipmentStateChangeLog(Long.parseLong(id), Long.parseLong(equipment.getEquipmentId()), state, DateUtils.format(new Date()), null, Long.parseLong(equipmentApply.getApplyPerson()));
- if (stateChangeLogMapper.insert(stateChangeLog) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- } else {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- /**
- * 审批通过后修改标准装置业务状态
- * @param id
- * @param state
- */
- private void updateStandardState(String id, String state) {
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", id).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- private void updateCertificateState(Long id) {
- Assert.isFalse(Objects.isNull(id), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
- BusinessCertificateReport certificateReport = new BusinessCertificateReport();
- certificateReport.setId(id);
- certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
- certificateReport.setPrintStatus("1"); //打印状态可打印
- int row = certificateReportMapper.updateById(certificateReport);
- if (row <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
private void sendMessageAndSocket(DelegateExecution execution, SystemFlowForm systemFlowForm) {
JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef());
JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef");
@@ -252,4 +89,5 @@
webSocket.sendOneMessage(String.valueOf(rootId), JSONObject.toJSONString(approvalMessage));
}
}
+
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
index ae7a28d..4461f67 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
@@ -10,6 +10,7 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.Info.*;
+import com.casic.missiles.dto.customer.MeasureRecordsResponse;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerInfo;
@@ -119,13 +120,20 @@
return ReturnUtil.success(super.packForBT(customerService.certificationByCustomerId(idDTO.getId())));
}
+ @ApiOperation("根据客户id查询检定记录(在样品中实现,可复用)")
+ @PostMapping("/fake/interface")
+ public ReturnDTO> measureRecordsBySampleId() {
+ return null;
+ }
+
@ApiOperation("客户导出")
@PostMapping("/export")
- public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response){
+ public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response) {
customerService.customerExport(request, response);
}
- //*******************************************************************************************************************//
+
+ //*******************************************************************************************************************//
// @ApiOperation("客户批量导入")
// @PostMapping("/batchImport")
// public ReturnDTO exportAdvice(@RequestBody @Valid CustomerAdviceInfo customerAdviceInfo, BindingResult bindingResult) {
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
index c7d6b3f..101a5d0 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
@@ -10,9 +10,9 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.MeasureRecordsResponse;
+import com.casic.missiles.dto.customer.sample.CustomerSampleIdRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListResponse;
-import com.casic.missiles.dto.customer.sample.MeasureRecordsIdRequest;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerSampleInfo;
@@ -94,20 +94,18 @@
customerSampleService.sampleExport(request, response);
}
- @ApiOperation("根据样品id或客户id查询检定记录")
- @PostMapping("/measureRecordsBySampleId")
- public ReturnDTO> mesureRecordsBySampleId(@RequestBody MeasureRecordsIdRequest recordsIdRequest) {
- return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsBySampleId(recordsIdRequest)));
+ @ApiOperation("根据样品id/客户id查询检定记录")
+ @PostMapping("/measureRecordsById")
+ public ReturnDTO> measureRecordsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) {
+ return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsById(customerSampleIdRequest)));
}
- @ApiOperation("根据样品id查询检定证书")
- @PostMapping("/certificationBySampleId")
- public ReturnDTO> certificationBySampleId(@RequestBody @Valid IdDTO idDTO) {
- Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- return ReturnUtil.success(super.packForBT(customerSampleService.certificationBySampleId(idDTO.getId())));
+ @ApiOperation("根据样品id/客户id查询检定证书")
+ @PostMapping("/certificateRecordsById")
+ public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{
+ return ReturnUtil.success(super.packForBT(customerSampleService.certificateRecordsById(customerSampleIdRequest)));
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
new file mode 100644
index 0000000..ebb9d60
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.enums.notifyevent;
+
+/**
+ * 这里定义bean的信息
+ */
+public interface ActionStatusBeanEnum {
+
+ String APPLY_BEAN_NAME = "equipmentApplyBean";
+
+ String SUPPORT_BEAN_NAME = "equipmentSupportBean";
+
+ String MANAGING_BEAN_NAME = "equipmentManagingBean";
+
+ String CERTIFICATE_BEAN_NAME = "certificatePrintBean";
+
+ String LEASE_BEAN_NAME = "equipmentLeaseBean";
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
new file mode 100644
index 0000000..9300729
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
@@ -0,0 +1,63 @@
+package com.casic.missiles.enums.notifyevent;
+
+import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+
+import java.util.HashMap;
+
+public enum AwareActionStatusEnum implements ActionStatusBeanEnum {
+ EQUIPMENT_APPLY_USE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STANDARD_USE),
+ EQUIPMENT_APPLY_STOP(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STOP),
+ EQUIPMENT_APPLY_REVOKE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.REVOKE),
+ EQUIPMENT_SUPPORT_STATUS(SUPPORT_BEAN_NAME, ""),
+ DEVICE_MANAGING_IDLE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.IDLE),
+ DEVICE_MANAGING_SEALED(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SEALED),
+ DEVICE_MANAGING_USE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.USE),
+ DEVICE_MANAGING_SCRAP(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SCRAP),
+ DEVICE_MANAGING_MANAGEMENT(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.MANAGEMENT),
+ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING),
+ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED),
+ CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""),
+ ACTION_STATUS_MAP(new HashMap() {
+ {
+ put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE);
+ put(ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL, EQUIPMENT_APPLY_STOP);
+ put(ApplyFromIdEnum.STANDARD_RESUME_APPROVAL, EQUIPMENT_APPLY_REVOKE);
+ put(ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL, EQUIPMENT_SUPPORT_STATUS);
+ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE);
+ put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED);
+ put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE);
+ put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP);
+ put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT);
+ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请
+ put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请
+ put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填
+ }
+ });
+ String actionBeanName;
+ String status;
+
+ AwareActionStatusEnum(String actionBeanName, String status) {
+ this.actionBeanName = actionBeanName;
+ this.status = status;
+ }
+
+ public String getActionBeanName() {
+ return actionBeanName;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public HashMap actionStatusMap;
+
+ AwareActionStatusEnum(HashMap actionStatusMap) {
+ this.actionStatusMap = actionStatusMap;
+ }
+
+ public HashMap getActionStatusMap() {
+ return actionStatusMap;
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
new file mode 100644
index 0000000..229d96f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
@@ -0,0 +1,13 @@
+package com.casic.missiles.listeners;
+
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+
+/**
+ * @author cz
+ * 工作流监听后置事件
+ */
+public interface NotifyStatusPostProcessor {
+
+ void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO);
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
index c2597b0..8ac418f 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
@@ -1,20 +1,18 @@
package com.casic.missiles.listeners.flowable;
-import com.alibaba.excel.util.DateUtils;
-import cn.hutool.core.lang.Assert;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
import com.casic.missiles.enums.system.ApplyFromIdEnum;
import com.casic.missiles.enums.system.ApprovalStatusEnum;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
import com.casic.missiles.exception.BusinessException;
-import com.casic.missiles.mapper.MeterFixedAssetsMapper;
-import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.mapper.equipment.*;
import com.casic.missiles.mapper.system.SystemFlowFormMapper;
-import com.casic.missiles.model.business.BusinessCertificateReport;
import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper;
import com.casic.missiles.model.equipment.*;
import com.casic.missiles.model.system.SystemFlowForm;
@@ -32,12 +30,6 @@
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
@Slf4j
@Component
public class ProcessUpdateStateListener implements ExecutionListener {
@@ -56,175 +48,20 @@
// 查出流程定义信息
SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper);
String id = execution.getProcessInstanceBusinessKey();
- switch (systemFlowForm.getFormId()) {
- // 标准装置申请
- case ApplyFromIdEnum.STANDARD_REVERT_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STANDARD_USE);
- break;
- case ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STOP);
- break;
- case ApplyFromIdEnum.STANDARD_RESUME_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.REVOKE);
- break;
- case ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL:
- changeSupportingEquipment(id);
- break;
- // 设备状态管理申请
- case ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.IDLE);
- break;
- case ApplyFromIdEnum.DEVICE_SEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SEALED);
- break;
- case ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.USE);
- break;
- case ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SCRAP);
- break;
- case ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.MANAGEMENT);
- break;
- // 设备借用领用申请
- case ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_COLLECTING);
- break;
- case ApplyFromIdEnum.DEVICE_BORROW_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_BORROWED);
- break;
- //证书打印审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
- //证书报告审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
-
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId());
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id(id)
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
}
-
//设置通过状态为已通过
runtimeService.updateBusinessStatus(execution.getProcessInstanceId(), ApprovalStatusEnum.PASSED);
-
//审批通过,通知发起人
sendMessageAndSocket(execution, systemFlowForm);
}
- /**
- * 审批通过后修改标准装置配套设备
- * @param id
- */
- private void changeSupportingEquipment(String id) {
- EquipmentStandardApplyMapper standardApplyMapper = SpringContextUtil.getBean(EquipmentStandardApplyMapper.class);
- EquipmentStandardApplyEquipmentMapper applyEquipmentMapper = SpringContextUtil.getBean(EquipmentStandardApplyEquipmentMapper.class);
- EquipmentStandardSupportMapper supportMapper = SpringContextUtil.getBean(EquipmentStandardSupportMapper.class);
- List supportEquipments = new ArrayList<>();
- // 通过申请id查询申请信息
- EquipmentStandardApply standardApply = standardApplyMapper.selectById(id);
- // 通过申请id查询出申请设备列表
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("standard_apply_id",id);
- List equipmentStandardApplyEquipments = applyEquipmentMapper.selectList(queryWrapper);
- // 设备ids
- List equipmentIds = equipmentStandardApplyEquipments.stream().map(EquipmentStandardApplyEquipment::getEquipmentId).collect(Collectors.toList());
- for (Long equipmentId : equipmentIds) {
- EquipmentStandardSupportEquipment supportEquipment = new EquipmentStandardSupportEquipment();
- supportEquipment.setEquipmentId(equipmentId);
- supportEquipment.setStandardEquipmentId(Long.valueOf(standardApply.getStandardEquipmentId()));
- supportEquipments.add(supportEquipment);
- }
- // 通过标准装置id删除原先配套设备
- QueryWrapper supportEquipmentWrapper = new QueryWrapper<>();
- supportEquipmentWrapper.eq("standard_equipment_id",standardApply.getStandardEquipmentId());
- supportMapper.delete(supportEquipmentWrapper);
- // 新增配套设备
- for (EquipmentStandardSupportEquipment supportEquipment : supportEquipments) {
- if (supportMapper.insert(supportEquipment) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- }
- /**
- * 审批通过后修改设备借用/领用状态
- * @param id
- */
- private void updateEquipmentApplyState(String id, String state) {
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.eq("id", id).set("process_result", state);
- if (equipmentApplyMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- /**
- * 审批通过后修改设备管理状态
- * 新增状态变更记录表
- * @param id
- */
- private void updateEquipmentState(String id, String state) {
- EquipmentApplyEquipmentMapper equipmentMapper = SpringContextUtil.getBean(EquipmentApplyEquipmentMapper.class);
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- EquipmentStateChangeLogMapper stateChangeLogMapper = SpringContextUtil.getBean(EquipmentStateChangeLogMapper.class);
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- // 获取申请关联的设备id
- QueryWrapper wrapper = new QueryWrapper<>();
- wrapper.eq("apply_id", id);
- List equipmentApplyEquipments = equipmentMapper.selectList(wrapper);
- // 获取设备idList
- List equipmentIds = equipmentApplyEquipments.stream().map(EquipmentApplyEquipment::getEquipmentId).collect(Collectors.toList());
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", equipmentIds).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) > 0) {
- UpdateWrapper logUpdateWrapper = new UpdateWrapper<>();
- // 修改状态变更记录结束时间
- logUpdateWrapper.in("equipment_id", equipmentIds).isNull("end_date").set("end_date", DateUtils.format(new Date()));
- if (stateChangeLogMapper.update(null, logUpdateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- // 获取当前申请的信息
- EquipmentApply equipmentApply = equipmentApplyMapper.selectById(id);
- // 新增状态变更记录
- for (EquipmentApplyEquipment equipment : equipmentApplyEquipments) {
- EquipmentStateChangeLog stateChangeLog = new EquipmentStateChangeLog(Long.parseLong(id), Long.parseLong(equipment.getEquipmentId()), state, DateUtils.format(new Date()), null, Long.parseLong(equipmentApply.getApplyPerson()));
- if (stateChangeLogMapper.insert(stateChangeLog) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- } else {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- /**
- * 审批通过后修改标准装置业务状态
- * @param id
- * @param state
- */
- private void updateStandardState(String id, String state) {
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", id).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- private void updateCertificateState(Long id) {
- Assert.isFalse(Objects.isNull(id), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
- BusinessCertificateReport certificateReport = new BusinessCertificateReport();
- certificateReport.setId(id);
- certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
- certificateReport.setPrintStatus("1"); //打印状态可打印
- int row = certificateReportMapper.updateById(certificateReport);
- if (row <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
private void sendMessageAndSocket(DelegateExecution execution, SystemFlowForm systemFlowForm) {
JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef());
JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef");
@@ -252,4 +89,5 @@
webSocket.sendOneMessage(String.valueOf(rootId), JSONObject.toJSONString(approvalMessage));
}
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java
new file mode 100644
index 0000000..ae742d3
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java
@@ -0,0 +1,43 @@
+package com.casic.missiles.listeners.processor;
+
+import cn.hutool.core.lang.Assert;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.enums.system.ApprovalStatusEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.model.business.BusinessCertificateReport;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+/**
+ * @author cz
+ *
+ * 证书打印审批通过状态回填
+ */
+@Service(ActionStatusBeanEnum.CERTIFICATE_BEAN_NAME)
+public class CertificateStateStatusPostProcessor implements NotifyStatusPostProcessor {
+
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ Long id = Long.valueOf(notifyEventStatusDTO.getId());
+ Assert.isFalse(Objects.isNull(id), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
+ BusinessCertificateReport certificateReport = new BusinessCertificateReport();
+ certificateReport.setId(id);
+ certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
+ certificateReport.setPrintStatus("1"); //打印状态可打印
+ int row = certificateReportMapper.updateById(certificateReport);
+ if (row <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
index ae7a28d..4461f67 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
@@ -10,6 +10,7 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.Info.*;
+import com.casic.missiles.dto.customer.MeasureRecordsResponse;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerInfo;
@@ -119,13 +120,20 @@
return ReturnUtil.success(super.packForBT(customerService.certificationByCustomerId(idDTO.getId())));
}
+ @ApiOperation("根据客户id查询检定记录(在样品中实现,可复用)")
+ @PostMapping("/fake/interface")
+ public ReturnDTO> measureRecordsBySampleId() {
+ return null;
+ }
+
@ApiOperation("客户导出")
@PostMapping("/export")
- public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response){
+ public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response) {
customerService.customerExport(request, response);
}
- //*******************************************************************************************************************//
+
+ //*******************************************************************************************************************//
// @ApiOperation("客户批量导入")
// @PostMapping("/batchImport")
// public ReturnDTO exportAdvice(@RequestBody @Valid CustomerAdviceInfo customerAdviceInfo, BindingResult bindingResult) {
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
index c7d6b3f..101a5d0 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
@@ -10,9 +10,9 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.MeasureRecordsResponse;
+import com.casic.missiles.dto.customer.sample.CustomerSampleIdRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListResponse;
-import com.casic.missiles.dto.customer.sample.MeasureRecordsIdRequest;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerSampleInfo;
@@ -94,20 +94,18 @@
customerSampleService.sampleExport(request, response);
}
- @ApiOperation("根据样品id或客户id查询检定记录")
- @PostMapping("/measureRecordsBySampleId")
- public ReturnDTO> mesureRecordsBySampleId(@RequestBody MeasureRecordsIdRequest recordsIdRequest) {
- return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsBySampleId(recordsIdRequest)));
+ @ApiOperation("根据样品id/客户id查询检定记录")
+ @PostMapping("/measureRecordsById")
+ public ReturnDTO> measureRecordsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) {
+ return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsById(customerSampleIdRequest)));
}
- @ApiOperation("根据样品id查询检定证书")
- @PostMapping("/certificationBySampleId")
- public ReturnDTO> certificationBySampleId(@RequestBody @Valid IdDTO idDTO) {
- Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- return ReturnUtil.success(super.packForBT(customerSampleService.certificationBySampleId(idDTO.getId())));
+ @ApiOperation("根据样品id/客户id查询检定证书")
+ @PostMapping("/certificateRecordsById")
+ public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{
+ return ReturnUtil.success(super.packForBT(customerSampleService.certificateRecordsById(customerSampleIdRequest)));
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
new file mode 100644
index 0000000..ebb9d60
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.enums.notifyevent;
+
+/**
+ * 这里定义bean的信息
+ */
+public interface ActionStatusBeanEnum {
+
+ String APPLY_BEAN_NAME = "equipmentApplyBean";
+
+ String SUPPORT_BEAN_NAME = "equipmentSupportBean";
+
+ String MANAGING_BEAN_NAME = "equipmentManagingBean";
+
+ String CERTIFICATE_BEAN_NAME = "certificatePrintBean";
+
+ String LEASE_BEAN_NAME = "equipmentLeaseBean";
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
new file mode 100644
index 0000000..9300729
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
@@ -0,0 +1,63 @@
+package com.casic.missiles.enums.notifyevent;
+
+import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+
+import java.util.HashMap;
+
+public enum AwareActionStatusEnum implements ActionStatusBeanEnum {
+ EQUIPMENT_APPLY_USE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STANDARD_USE),
+ EQUIPMENT_APPLY_STOP(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STOP),
+ EQUIPMENT_APPLY_REVOKE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.REVOKE),
+ EQUIPMENT_SUPPORT_STATUS(SUPPORT_BEAN_NAME, ""),
+ DEVICE_MANAGING_IDLE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.IDLE),
+ DEVICE_MANAGING_SEALED(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SEALED),
+ DEVICE_MANAGING_USE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.USE),
+ DEVICE_MANAGING_SCRAP(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SCRAP),
+ DEVICE_MANAGING_MANAGEMENT(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.MANAGEMENT),
+ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING),
+ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED),
+ CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""),
+ ACTION_STATUS_MAP(new HashMap() {
+ {
+ put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE);
+ put(ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL, EQUIPMENT_APPLY_STOP);
+ put(ApplyFromIdEnum.STANDARD_RESUME_APPROVAL, EQUIPMENT_APPLY_REVOKE);
+ put(ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL, EQUIPMENT_SUPPORT_STATUS);
+ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE);
+ put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED);
+ put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE);
+ put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP);
+ put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT);
+ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请
+ put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请
+ put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填
+ }
+ });
+ String actionBeanName;
+ String status;
+
+ AwareActionStatusEnum(String actionBeanName, String status) {
+ this.actionBeanName = actionBeanName;
+ this.status = status;
+ }
+
+ public String getActionBeanName() {
+ return actionBeanName;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public HashMap actionStatusMap;
+
+ AwareActionStatusEnum(HashMap actionStatusMap) {
+ this.actionStatusMap = actionStatusMap;
+ }
+
+ public HashMap getActionStatusMap() {
+ return actionStatusMap;
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
new file mode 100644
index 0000000..229d96f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
@@ -0,0 +1,13 @@
+package com.casic.missiles.listeners;
+
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+
+/**
+ * @author cz
+ * 工作流监听后置事件
+ */
+public interface NotifyStatusPostProcessor {
+
+ void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO);
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
index c2597b0..8ac418f 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
@@ -1,20 +1,18 @@
package com.casic.missiles.listeners.flowable;
-import com.alibaba.excel.util.DateUtils;
-import cn.hutool.core.lang.Assert;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
import com.casic.missiles.enums.system.ApplyFromIdEnum;
import com.casic.missiles.enums.system.ApprovalStatusEnum;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
import com.casic.missiles.exception.BusinessException;
-import com.casic.missiles.mapper.MeterFixedAssetsMapper;
-import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.mapper.equipment.*;
import com.casic.missiles.mapper.system.SystemFlowFormMapper;
-import com.casic.missiles.model.business.BusinessCertificateReport;
import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper;
import com.casic.missiles.model.equipment.*;
import com.casic.missiles.model.system.SystemFlowForm;
@@ -32,12 +30,6 @@
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
@Slf4j
@Component
public class ProcessUpdateStateListener implements ExecutionListener {
@@ -56,175 +48,20 @@
// 查出流程定义信息
SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper);
String id = execution.getProcessInstanceBusinessKey();
- switch (systemFlowForm.getFormId()) {
- // 标准装置申请
- case ApplyFromIdEnum.STANDARD_REVERT_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STANDARD_USE);
- break;
- case ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STOP);
- break;
- case ApplyFromIdEnum.STANDARD_RESUME_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.REVOKE);
- break;
- case ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL:
- changeSupportingEquipment(id);
- break;
- // 设备状态管理申请
- case ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.IDLE);
- break;
- case ApplyFromIdEnum.DEVICE_SEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SEALED);
- break;
- case ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.USE);
- break;
- case ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SCRAP);
- break;
- case ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.MANAGEMENT);
- break;
- // 设备借用领用申请
- case ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_COLLECTING);
- break;
- case ApplyFromIdEnum.DEVICE_BORROW_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_BORROWED);
- break;
- //证书打印审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
- //证书报告审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
-
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId());
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id(id)
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
}
-
//设置通过状态为已通过
runtimeService.updateBusinessStatus(execution.getProcessInstanceId(), ApprovalStatusEnum.PASSED);
-
//审批通过,通知发起人
sendMessageAndSocket(execution, systemFlowForm);
}
- /**
- * 审批通过后修改标准装置配套设备
- * @param id
- */
- private void changeSupportingEquipment(String id) {
- EquipmentStandardApplyMapper standardApplyMapper = SpringContextUtil.getBean(EquipmentStandardApplyMapper.class);
- EquipmentStandardApplyEquipmentMapper applyEquipmentMapper = SpringContextUtil.getBean(EquipmentStandardApplyEquipmentMapper.class);
- EquipmentStandardSupportMapper supportMapper = SpringContextUtil.getBean(EquipmentStandardSupportMapper.class);
- List supportEquipments = new ArrayList<>();
- // 通过申请id查询申请信息
- EquipmentStandardApply standardApply = standardApplyMapper.selectById(id);
- // 通过申请id查询出申请设备列表
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("standard_apply_id",id);
- List equipmentStandardApplyEquipments = applyEquipmentMapper.selectList(queryWrapper);
- // 设备ids
- List equipmentIds = equipmentStandardApplyEquipments.stream().map(EquipmentStandardApplyEquipment::getEquipmentId).collect(Collectors.toList());
- for (Long equipmentId : equipmentIds) {
- EquipmentStandardSupportEquipment supportEquipment = new EquipmentStandardSupportEquipment();
- supportEquipment.setEquipmentId(equipmentId);
- supportEquipment.setStandardEquipmentId(Long.valueOf(standardApply.getStandardEquipmentId()));
- supportEquipments.add(supportEquipment);
- }
- // 通过标准装置id删除原先配套设备
- QueryWrapper supportEquipmentWrapper = new QueryWrapper<>();
- supportEquipmentWrapper.eq("standard_equipment_id",standardApply.getStandardEquipmentId());
- supportMapper.delete(supportEquipmentWrapper);
- // 新增配套设备
- for (EquipmentStandardSupportEquipment supportEquipment : supportEquipments) {
- if (supportMapper.insert(supportEquipment) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- }
- /**
- * 审批通过后修改设备借用/领用状态
- * @param id
- */
- private void updateEquipmentApplyState(String id, String state) {
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.eq("id", id).set("process_result", state);
- if (equipmentApplyMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- /**
- * 审批通过后修改设备管理状态
- * 新增状态变更记录表
- * @param id
- */
- private void updateEquipmentState(String id, String state) {
- EquipmentApplyEquipmentMapper equipmentMapper = SpringContextUtil.getBean(EquipmentApplyEquipmentMapper.class);
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- EquipmentStateChangeLogMapper stateChangeLogMapper = SpringContextUtil.getBean(EquipmentStateChangeLogMapper.class);
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- // 获取申请关联的设备id
- QueryWrapper wrapper = new QueryWrapper<>();
- wrapper.eq("apply_id", id);
- List equipmentApplyEquipments = equipmentMapper.selectList(wrapper);
- // 获取设备idList
- List equipmentIds = equipmentApplyEquipments.stream().map(EquipmentApplyEquipment::getEquipmentId).collect(Collectors.toList());
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", equipmentIds).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) > 0) {
- UpdateWrapper logUpdateWrapper = new UpdateWrapper<>();
- // 修改状态变更记录结束时间
- logUpdateWrapper.in("equipment_id", equipmentIds).isNull("end_date").set("end_date", DateUtils.format(new Date()));
- if (stateChangeLogMapper.update(null, logUpdateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- // 获取当前申请的信息
- EquipmentApply equipmentApply = equipmentApplyMapper.selectById(id);
- // 新增状态变更记录
- for (EquipmentApplyEquipment equipment : equipmentApplyEquipments) {
- EquipmentStateChangeLog stateChangeLog = new EquipmentStateChangeLog(Long.parseLong(id), Long.parseLong(equipment.getEquipmentId()), state, DateUtils.format(new Date()), null, Long.parseLong(equipmentApply.getApplyPerson()));
- if (stateChangeLogMapper.insert(stateChangeLog) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- } else {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- /**
- * 审批通过后修改标准装置业务状态
- * @param id
- * @param state
- */
- private void updateStandardState(String id, String state) {
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", id).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- private void updateCertificateState(Long id) {
- Assert.isFalse(Objects.isNull(id), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
- BusinessCertificateReport certificateReport = new BusinessCertificateReport();
- certificateReport.setId(id);
- certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
- certificateReport.setPrintStatus("1"); //打印状态可打印
- int row = certificateReportMapper.updateById(certificateReport);
- if (row <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
private void sendMessageAndSocket(DelegateExecution execution, SystemFlowForm systemFlowForm) {
JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef());
JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef");
@@ -252,4 +89,5 @@
webSocket.sendOneMessage(String.valueOf(rootId), JSONObject.toJSONString(approvalMessage));
}
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java
new file mode 100644
index 0000000..ae742d3
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java
@@ -0,0 +1,43 @@
+package com.casic.missiles.listeners.processor;
+
+import cn.hutool.core.lang.Assert;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.enums.system.ApprovalStatusEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.model.business.BusinessCertificateReport;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+/**
+ * @author cz
+ *
+ * 证书打印审批通过状态回填
+ */
+@Service(ActionStatusBeanEnum.CERTIFICATE_BEAN_NAME)
+public class CertificateStateStatusPostProcessor implements NotifyStatusPostProcessor {
+
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ Long id = Long.valueOf(notifyEventStatusDTO.getId());
+ Assert.isFalse(Objects.isNull(id), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
+ BusinessCertificateReport certificateReport = new BusinessCertificateReport();
+ certificateReport.setId(id);
+ certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
+ certificateReport.setPrintStatus("1"); //打印状态可打印
+ int row = certificateReportMapper.updateById(certificateReport);
+ if (row <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java
new file mode 100644
index 0000000..db56f5f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java
@@ -0,0 +1,32 @@
+package com.casic.missiles.listeners.processor;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.MeterFixedAssetsMapper;
+import com.casic.missiles.model.equipment.EquipmentFixedAssets;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author xzz
+ *
+ * 审批通过后修改标准装置业务状态
+ */
+@Service(ActionStatusBeanEnum.APPLY_BEAN_NAME)
+public class EquipmentApplyStatusPostProcessor implements NotifyStatusPostProcessor {
+
+ @Override
+ public void doUpdateNotifyEventStatus( NotifyEventStatusDTO notifyEventStatusDTO) {
+ MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.in("id", notifyEventStatusDTO.getId()).set("manager_state", notifyEventStatusDTO.getStatus());
+ if (meterFixedAssetsMapper.update(null, updateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
index ae7a28d..4461f67 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
@@ -10,6 +10,7 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.Info.*;
+import com.casic.missiles.dto.customer.MeasureRecordsResponse;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerInfo;
@@ -119,13 +120,20 @@
return ReturnUtil.success(super.packForBT(customerService.certificationByCustomerId(idDTO.getId())));
}
+ @ApiOperation("根据客户id查询检定记录(在样品中实现,可复用)")
+ @PostMapping("/fake/interface")
+ public ReturnDTO> measureRecordsBySampleId() {
+ return null;
+ }
+
@ApiOperation("客户导出")
@PostMapping("/export")
- public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response){
+ public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response) {
customerService.customerExport(request, response);
}
- //*******************************************************************************************************************//
+
+ //*******************************************************************************************************************//
// @ApiOperation("客户批量导入")
// @PostMapping("/batchImport")
// public ReturnDTO exportAdvice(@RequestBody @Valid CustomerAdviceInfo customerAdviceInfo, BindingResult bindingResult) {
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
index c7d6b3f..101a5d0 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
@@ -10,9 +10,9 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.MeasureRecordsResponse;
+import com.casic.missiles.dto.customer.sample.CustomerSampleIdRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListResponse;
-import com.casic.missiles.dto.customer.sample.MeasureRecordsIdRequest;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerSampleInfo;
@@ -94,20 +94,18 @@
customerSampleService.sampleExport(request, response);
}
- @ApiOperation("根据样品id或客户id查询检定记录")
- @PostMapping("/measureRecordsBySampleId")
- public ReturnDTO> mesureRecordsBySampleId(@RequestBody MeasureRecordsIdRequest recordsIdRequest) {
- return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsBySampleId(recordsIdRequest)));
+ @ApiOperation("根据样品id/客户id查询检定记录")
+ @PostMapping("/measureRecordsById")
+ public ReturnDTO> measureRecordsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) {
+ return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsById(customerSampleIdRequest)));
}
- @ApiOperation("根据样品id查询检定证书")
- @PostMapping("/certificationBySampleId")
- public ReturnDTO> certificationBySampleId(@RequestBody @Valid IdDTO idDTO) {
- Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- return ReturnUtil.success(super.packForBT(customerSampleService.certificationBySampleId(idDTO.getId())));
+ @ApiOperation("根据样品id/客户id查询检定证书")
+ @PostMapping("/certificateRecordsById")
+ public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{
+ return ReturnUtil.success(super.packForBT(customerSampleService.certificateRecordsById(customerSampleIdRequest)));
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
new file mode 100644
index 0000000..ebb9d60
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.enums.notifyevent;
+
+/**
+ * 这里定义bean的信息
+ */
+public interface ActionStatusBeanEnum {
+
+ String APPLY_BEAN_NAME = "equipmentApplyBean";
+
+ String SUPPORT_BEAN_NAME = "equipmentSupportBean";
+
+ String MANAGING_BEAN_NAME = "equipmentManagingBean";
+
+ String CERTIFICATE_BEAN_NAME = "certificatePrintBean";
+
+ String LEASE_BEAN_NAME = "equipmentLeaseBean";
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
new file mode 100644
index 0000000..9300729
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
@@ -0,0 +1,63 @@
+package com.casic.missiles.enums.notifyevent;
+
+import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+
+import java.util.HashMap;
+
+public enum AwareActionStatusEnum implements ActionStatusBeanEnum {
+ EQUIPMENT_APPLY_USE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STANDARD_USE),
+ EQUIPMENT_APPLY_STOP(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STOP),
+ EQUIPMENT_APPLY_REVOKE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.REVOKE),
+ EQUIPMENT_SUPPORT_STATUS(SUPPORT_BEAN_NAME, ""),
+ DEVICE_MANAGING_IDLE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.IDLE),
+ DEVICE_MANAGING_SEALED(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SEALED),
+ DEVICE_MANAGING_USE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.USE),
+ DEVICE_MANAGING_SCRAP(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SCRAP),
+ DEVICE_MANAGING_MANAGEMENT(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.MANAGEMENT),
+ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING),
+ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED),
+ CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""),
+ ACTION_STATUS_MAP(new HashMap() {
+ {
+ put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE);
+ put(ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL, EQUIPMENT_APPLY_STOP);
+ put(ApplyFromIdEnum.STANDARD_RESUME_APPROVAL, EQUIPMENT_APPLY_REVOKE);
+ put(ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL, EQUIPMENT_SUPPORT_STATUS);
+ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE);
+ put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED);
+ put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE);
+ put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP);
+ put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT);
+ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请
+ put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请
+ put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填
+ }
+ });
+ String actionBeanName;
+ String status;
+
+ AwareActionStatusEnum(String actionBeanName, String status) {
+ this.actionBeanName = actionBeanName;
+ this.status = status;
+ }
+
+ public String getActionBeanName() {
+ return actionBeanName;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public HashMap actionStatusMap;
+
+ AwareActionStatusEnum(HashMap actionStatusMap) {
+ this.actionStatusMap = actionStatusMap;
+ }
+
+ public HashMap getActionStatusMap() {
+ return actionStatusMap;
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
new file mode 100644
index 0000000..229d96f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
@@ -0,0 +1,13 @@
+package com.casic.missiles.listeners;
+
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+
+/**
+ * @author cz
+ * 工作流监听后置事件
+ */
+public interface NotifyStatusPostProcessor {
+
+ void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO);
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
index c2597b0..8ac418f 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
@@ -1,20 +1,18 @@
package com.casic.missiles.listeners.flowable;
-import com.alibaba.excel.util.DateUtils;
-import cn.hutool.core.lang.Assert;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
import com.casic.missiles.enums.system.ApplyFromIdEnum;
import com.casic.missiles.enums.system.ApprovalStatusEnum;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
import com.casic.missiles.exception.BusinessException;
-import com.casic.missiles.mapper.MeterFixedAssetsMapper;
-import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.mapper.equipment.*;
import com.casic.missiles.mapper.system.SystemFlowFormMapper;
-import com.casic.missiles.model.business.BusinessCertificateReport;
import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper;
import com.casic.missiles.model.equipment.*;
import com.casic.missiles.model.system.SystemFlowForm;
@@ -32,12 +30,6 @@
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
@Slf4j
@Component
public class ProcessUpdateStateListener implements ExecutionListener {
@@ -56,175 +48,20 @@
// 查出流程定义信息
SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper);
String id = execution.getProcessInstanceBusinessKey();
- switch (systemFlowForm.getFormId()) {
- // 标准装置申请
- case ApplyFromIdEnum.STANDARD_REVERT_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STANDARD_USE);
- break;
- case ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STOP);
- break;
- case ApplyFromIdEnum.STANDARD_RESUME_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.REVOKE);
- break;
- case ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL:
- changeSupportingEquipment(id);
- break;
- // 设备状态管理申请
- case ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.IDLE);
- break;
- case ApplyFromIdEnum.DEVICE_SEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SEALED);
- break;
- case ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.USE);
- break;
- case ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SCRAP);
- break;
- case ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.MANAGEMENT);
- break;
- // 设备借用领用申请
- case ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_COLLECTING);
- break;
- case ApplyFromIdEnum.DEVICE_BORROW_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_BORROWED);
- break;
- //证书打印审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
- //证书报告审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
-
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId());
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id(id)
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
}
-
//设置通过状态为已通过
runtimeService.updateBusinessStatus(execution.getProcessInstanceId(), ApprovalStatusEnum.PASSED);
-
//审批通过,通知发起人
sendMessageAndSocket(execution, systemFlowForm);
}
- /**
- * 审批通过后修改标准装置配套设备
- * @param id
- */
- private void changeSupportingEquipment(String id) {
- EquipmentStandardApplyMapper standardApplyMapper = SpringContextUtil.getBean(EquipmentStandardApplyMapper.class);
- EquipmentStandardApplyEquipmentMapper applyEquipmentMapper = SpringContextUtil.getBean(EquipmentStandardApplyEquipmentMapper.class);
- EquipmentStandardSupportMapper supportMapper = SpringContextUtil.getBean(EquipmentStandardSupportMapper.class);
- List supportEquipments = new ArrayList<>();
- // 通过申请id查询申请信息
- EquipmentStandardApply standardApply = standardApplyMapper.selectById(id);
- // 通过申请id查询出申请设备列表
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("standard_apply_id",id);
- List equipmentStandardApplyEquipments = applyEquipmentMapper.selectList(queryWrapper);
- // 设备ids
- List equipmentIds = equipmentStandardApplyEquipments.stream().map(EquipmentStandardApplyEquipment::getEquipmentId).collect(Collectors.toList());
- for (Long equipmentId : equipmentIds) {
- EquipmentStandardSupportEquipment supportEquipment = new EquipmentStandardSupportEquipment();
- supportEquipment.setEquipmentId(equipmentId);
- supportEquipment.setStandardEquipmentId(Long.valueOf(standardApply.getStandardEquipmentId()));
- supportEquipments.add(supportEquipment);
- }
- // 通过标准装置id删除原先配套设备
- QueryWrapper supportEquipmentWrapper = new QueryWrapper<>();
- supportEquipmentWrapper.eq("standard_equipment_id",standardApply.getStandardEquipmentId());
- supportMapper.delete(supportEquipmentWrapper);
- // 新增配套设备
- for (EquipmentStandardSupportEquipment supportEquipment : supportEquipments) {
- if (supportMapper.insert(supportEquipment) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- }
- /**
- * 审批通过后修改设备借用/领用状态
- * @param id
- */
- private void updateEquipmentApplyState(String id, String state) {
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.eq("id", id).set("process_result", state);
- if (equipmentApplyMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- /**
- * 审批通过后修改设备管理状态
- * 新增状态变更记录表
- * @param id
- */
- private void updateEquipmentState(String id, String state) {
- EquipmentApplyEquipmentMapper equipmentMapper = SpringContextUtil.getBean(EquipmentApplyEquipmentMapper.class);
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- EquipmentStateChangeLogMapper stateChangeLogMapper = SpringContextUtil.getBean(EquipmentStateChangeLogMapper.class);
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- // 获取申请关联的设备id
- QueryWrapper wrapper = new QueryWrapper<>();
- wrapper.eq("apply_id", id);
- List equipmentApplyEquipments = equipmentMapper.selectList(wrapper);
- // 获取设备idList
- List equipmentIds = equipmentApplyEquipments.stream().map(EquipmentApplyEquipment::getEquipmentId).collect(Collectors.toList());
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", equipmentIds).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) > 0) {
- UpdateWrapper logUpdateWrapper = new UpdateWrapper<>();
- // 修改状态变更记录结束时间
- logUpdateWrapper.in("equipment_id", equipmentIds).isNull("end_date").set("end_date", DateUtils.format(new Date()));
- if (stateChangeLogMapper.update(null, logUpdateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- // 获取当前申请的信息
- EquipmentApply equipmentApply = equipmentApplyMapper.selectById(id);
- // 新增状态变更记录
- for (EquipmentApplyEquipment equipment : equipmentApplyEquipments) {
- EquipmentStateChangeLog stateChangeLog = new EquipmentStateChangeLog(Long.parseLong(id), Long.parseLong(equipment.getEquipmentId()), state, DateUtils.format(new Date()), null, Long.parseLong(equipmentApply.getApplyPerson()));
- if (stateChangeLogMapper.insert(stateChangeLog) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- } else {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- /**
- * 审批通过后修改标准装置业务状态
- * @param id
- * @param state
- */
- private void updateStandardState(String id, String state) {
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", id).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- private void updateCertificateState(Long id) {
- Assert.isFalse(Objects.isNull(id), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
- BusinessCertificateReport certificateReport = new BusinessCertificateReport();
- certificateReport.setId(id);
- certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
- certificateReport.setPrintStatus("1"); //打印状态可打印
- int row = certificateReportMapper.updateById(certificateReport);
- if (row <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
private void sendMessageAndSocket(DelegateExecution execution, SystemFlowForm systemFlowForm) {
JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef());
JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef");
@@ -252,4 +89,5 @@
webSocket.sendOneMessage(String.valueOf(rootId), JSONObject.toJSONString(approvalMessage));
}
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java
new file mode 100644
index 0000000..ae742d3
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java
@@ -0,0 +1,43 @@
+package com.casic.missiles.listeners.processor;
+
+import cn.hutool.core.lang.Assert;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.enums.system.ApprovalStatusEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.model.business.BusinessCertificateReport;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+/**
+ * @author cz
+ *
+ * 证书打印审批通过状态回填
+ */
+@Service(ActionStatusBeanEnum.CERTIFICATE_BEAN_NAME)
+public class CertificateStateStatusPostProcessor implements NotifyStatusPostProcessor {
+
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ Long id = Long.valueOf(notifyEventStatusDTO.getId());
+ Assert.isFalse(Objects.isNull(id), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
+ BusinessCertificateReport certificateReport = new BusinessCertificateReport();
+ certificateReport.setId(id);
+ certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
+ certificateReport.setPrintStatus("1"); //打印状态可打印
+ int row = certificateReportMapper.updateById(certificateReport);
+ if (row <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java
new file mode 100644
index 0000000..db56f5f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java
@@ -0,0 +1,32 @@
+package com.casic.missiles.listeners.processor;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.MeterFixedAssetsMapper;
+import com.casic.missiles.model.equipment.EquipmentFixedAssets;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author xzz
+ *
+ * 审批通过后修改标准装置业务状态
+ */
+@Service(ActionStatusBeanEnum.APPLY_BEAN_NAME)
+public class EquipmentApplyStatusPostProcessor implements NotifyStatusPostProcessor {
+
+ @Override
+ public void doUpdateNotifyEventStatus( NotifyEventStatusDTO notifyEventStatusDTO) {
+ MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.in("id", notifyEventStatusDTO.getId()).set("manager_state", notifyEventStatusDTO.getStatus());
+ if (meterFixedAssetsMapper.update(null, updateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java
new file mode 100644
index 0000000..528fab8
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java
@@ -0,0 +1,30 @@
+package com.casic.missiles.listeners.processor;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.equipment.EquipmentApplyMapper;
+import com.casic.missiles.model.equipment.EquipmentApply;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+/**
+ * 审批通过后
+ * 修改设备租借状态
+ *
+ */
+@Service(ActionStatusBeanEnum.LEASE_BEAN_NAME)
+public class EquipmentLeaseStatusPostProcessor implements NotifyStatusPostProcessor {
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.eq("id", notifyEventStatusDTO.getId()).set("process_result", notifyEventStatusDTO.getStatus());
+ if (equipmentApplyMapper.update(null, updateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
index ae7a28d..4461f67 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
@@ -10,6 +10,7 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.Info.*;
+import com.casic.missiles.dto.customer.MeasureRecordsResponse;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerInfo;
@@ -119,13 +120,20 @@
return ReturnUtil.success(super.packForBT(customerService.certificationByCustomerId(idDTO.getId())));
}
+ @ApiOperation("根据客户id查询检定记录(在样品中实现,可复用)")
+ @PostMapping("/fake/interface")
+ public ReturnDTO> measureRecordsBySampleId() {
+ return null;
+ }
+
@ApiOperation("客户导出")
@PostMapping("/export")
- public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response){
+ public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response) {
customerService.customerExport(request, response);
}
- //*******************************************************************************************************************//
+
+ //*******************************************************************************************************************//
// @ApiOperation("客户批量导入")
// @PostMapping("/batchImport")
// public ReturnDTO exportAdvice(@RequestBody @Valid CustomerAdviceInfo customerAdviceInfo, BindingResult bindingResult) {
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
index c7d6b3f..101a5d0 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
@@ -10,9 +10,9 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.MeasureRecordsResponse;
+import com.casic.missiles.dto.customer.sample.CustomerSampleIdRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListResponse;
-import com.casic.missiles.dto.customer.sample.MeasureRecordsIdRequest;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerSampleInfo;
@@ -94,20 +94,18 @@
customerSampleService.sampleExport(request, response);
}
- @ApiOperation("根据样品id或客户id查询检定记录")
- @PostMapping("/measureRecordsBySampleId")
- public ReturnDTO> mesureRecordsBySampleId(@RequestBody MeasureRecordsIdRequest recordsIdRequest) {
- return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsBySampleId(recordsIdRequest)));
+ @ApiOperation("根据样品id/客户id查询检定记录")
+ @PostMapping("/measureRecordsById")
+ public ReturnDTO> measureRecordsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) {
+ return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsById(customerSampleIdRequest)));
}
- @ApiOperation("根据样品id查询检定证书")
- @PostMapping("/certificationBySampleId")
- public ReturnDTO> certificationBySampleId(@RequestBody @Valid IdDTO idDTO) {
- Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- return ReturnUtil.success(super.packForBT(customerSampleService.certificationBySampleId(idDTO.getId())));
+ @ApiOperation("根据样品id/客户id查询检定证书")
+ @PostMapping("/certificateRecordsById")
+ public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{
+ return ReturnUtil.success(super.packForBT(customerSampleService.certificateRecordsById(customerSampleIdRequest)));
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
new file mode 100644
index 0000000..ebb9d60
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.enums.notifyevent;
+
+/**
+ * 这里定义bean的信息
+ */
+public interface ActionStatusBeanEnum {
+
+ String APPLY_BEAN_NAME = "equipmentApplyBean";
+
+ String SUPPORT_BEAN_NAME = "equipmentSupportBean";
+
+ String MANAGING_BEAN_NAME = "equipmentManagingBean";
+
+ String CERTIFICATE_BEAN_NAME = "certificatePrintBean";
+
+ String LEASE_BEAN_NAME = "equipmentLeaseBean";
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
new file mode 100644
index 0000000..9300729
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
@@ -0,0 +1,63 @@
+package com.casic.missiles.enums.notifyevent;
+
+import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+
+import java.util.HashMap;
+
+public enum AwareActionStatusEnum implements ActionStatusBeanEnum {
+ EQUIPMENT_APPLY_USE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STANDARD_USE),
+ EQUIPMENT_APPLY_STOP(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STOP),
+ EQUIPMENT_APPLY_REVOKE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.REVOKE),
+ EQUIPMENT_SUPPORT_STATUS(SUPPORT_BEAN_NAME, ""),
+ DEVICE_MANAGING_IDLE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.IDLE),
+ DEVICE_MANAGING_SEALED(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SEALED),
+ DEVICE_MANAGING_USE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.USE),
+ DEVICE_MANAGING_SCRAP(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SCRAP),
+ DEVICE_MANAGING_MANAGEMENT(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.MANAGEMENT),
+ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING),
+ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED),
+ CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""),
+ ACTION_STATUS_MAP(new HashMap() {
+ {
+ put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE);
+ put(ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL, EQUIPMENT_APPLY_STOP);
+ put(ApplyFromIdEnum.STANDARD_RESUME_APPROVAL, EQUIPMENT_APPLY_REVOKE);
+ put(ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL, EQUIPMENT_SUPPORT_STATUS);
+ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE);
+ put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED);
+ put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE);
+ put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP);
+ put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT);
+ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请
+ put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请
+ put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填
+ }
+ });
+ String actionBeanName;
+ String status;
+
+ AwareActionStatusEnum(String actionBeanName, String status) {
+ this.actionBeanName = actionBeanName;
+ this.status = status;
+ }
+
+ public String getActionBeanName() {
+ return actionBeanName;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public HashMap actionStatusMap;
+
+ AwareActionStatusEnum(HashMap actionStatusMap) {
+ this.actionStatusMap = actionStatusMap;
+ }
+
+ public HashMap getActionStatusMap() {
+ return actionStatusMap;
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
new file mode 100644
index 0000000..229d96f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
@@ -0,0 +1,13 @@
+package com.casic.missiles.listeners;
+
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+
+/**
+ * @author cz
+ * 工作流监听后置事件
+ */
+public interface NotifyStatusPostProcessor {
+
+ void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO);
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
index c2597b0..8ac418f 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
@@ -1,20 +1,18 @@
package com.casic.missiles.listeners.flowable;
-import com.alibaba.excel.util.DateUtils;
-import cn.hutool.core.lang.Assert;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
import com.casic.missiles.enums.system.ApplyFromIdEnum;
import com.casic.missiles.enums.system.ApprovalStatusEnum;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
import com.casic.missiles.exception.BusinessException;
-import com.casic.missiles.mapper.MeterFixedAssetsMapper;
-import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.mapper.equipment.*;
import com.casic.missiles.mapper.system.SystemFlowFormMapper;
-import com.casic.missiles.model.business.BusinessCertificateReport;
import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper;
import com.casic.missiles.model.equipment.*;
import com.casic.missiles.model.system.SystemFlowForm;
@@ -32,12 +30,6 @@
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
@Slf4j
@Component
public class ProcessUpdateStateListener implements ExecutionListener {
@@ -56,175 +48,20 @@
// 查出流程定义信息
SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper);
String id = execution.getProcessInstanceBusinessKey();
- switch (systemFlowForm.getFormId()) {
- // 标准装置申请
- case ApplyFromIdEnum.STANDARD_REVERT_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STANDARD_USE);
- break;
- case ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STOP);
- break;
- case ApplyFromIdEnum.STANDARD_RESUME_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.REVOKE);
- break;
- case ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL:
- changeSupportingEquipment(id);
- break;
- // 设备状态管理申请
- case ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.IDLE);
- break;
- case ApplyFromIdEnum.DEVICE_SEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SEALED);
- break;
- case ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.USE);
- break;
- case ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SCRAP);
- break;
- case ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.MANAGEMENT);
- break;
- // 设备借用领用申请
- case ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_COLLECTING);
- break;
- case ApplyFromIdEnum.DEVICE_BORROW_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_BORROWED);
- break;
- //证书打印审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
- //证书报告审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
-
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId());
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id(id)
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
}
-
//设置通过状态为已通过
runtimeService.updateBusinessStatus(execution.getProcessInstanceId(), ApprovalStatusEnum.PASSED);
-
//审批通过,通知发起人
sendMessageAndSocket(execution, systemFlowForm);
}
- /**
- * 审批通过后修改标准装置配套设备
- * @param id
- */
- private void changeSupportingEquipment(String id) {
- EquipmentStandardApplyMapper standardApplyMapper = SpringContextUtil.getBean(EquipmentStandardApplyMapper.class);
- EquipmentStandardApplyEquipmentMapper applyEquipmentMapper = SpringContextUtil.getBean(EquipmentStandardApplyEquipmentMapper.class);
- EquipmentStandardSupportMapper supportMapper = SpringContextUtil.getBean(EquipmentStandardSupportMapper.class);
- List supportEquipments = new ArrayList<>();
- // 通过申请id查询申请信息
- EquipmentStandardApply standardApply = standardApplyMapper.selectById(id);
- // 通过申请id查询出申请设备列表
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("standard_apply_id",id);
- List equipmentStandardApplyEquipments = applyEquipmentMapper.selectList(queryWrapper);
- // 设备ids
- List equipmentIds = equipmentStandardApplyEquipments.stream().map(EquipmentStandardApplyEquipment::getEquipmentId).collect(Collectors.toList());
- for (Long equipmentId : equipmentIds) {
- EquipmentStandardSupportEquipment supportEquipment = new EquipmentStandardSupportEquipment();
- supportEquipment.setEquipmentId(equipmentId);
- supportEquipment.setStandardEquipmentId(Long.valueOf(standardApply.getStandardEquipmentId()));
- supportEquipments.add(supportEquipment);
- }
- // 通过标准装置id删除原先配套设备
- QueryWrapper supportEquipmentWrapper = new QueryWrapper<>();
- supportEquipmentWrapper.eq("standard_equipment_id",standardApply.getStandardEquipmentId());
- supportMapper.delete(supportEquipmentWrapper);
- // 新增配套设备
- for (EquipmentStandardSupportEquipment supportEquipment : supportEquipments) {
- if (supportMapper.insert(supportEquipment) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- }
- /**
- * 审批通过后修改设备借用/领用状态
- * @param id
- */
- private void updateEquipmentApplyState(String id, String state) {
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.eq("id", id).set("process_result", state);
- if (equipmentApplyMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- /**
- * 审批通过后修改设备管理状态
- * 新增状态变更记录表
- * @param id
- */
- private void updateEquipmentState(String id, String state) {
- EquipmentApplyEquipmentMapper equipmentMapper = SpringContextUtil.getBean(EquipmentApplyEquipmentMapper.class);
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- EquipmentStateChangeLogMapper stateChangeLogMapper = SpringContextUtil.getBean(EquipmentStateChangeLogMapper.class);
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- // 获取申请关联的设备id
- QueryWrapper wrapper = new QueryWrapper<>();
- wrapper.eq("apply_id", id);
- List equipmentApplyEquipments = equipmentMapper.selectList(wrapper);
- // 获取设备idList
- List equipmentIds = equipmentApplyEquipments.stream().map(EquipmentApplyEquipment::getEquipmentId).collect(Collectors.toList());
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", equipmentIds).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) > 0) {
- UpdateWrapper logUpdateWrapper = new UpdateWrapper<>();
- // 修改状态变更记录结束时间
- logUpdateWrapper.in("equipment_id", equipmentIds).isNull("end_date").set("end_date", DateUtils.format(new Date()));
- if (stateChangeLogMapper.update(null, logUpdateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- // 获取当前申请的信息
- EquipmentApply equipmentApply = equipmentApplyMapper.selectById(id);
- // 新增状态变更记录
- for (EquipmentApplyEquipment equipment : equipmentApplyEquipments) {
- EquipmentStateChangeLog stateChangeLog = new EquipmentStateChangeLog(Long.parseLong(id), Long.parseLong(equipment.getEquipmentId()), state, DateUtils.format(new Date()), null, Long.parseLong(equipmentApply.getApplyPerson()));
- if (stateChangeLogMapper.insert(stateChangeLog) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- } else {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- /**
- * 审批通过后修改标准装置业务状态
- * @param id
- * @param state
- */
- private void updateStandardState(String id, String state) {
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", id).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- private void updateCertificateState(Long id) {
- Assert.isFalse(Objects.isNull(id), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
- BusinessCertificateReport certificateReport = new BusinessCertificateReport();
- certificateReport.setId(id);
- certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
- certificateReport.setPrintStatus("1"); //打印状态可打印
- int row = certificateReportMapper.updateById(certificateReport);
- if (row <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
private void sendMessageAndSocket(DelegateExecution execution, SystemFlowForm systemFlowForm) {
JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef());
JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef");
@@ -252,4 +89,5 @@
webSocket.sendOneMessage(String.valueOf(rootId), JSONObject.toJSONString(approvalMessage));
}
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java
new file mode 100644
index 0000000..ae742d3
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java
@@ -0,0 +1,43 @@
+package com.casic.missiles.listeners.processor;
+
+import cn.hutool.core.lang.Assert;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.enums.system.ApprovalStatusEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.model.business.BusinessCertificateReport;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+/**
+ * @author cz
+ *
+ * 证书打印审批通过状态回填
+ */
+@Service(ActionStatusBeanEnum.CERTIFICATE_BEAN_NAME)
+public class CertificateStateStatusPostProcessor implements NotifyStatusPostProcessor {
+
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ Long id = Long.valueOf(notifyEventStatusDTO.getId());
+ Assert.isFalse(Objects.isNull(id), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
+ BusinessCertificateReport certificateReport = new BusinessCertificateReport();
+ certificateReport.setId(id);
+ certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
+ certificateReport.setPrintStatus("1"); //打印状态可打印
+ int row = certificateReportMapper.updateById(certificateReport);
+ if (row <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java
new file mode 100644
index 0000000..db56f5f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java
@@ -0,0 +1,32 @@
+package com.casic.missiles.listeners.processor;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.MeterFixedAssetsMapper;
+import com.casic.missiles.model.equipment.EquipmentFixedAssets;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author xzz
+ *
+ * 审批通过后修改标准装置业务状态
+ */
+@Service(ActionStatusBeanEnum.APPLY_BEAN_NAME)
+public class EquipmentApplyStatusPostProcessor implements NotifyStatusPostProcessor {
+
+ @Override
+ public void doUpdateNotifyEventStatus( NotifyEventStatusDTO notifyEventStatusDTO) {
+ MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.in("id", notifyEventStatusDTO.getId()).set("manager_state", notifyEventStatusDTO.getStatus());
+ if (meterFixedAssetsMapper.update(null, updateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java
new file mode 100644
index 0000000..528fab8
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java
@@ -0,0 +1,30 @@
+package com.casic.missiles.listeners.processor;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.equipment.EquipmentApplyMapper;
+import com.casic.missiles.model.equipment.EquipmentApply;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+/**
+ * 审批通过后
+ * 修改设备租借状态
+ *
+ */
+@Service(ActionStatusBeanEnum.LEASE_BEAN_NAME)
+public class EquipmentLeaseStatusPostProcessor implements NotifyStatusPostProcessor {
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.eq("id", notifyEventStatusDTO.getId()).set("process_result", notifyEventStatusDTO.getStatus());
+ if (equipmentApplyMapper.update(null, updateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentManagingStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentManagingStatusPostProcessor.java
new file mode 100644
index 0000000..773539e
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentManagingStatusPostProcessor.java
@@ -0,0 +1,70 @@
+package com.casic.missiles.listeners.processor;
+
+import com.alibaba.excel.util.DateUtils;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.MeterFixedAssetsMapper;
+import com.casic.missiles.mapper.equipment.EquipmentApplyEquipmentMapper;
+import com.casic.missiles.mapper.equipment.EquipmentApplyMapper;
+import com.casic.missiles.mapper.equipment.EquipmentStateChangeLogMapper;
+import com.casic.missiles.model.equipment.EquipmentApply;
+import com.casic.missiles.model.equipment.EquipmentApplyEquipment;
+import com.casic.missiles.model.equipment.EquipmentFixedAssets;
+import com.casic.missiles.model.equipment.EquipmentStateChangeLog;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author xzz
+ * * 审批通过后修改设备管理状态
+ * * 新增状态变更记录表
+ */
+@Service(ActionStatusBeanEnum.MANAGING_BEAN_NAME)
+public class EquipmentManagingStatusPostProcessor implements NotifyStatusPostProcessor {
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ String state=notifyEventStatusDTO.getStatus();
+ String id=notifyEventStatusDTO.getId();
+ EquipmentApplyEquipmentMapper equipmentMapper = SpringContextUtil.getBean(EquipmentApplyEquipmentMapper.class);
+ MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
+ EquipmentStateChangeLogMapper stateChangeLogMapper = SpringContextUtil.getBean(EquipmentStateChangeLogMapper.class);
+ EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
+ // 获取申请关联的设备id
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("apply_id", id);
+ List equipmentApplyEquipments = equipmentMapper.selectList(wrapper);
+ // 获取设备idList
+ List equipmentIds = equipmentApplyEquipments.stream().map(EquipmentApplyEquipment::getEquipmentId).collect(Collectors.toList());
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.in("id", equipmentIds).set("manager_state", state);
+ if (meterFixedAssetsMapper.update(null, updateWrapper) > 0) {
+ UpdateWrapper logUpdateWrapper = new UpdateWrapper<>();
+ // 修改状态变更记录结束时间
+ logUpdateWrapper.in("equipment_id", equipmentIds).isNull("end_date").set("end_date", DateUtils.format(new Date()));
+ if (stateChangeLogMapper.update(null, logUpdateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ // 获取当前申请的信息
+ EquipmentApply equipmentApply = equipmentApplyMapper.selectById(id);
+ // 新增状态变更记录
+ for (EquipmentApplyEquipment equipment : equipmentApplyEquipments) {
+ EquipmentStateChangeLog stateChangeLog = new EquipmentStateChangeLog(Long.parseLong(id), Long.parseLong(equipment.getEquipmentId()), state, DateUtils.format(new Date()), null, Long.parseLong(equipmentApply.getApplyPerson()));
+ if (stateChangeLogMapper.insert(stateChangeLog) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+ } else {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
index ae7a28d..4461f67 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
@@ -10,6 +10,7 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.Info.*;
+import com.casic.missiles.dto.customer.MeasureRecordsResponse;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerInfo;
@@ -119,13 +120,20 @@
return ReturnUtil.success(super.packForBT(customerService.certificationByCustomerId(idDTO.getId())));
}
+ @ApiOperation("根据客户id查询检定记录(在样品中实现,可复用)")
+ @PostMapping("/fake/interface")
+ public ReturnDTO> measureRecordsBySampleId() {
+ return null;
+ }
+
@ApiOperation("客户导出")
@PostMapping("/export")
- public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response){
+ public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response) {
customerService.customerExport(request, response);
}
- //*******************************************************************************************************************//
+
+ //*******************************************************************************************************************//
// @ApiOperation("客户批量导入")
// @PostMapping("/batchImport")
// public ReturnDTO exportAdvice(@RequestBody @Valid CustomerAdviceInfo customerAdviceInfo, BindingResult bindingResult) {
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
index c7d6b3f..101a5d0 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
@@ -10,9 +10,9 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.MeasureRecordsResponse;
+import com.casic.missiles.dto.customer.sample.CustomerSampleIdRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListResponse;
-import com.casic.missiles.dto.customer.sample.MeasureRecordsIdRequest;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerSampleInfo;
@@ -94,20 +94,18 @@
customerSampleService.sampleExport(request, response);
}
- @ApiOperation("根据样品id或客户id查询检定记录")
- @PostMapping("/measureRecordsBySampleId")
- public ReturnDTO> mesureRecordsBySampleId(@RequestBody MeasureRecordsIdRequest recordsIdRequest) {
- return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsBySampleId(recordsIdRequest)));
+ @ApiOperation("根据样品id/客户id查询检定记录")
+ @PostMapping("/measureRecordsById")
+ public ReturnDTO> measureRecordsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) {
+ return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsById(customerSampleIdRequest)));
}
- @ApiOperation("根据样品id查询检定证书")
- @PostMapping("/certificationBySampleId")
- public ReturnDTO> certificationBySampleId(@RequestBody @Valid IdDTO idDTO) {
- Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- return ReturnUtil.success(super.packForBT(customerSampleService.certificationBySampleId(idDTO.getId())));
+ @ApiOperation("根据样品id/客户id查询检定证书")
+ @PostMapping("/certificateRecordsById")
+ public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{
+ return ReturnUtil.success(super.packForBT(customerSampleService.certificateRecordsById(customerSampleIdRequest)));
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
new file mode 100644
index 0000000..ebb9d60
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.enums.notifyevent;
+
+/**
+ * 这里定义bean的信息
+ */
+public interface ActionStatusBeanEnum {
+
+ String APPLY_BEAN_NAME = "equipmentApplyBean";
+
+ String SUPPORT_BEAN_NAME = "equipmentSupportBean";
+
+ String MANAGING_BEAN_NAME = "equipmentManagingBean";
+
+ String CERTIFICATE_BEAN_NAME = "certificatePrintBean";
+
+ String LEASE_BEAN_NAME = "equipmentLeaseBean";
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
new file mode 100644
index 0000000..9300729
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
@@ -0,0 +1,63 @@
+package com.casic.missiles.enums.notifyevent;
+
+import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+
+import java.util.HashMap;
+
+public enum AwareActionStatusEnum implements ActionStatusBeanEnum {
+ EQUIPMENT_APPLY_USE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STANDARD_USE),
+ EQUIPMENT_APPLY_STOP(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STOP),
+ EQUIPMENT_APPLY_REVOKE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.REVOKE),
+ EQUIPMENT_SUPPORT_STATUS(SUPPORT_BEAN_NAME, ""),
+ DEVICE_MANAGING_IDLE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.IDLE),
+ DEVICE_MANAGING_SEALED(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SEALED),
+ DEVICE_MANAGING_USE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.USE),
+ DEVICE_MANAGING_SCRAP(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SCRAP),
+ DEVICE_MANAGING_MANAGEMENT(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.MANAGEMENT),
+ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING),
+ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED),
+ CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""),
+ ACTION_STATUS_MAP(new HashMap() {
+ {
+ put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE);
+ put(ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL, EQUIPMENT_APPLY_STOP);
+ put(ApplyFromIdEnum.STANDARD_RESUME_APPROVAL, EQUIPMENT_APPLY_REVOKE);
+ put(ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL, EQUIPMENT_SUPPORT_STATUS);
+ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE);
+ put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED);
+ put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE);
+ put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP);
+ put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT);
+ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请
+ put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请
+ put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填
+ }
+ });
+ String actionBeanName;
+ String status;
+
+ AwareActionStatusEnum(String actionBeanName, String status) {
+ this.actionBeanName = actionBeanName;
+ this.status = status;
+ }
+
+ public String getActionBeanName() {
+ return actionBeanName;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public HashMap actionStatusMap;
+
+ AwareActionStatusEnum(HashMap actionStatusMap) {
+ this.actionStatusMap = actionStatusMap;
+ }
+
+ public HashMap getActionStatusMap() {
+ return actionStatusMap;
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
new file mode 100644
index 0000000..229d96f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
@@ -0,0 +1,13 @@
+package com.casic.missiles.listeners;
+
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+
+/**
+ * @author cz
+ * 工作流监听后置事件
+ */
+public interface NotifyStatusPostProcessor {
+
+ void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO);
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
index c2597b0..8ac418f 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
@@ -1,20 +1,18 @@
package com.casic.missiles.listeners.flowable;
-import com.alibaba.excel.util.DateUtils;
-import cn.hutool.core.lang.Assert;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
import com.casic.missiles.enums.system.ApplyFromIdEnum;
import com.casic.missiles.enums.system.ApprovalStatusEnum;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
import com.casic.missiles.exception.BusinessException;
-import com.casic.missiles.mapper.MeterFixedAssetsMapper;
-import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.mapper.equipment.*;
import com.casic.missiles.mapper.system.SystemFlowFormMapper;
-import com.casic.missiles.model.business.BusinessCertificateReport;
import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper;
import com.casic.missiles.model.equipment.*;
import com.casic.missiles.model.system.SystemFlowForm;
@@ -32,12 +30,6 @@
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
@Slf4j
@Component
public class ProcessUpdateStateListener implements ExecutionListener {
@@ -56,175 +48,20 @@
// 查出流程定义信息
SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper);
String id = execution.getProcessInstanceBusinessKey();
- switch (systemFlowForm.getFormId()) {
- // 标准装置申请
- case ApplyFromIdEnum.STANDARD_REVERT_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STANDARD_USE);
- break;
- case ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STOP);
- break;
- case ApplyFromIdEnum.STANDARD_RESUME_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.REVOKE);
- break;
- case ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL:
- changeSupportingEquipment(id);
- break;
- // 设备状态管理申请
- case ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.IDLE);
- break;
- case ApplyFromIdEnum.DEVICE_SEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SEALED);
- break;
- case ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.USE);
- break;
- case ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SCRAP);
- break;
- case ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.MANAGEMENT);
- break;
- // 设备借用领用申请
- case ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_COLLECTING);
- break;
- case ApplyFromIdEnum.DEVICE_BORROW_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_BORROWED);
- break;
- //证书打印审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
- //证书报告审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
-
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId());
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id(id)
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
}
-
//设置通过状态为已通过
runtimeService.updateBusinessStatus(execution.getProcessInstanceId(), ApprovalStatusEnum.PASSED);
-
//审批通过,通知发起人
sendMessageAndSocket(execution, systemFlowForm);
}
- /**
- * 审批通过后修改标准装置配套设备
- * @param id
- */
- private void changeSupportingEquipment(String id) {
- EquipmentStandardApplyMapper standardApplyMapper = SpringContextUtil.getBean(EquipmentStandardApplyMapper.class);
- EquipmentStandardApplyEquipmentMapper applyEquipmentMapper = SpringContextUtil.getBean(EquipmentStandardApplyEquipmentMapper.class);
- EquipmentStandardSupportMapper supportMapper = SpringContextUtil.getBean(EquipmentStandardSupportMapper.class);
- List supportEquipments = new ArrayList<>();
- // 通过申请id查询申请信息
- EquipmentStandardApply standardApply = standardApplyMapper.selectById(id);
- // 通过申请id查询出申请设备列表
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("standard_apply_id",id);
- List equipmentStandardApplyEquipments = applyEquipmentMapper.selectList(queryWrapper);
- // 设备ids
- List equipmentIds = equipmentStandardApplyEquipments.stream().map(EquipmentStandardApplyEquipment::getEquipmentId).collect(Collectors.toList());
- for (Long equipmentId : equipmentIds) {
- EquipmentStandardSupportEquipment supportEquipment = new EquipmentStandardSupportEquipment();
- supportEquipment.setEquipmentId(equipmentId);
- supportEquipment.setStandardEquipmentId(Long.valueOf(standardApply.getStandardEquipmentId()));
- supportEquipments.add(supportEquipment);
- }
- // 通过标准装置id删除原先配套设备
- QueryWrapper supportEquipmentWrapper = new QueryWrapper<>();
- supportEquipmentWrapper.eq("standard_equipment_id",standardApply.getStandardEquipmentId());
- supportMapper.delete(supportEquipmentWrapper);
- // 新增配套设备
- for (EquipmentStandardSupportEquipment supportEquipment : supportEquipments) {
- if (supportMapper.insert(supportEquipment) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- }
- /**
- * 审批通过后修改设备借用/领用状态
- * @param id
- */
- private void updateEquipmentApplyState(String id, String state) {
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.eq("id", id).set("process_result", state);
- if (equipmentApplyMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- /**
- * 审批通过后修改设备管理状态
- * 新增状态变更记录表
- * @param id
- */
- private void updateEquipmentState(String id, String state) {
- EquipmentApplyEquipmentMapper equipmentMapper = SpringContextUtil.getBean(EquipmentApplyEquipmentMapper.class);
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- EquipmentStateChangeLogMapper stateChangeLogMapper = SpringContextUtil.getBean(EquipmentStateChangeLogMapper.class);
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- // 获取申请关联的设备id
- QueryWrapper wrapper = new QueryWrapper<>();
- wrapper.eq("apply_id", id);
- List equipmentApplyEquipments = equipmentMapper.selectList(wrapper);
- // 获取设备idList
- List equipmentIds = equipmentApplyEquipments.stream().map(EquipmentApplyEquipment::getEquipmentId).collect(Collectors.toList());
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", equipmentIds).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) > 0) {
- UpdateWrapper logUpdateWrapper = new UpdateWrapper<>();
- // 修改状态变更记录结束时间
- logUpdateWrapper.in("equipment_id", equipmentIds).isNull("end_date").set("end_date", DateUtils.format(new Date()));
- if (stateChangeLogMapper.update(null, logUpdateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- // 获取当前申请的信息
- EquipmentApply equipmentApply = equipmentApplyMapper.selectById(id);
- // 新增状态变更记录
- for (EquipmentApplyEquipment equipment : equipmentApplyEquipments) {
- EquipmentStateChangeLog stateChangeLog = new EquipmentStateChangeLog(Long.parseLong(id), Long.parseLong(equipment.getEquipmentId()), state, DateUtils.format(new Date()), null, Long.parseLong(equipmentApply.getApplyPerson()));
- if (stateChangeLogMapper.insert(stateChangeLog) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- } else {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- /**
- * 审批通过后修改标准装置业务状态
- * @param id
- * @param state
- */
- private void updateStandardState(String id, String state) {
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", id).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- private void updateCertificateState(Long id) {
- Assert.isFalse(Objects.isNull(id), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
- BusinessCertificateReport certificateReport = new BusinessCertificateReport();
- certificateReport.setId(id);
- certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
- certificateReport.setPrintStatus("1"); //打印状态可打印
- int row = certificateReportMapper.updateById(certificateReport);
- if (row <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
private void sendMessageAndSocket(DelegateExecution execution, SystemFlowForm systemFlowForm) {
JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef());
JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef");
@@ -252,4 +89,5 @@
webSocket.sendOneMessage(String.valueOf(rootId), JSONObject.toJSONString(approvalMessage));
}
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java
new file mode 100644
index 0000000..ae742d3
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java
@@ -0,0 +1,43 @@
+package com.casic.missiles.listeners.processor;
+
+import cn.hutool.core.lang.Assert;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.enums.system.ApprovalStatusEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.model.business.BusinessCertificateReport;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+/**
+ * @author cz
+ *
+ * 证书打印审批通过状态回填
+ */
+@Service(ActionStatusBeanEnum.CERTIFICATE_BEAN_NAME)
+public class CertificateStateStatusPostProcessor implements NotifyStatusPostProcessor {
+
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ Long id = Long.valueOf(notifyEventStatusDTO.getId());
+ Assert.isFalse(Objects.isNull(id), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
+ BusinessCertificateReport certificateReport = new BusinessCertificateReport();
+ certificateReport.setId(id);
+ certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
+ certificateReport.setPrintStatus("1"); //打印状态可打印
+ int row = certificateReportMapper.updateById(certificateReport);
+ if (row <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java
new file mode 100644
index 0000000..db56f5f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java
@@ -0,0 +1,32 @@
+package com.casic.missiles.listeners.processor;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.MeterFixedAssetsMapper;
+import com.casic.missiles.model.equipment.EquipmentFixedAssets;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author xzz
+ *
+ * 审批通过后修改标准装置业务状态
+ */
+@Service(ActionStatusBeanEnum.APPLY_BEAN_NAME)
+public class EquipmentApplyStatusPostProcessor implements NotifyStatusPostProcessor {
+
+ @Override
+ public void doUpdateNotifyEventStatus( NotifyEventStatusDTO notifyEventStatusDTO) {
+ MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.in("id", notifyEventStatusDTO.getId()).set("manager_state", notifyEventStatusDTO.getStatus());
+ if (meterFixedAssetsMapper.update(null, updateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java
new file mode 100644
index 0000000..528fab8
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java
@@ -0,0 +1,30 @@
+package com.casic.missiles.listeners.processor;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.equipment.EquipmentApplyMapper;
+import com.casic.missiles.model.equipment.EquipmentApply;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+/**
+ * 审批通过后
+ * 修改设备租借状态
+ *
+ */
+@Service(ActionStatusBeanEnum.LEASE_BEAN_NAME)
+public class EquipmentLeaseStatusPostProcessor implements NotifyStatusPostProcessor {
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.eq("id", notifyEventStatusDTO.getId()).set("process_result", notifyEventStatusDTO.getStatus());
+ if (equipmentApplyMapper.update(null, updateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentManagingStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentManagingStatusPostProcessor.java
new file mode 100644
index 0000000..773539e
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentManagingStatusPostProcessor.java
@@ -0,0 +1,70 @@
+package com.casic.missiles.listeners.processor;
+
+import com.alibaba.excel.util.DateUtils;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.MeterFixedAssetsMapper;
+import com.casic.missiles.mapper.equipment.EquipmentApplyEquipmentMapper;
+import com.casic.missiles.mapper.equipment.EquipmentApplyMapper;
+import com.casic.missiles.mapper.equipment.EquipmentStateChangeLogMapper;
+import com.casic.missiles.model.equipment.EquipmentApply;
+import com.casic.missiles.model.equipment.EquipmentApplyEquipment;
+import com.casic.missiles.model.equipment.EquipmentFixedAssets;
+import com.casic.missiles.model.equipment.EquipmentStateChangeLog;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author xzz
+ * * 审批通过后修改设备管理状态
+ * * 新增状态变更记录表
+ */
+@Service(ActionStatusBeanEnum.MANAGING_BEAN_NAME)
+public class EquipmentManagingStatusPostProcessor implements NotifyStatusPostProcessor {
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ String state=notifyEventStatusDTO.getStatus();
+ String id=notifyEventStatusDTO.getId();
+ EquipmentApplyEquipmentMapper equipmentMapper = SpringContextUtil.getBean(EquipmentApplyEquipmentMapper.class);
+ MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
+ EquipmentStateChangeLogMapper stateChangeLogMapper = SpringContextUtil.getBean(EquipmentStateChangeLogMapper.class);
+ EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
+ // 获取申请关联的设备id
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("apply_id", id);
+ List equipmentApplyEquipments = equipmentMapper.selectList(wrapper);
+ // 获取设备idList
+ List equipmentIds = equipmentApplyEquipments.stream().map(EquipmentApplyEquipment::getEquipmentId).collect(Collectors.toList());
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.in("id", equipmentIds).set("manager_state", state);
+ if (meterFixedAssetsMapper.update(null, updateWrapper) > 0) {
+ UpdateWrapper logUpdateWrapper = new UpdateWrapper<>();
+ // 修改状态变更记录结束时间
+ logUpdateWrapper.in("equipment_id", equipmentIds).isNull("end_date").set("end_date", DateUtils.format(new Date()));
+ if (stateChangeLogMapper.update(null, logUpdateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ // 获取当前申请的信息
+ EquipmentApply equipmentApply = equipmentApplyMapper.selectById(id);
+ // 新增状态变更记录
+ for (EquipmentApplyEquipment equipment : equipmentApplyEquipments) {
+ EquipmentStateChangeLog stateChangeLog = new EquipmentStateChangeLog(Long.parseLong(id), Long.parseLong(equipment.getEquipmentId()), state, DateUtils.format(new Date()), null, Long.parseLong(equipmentApply.getApplyPerson()));
+ if (stateChangeLogMapper.insert(stateChangeLog) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+ } else {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentSupporteStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentSupporteStatusPostProcessor.java
new file mode 100644
index 0000000..e29b191
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentSupporteStatusPostProcessor.java
@@ -0,0 +1,60 @@
+package com.casic.missiles.listeners.processor;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.equipment.EquipmentStandardApplyEquipmentMapper;
+import com.casic.missiles.mapper.equipment.EquipmentStandardApplyMapper;
+import com.casic.missiles.mapper.equipment.EquipmentStandardSupportMapper;
+import com.casic.missiles.model.equipment.EquipmentStandardApply;
+import com.casic.missiles.model.equipment.EquipmentStandardApplyEquipment;
+import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author xzz
+ * * 审批通过后修改标准装置配套设备状态
+ */
+@Service(ActionStatusBeanEnum.SUPPORT_BEAN_NAME)
+public class EquipmentSupporteStatusPostProcessor implements NotifyStatusPostProcessor {
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ String id = notifyEventStatusDTO.getId();
+ EquipmentStandardApplyMapper standardApplyMapper = SpringContextUtil.getBean(EquipmentStandardApplyMapper.class);
+ EquipmentStandardApplyEquipmentMapper applyEquipmentMapper = SpringContextUtil.getBean(EquipmentStandardApplyEquipmentMapper.class);
+ EquipmentStandardSupportMapper supportMapper = SpringContextUtil.getBean(EquipmentStandardSupportMapper.class);
+ List supportEquipments = new ArrayList<>();
+ // 通过申请id查询申请信息
+ EquipmentStandardApply standardApply = standardApplyMapper.selectById(id);
+ // 通过申请id查询出申请设备列表
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("standard_apply_id", id);
+ List equipmentStandardApplyEquipments = applyEquipmentMapper.selectList(queryWrapper);
+ // 设备ids
+ List equipmentIds = equipmentStandardApplyEquipments.stream().map(EquipmentStandardApplyEquipment::getEquipmentId).collect(Collectors.toList());
+ for (Long equipmentId : equipmentIds) {
+ EquipmentStandardSupportEquipment supportEquipment = new EquipmentStandardSupportEquipment();
+ supportEquipment.setEquipmentId(equipmentId);
+ supportEquipment.setStandardEquipmentId(Long.valueOf(standardApply.getStandardEquipmentId()));
+ supportEquipments.add(supportEquipment);
+ }
+ // 通过标准装置id删除原先配套设备
+ QueryWrapper supportEquipmentWrapper = new QueryWrapper<>();
+ supportEquipmentWrapper.eq("standard_equipment_id", standardApply.getStandardEquipmentId());
+ supportMapper.delete(supportEquipmentWrapper);
+ // 新增配套设备
+ for (EquipmentStandardSupportEquipment supportEquipment : supportEquipments) {
+ if (supportMapper.insert(supportEquipment) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+ }
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
index ae7a28d..4461f67 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
@@ -10,6 +10,7 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.Info.*;
+import com.casic.missiles.dto.customer.MeasureRecordsResponse;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerInfo;
@@ -119,13 +120,20 @@
return ReturnUtil.success(super.packForBT(customerService.certificationByCustomerId(idDTO.getId())));
}
+ @ApiOperation("根据客户id查询检定记录(在样品中实现,可复用)")
+ @PostMapping("/fake/interface")
+ public ReturnDTO> measureRecordsBySampleId() {
+ return null;
+ }
+
@ApiOperation("客户导出")
@PostMapping("/export")
- public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response){
+ public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response) {
customerService.customerExport(request, response);
}
- //*******************************************************************************************************************//
+
+ //*******************************************************************************************************************//
// @ApiOperation("客户批量导入")
// @PostMapping("/batchImport")
// public ReturnDTO exportAdvice(@RequestBody @Valid CustomerAdviceInfo customerAdviceInfo, BindingResult bindingResult) {
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
index c7d6b3f..101a5d0 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
@@ -10,9 +10,9 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.MeasureRecordsResponse;
+import com.casic.missiles.dto.customer.sample.CustomerSampleIdRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListResponse;
-import com.casic.missiles.dto.customer.sample.MeasureRecordsIdRequest;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerSampleInfo;
@@ -94,20 +94,18 @@
customerSampleService.sampleExport(request, response);
}
- @ApiOperation("根据样品id或客户id查询检定记录")
- @PostMapping("/measureRecordsBySampleId")
- public ReturnDTO> mesureRecordsBySampleId(@RequestBody MeasureRecordsIdRequest recordsIdRequest) {
- return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsBySampleId(recordsIdRequest)));
+ @ApiOperation("根据样品id/客户id查询检定记录")
+ @PostMapping("/measureRecordsById")
+ public ReturnDTO> measureRecordsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) {
+ return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsById(customerSampleIdRequest)));
}
- @ApiOperation("根据样品id查询检定证书")
- @PostMapping("/certificationBySampleId")
- public ReturnDTO> certificationBySampleId(@RequestBody @Valid IdDTO idDTO) {
- Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- return ReturnUtil.success(super.packForBT(customerSampleService.certificationBySampleId(idDTO.getId())));
+ @ApiOperation("根据样品id/客户id查询检定证书")
+ @PostMapping("/certificateRecordsById")
+ public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{
+ return ReturnUtil.success(super.packForBT(customerSampleService.certificateRecordsById(customerSampleIdRequest)));
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
new file mode 100644
index 0000000..ebb9d60
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.enums.notifyevent;
+
+/**
+ * 这里定义bean的信息
+ */
+public interface ActionStatusBeanEnum {
+
+ String APPLY_BEAN_NAME = "equipmentApplyBean";
+
+ String SUPPORT_BEAN_NAME = "equipmentSupportBean";
+
+ String MANAGING_BEAN_NAME = "equipmentManagingBean";
+
+ String CERTIFICATE_BEAN_NAME = "certificatePrintBean";
+
+ String LEASE_BEAN_NAME = "equipmentLeaseBean";
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
new file mode 100644
index 0000000..9300729
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
@@ -0,0 +1,63 @@
+package com.casic.missiles.enums.notifyevent;
+
+import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+
+import java.util.HashMap;
+
+public enum AwareActionStatusEnum implements ActionStatusBeanEnum {
+ EQUIPMENT_APPLY_USE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STANDARD_USE),
+ EQUIPMENT_APPLY_STOP(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STOP),
+ EQUIPMENT_APPLY_REVOKE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.REVOKE),
+ EQUIPMENT_SUPPORT_STATUS(SUPPORT_BEAN_NAME, ""),
+ DEVICE_MANAGING_IDLE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.IDLE),
+ DEVICE_MANAGING_SEALED(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SEALED),
+ DEVICE_MANAGING_USE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.USE),
+ DEVICE_MANAGING_SCRAP(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SCRAP),
+ DEVICE_MANAGING_MANAGEMENT(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.MANAGEMENT),
+ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING),
+ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED),
+ CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""),
+ ACTION_STATUS_MAP(new HashMap() {
+ {
+ put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE);
+ put(ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL, EQUIPMENT_APPLY_STOP);
+ put(ApplyFromIdEnum.STANDARD_RESUME_APPROVAL, EQUIPMENT_APPLY_REVOKE);
+ put(ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL, EQUIPMENT_SUPPORT_STATUS);
+ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE);
+ put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED);
+ put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE);
+ put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP);
+ put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT);
+ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请
+ put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请
+ put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填
+ }
+ });
+ String actionBeanName;
+ String status;
+
+ AwareActionStatusEnum(String actionBeanName, String status) {
+ this.actionBeanName = actionBeanName;
+ this.status = status;
+ }
+
+ public String getActionBeanName() {
+ return actionBeanName;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public HashMap actionStatusMap;
+
+ AwareActionStatusEnum(HashMap actionStatusMap) {
+ this.actionStatusMap = actionStatusMap;
+ }
+
+ public HashMap getActionStatusMap() {
+ return actionStatusMap;
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
new file mode 100644
index 0000000..229d96f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
@@ -0,0 +1,13 @@
+package com.casic.missiles.listeners;
+
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+
+/**
+ * @author cz
+ * 工作流监听后置事件
+ */
+public interface NotifyStatusPostProcessor {
+
+ void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO);
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
index c2597b0..8ac418f 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
@@ -1,20 +1,18 @@
package com.casic.missiles.listeners.flowable;
-import com.alibaba.excel.util.DateUtils;
-import cn.hutool.core.lang.Assert;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
import com.casic.missiles.enums.system.ApplyFromIdEnum;
import com.casic.missiles.enums.system.ApprovalStatusEnum;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
import com.casic.missiles.exception.BusinessException;
-import com.casic.missiles.mapper.MeterFixedAssetsMapper;
-import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.mapper.equipment.*;
import com.casic.missiles.mapper.system.SystemFlowFormMapper;
-import com.casic.missiles.model.business.BusinessCertificateReport;
import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper;
import com.casic.missiles.model.equipment.*;
import com.casic.missiles.model.system.SystemFlowForm;
@@ -32,12 +30,6 @@
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
@Slf4j
@Component
public class ProcessUpdateStateListener implements ExecutionListener {
@@ -56,175 +48,20 @@
// 查出流程定义信息
SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper);
String id = execution.getProcessInstanceBusinessKey();
- switch (systemFlowForm.getFormId()) {
- // 标准装置申请
- case ApplyFromIdEnum.STANDARD_REVERT_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STANDARD_USE);
- break;
- case ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STOP);
- break;
- case ApplyFromIdEnum.STANDARD_RESUME_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.REVOKE);
- break;
- case ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL:
- changeSupportingEquipment(id);
- break;
- // 设备状态管理申请
- case ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.IDLE);
- break;
- case ApplyFromIdEnum.DEVICE_SEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SEALED);
- break;
- case ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.USE);
- break;
- case ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SCRAP);
- break;
- case ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.MANAGEMENT);
- break;
- // 设备借用领用申请
- case ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_COLLECTING);
- break;
- case ApplyFromIdEnum.DEVICE_BORROW_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_BORROWED);
- break;
- //证书打印审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
- //证书报告审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
-
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId());
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id(id)
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
}
-
//设置通过状态为已通过
runtimeService.updateBusinessStatus(execution.getProcessInstanceId(), ApprovalStatusEnum.PASSED);
-
//审批通过,通知发起人
sendMessageAndSocket(execution, systemFlowForm);
}
- /**
- * 审批通过后修改标准装置配套设备
- * @param id
- */
- private void changeSupportingEquipment(String id) {
- EquipmentStandardApplyMapper standardApplyMapper = SpringContextUtil.getBean(EquipmentStandardApplyMapper.class);
- EquipmentStandardApplyEquipmentMapper applyEquipmentMapper = SpringContextUtil.getBean(EquipmentStandardApplyEquipmentMapper.class);
- EquipmentStandardSupportMapper supportMapper = SpringContextUtil.getBean(EquipmentStandardSupportMapper.class);
- List supportEquipments = new ArrayList<>();
- // 通过申请id查询申请信息
- EquipmentStandardApply standardApply = standardApplyMapper.selectById(id);
- // 通过申请id查询出申请设备列表
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("standard_apply_id",id);
- List equipmentStandardApplyEquipments = applyEquipmentMapper.selectList(queryWrapper);
- // 设备ids
- List equipmentIds = equipmentStandardApplyEquipments.stream().map(EquipmentStandardApplyEquipment::getEquipmentId).collect(Collectors.toList());
- for (Long equipmentId : equipmentIds) {
- EquipmentStandardSupportEquipment supportEquipment = new EquipmentStandardSupportEquipment();
- supportEquipment.setEquipmentId(equipmentId);
- supportEquipment.setStandardEquipmentId(Long.valueOf(standardApply.getStandardEquipmentId()));
- supportEquipments.add(supportEquipment);
- }
- // 通过标准装置id删除原先配套设备
- QueryWrapper supportEquipmentWrapper = new QueryWrapper<>();
- supportEquipmentWrapper.eq("standard_equipment_id",standardApply.getStandardEquipmentId());
- supportMapper.delete(supportEquipmentWrapper);
- // 新增配套设备
- for (EquipmentStandardSupportEquipment supportEquipment : supportEquipments) {
- if (supportMapper.insert(supportEquipment) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- }
- /**
- * 审批通过后修改设备借用/领用状态
- * @param id
- */
- private void updateEquipmentApplyState(String id, String state) {
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.eq("id", id).set("process_result", state);
- if (equipmentApplyMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- /**
- * 审批通过后修改设备管理状态
- * 新增状态变更记录表
- * @param id
- */
- private void updateEquipmentState(String id, String state) {
- EquipmentApplyEquipmentMapper equipmentMapper = SpringContextUtil.getBean(EquipmentApplyEquipmentMapper.class);
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- EquipmentStateChangeLogMapper stateChangeLogMapper = SpringContextUtil.getBean(EquipmentStateChangeLogMapper.class);
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- // 获取申请关联的设备id
- QueryWrapper wrapper = new QueryWrapper<>();
- wrapper.eq("apply_id", id);
- List equipmentApplyEquipments = equipmentMapper.selectList(wrapper);
- // 获取设备idList
- List equipmentIds = equipmentApplyEquipments.stream().map(EquipmentApplyEquipment::getEquipmentId).collect(Collectors.toList());
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", equipmentIds).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) > 0) {
- UpdateWrapper logUpdateWrapper = new UpdateWrapper<>();
- // 修改状态变更记录结束时间
- logUpdateWrapper.in("equipment_id", equipmentIds).isNull("end_date").set("end_date", DateUtils.format(new Date()));
- if (stateChangeLogMapper.update(null, logUpdateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- // 获取当前申请的信息
- EquipmentApply equipmentApply = equipmentApplyMapper.selectById(id);
- // 新增状态变更记录
- for (EquipmentApplyEquipment equipment : equipmentApplyEquipments) {
- EquipmentStateChangeLog stateChangeLog = new EquipmentStateChangeLog(Long.parseLong(id), Long.parseLong(equipment.getEquipmentId()), state, DateUtils.format(new Date()), null, Long.parseLong(equipmentApply.getApplyPerson()));
- if (stateChangeLogMapper.insert(stateChangeLog) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- } else {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- /**
- * 审批通过后修改标准装置业务状态
- * @param id
- * @param state
- */
- private void updateStandardState(String id, String state) {
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", id).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- private void updateCertificateState(Long id) {
- Assert.isFalse(Objects.isNull(id), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
- BusinessCertificateReport certificateReport = new BusinessCertificateReport();
- certificateReport.setId(id);
- certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
- certificateReport.setPrintStatus("1"); //打印状态可打印
- int row = certificateReportMapper.updateById(certificateReport);
- if (row <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
private void sendMessageAndSocket(DelegateExecution execution, SystemFlowForm systemFlowForm) {
JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef());
JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef");
@@ -252,4 +89,5 @@
webSocket.sendOneMessage(String.valueOf(rootId), JSONObject.toJSONString(approvalMessage));
}
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java
new file mode 100644
index 0000000..ae742d3
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java
@@ -0,0 +1,43 @@
+package com.casic.missiles.listeners.processor;
+
+import cn.hutool.core.lang.Assert;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.enums.system.ApprovalStatusEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.model.business.BusinessCertificateReport;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+/**
+ * @author cz
+ *
+ * 证书打印审批通过状态回填
+ */
+@Service(ActionStatusBeanEnum.CERTIFICATE_BEAN_NAME)
+public class CertificateStateStatusPostProcessor implements NotifyStatusPostProcessor {
+
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ Long id = Long.valueOf(notifyEventStatusDTO.getId());
+ Assert.isFalse(Objects.isNull(id), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
+ BusinessCertificateReport certificateReport = new BusinessCertificateReport();
+ certificateReport.setId(id);
+ certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
+ certificateReport.setPrintStatus("1"); //打印状态可打印
+ int row = certificateReportMapper.updateById(certificateReport);
+ if (row <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java
new file mode 100644
index 0000000..db56f5f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java
@@ -0,0 +1,32 @@
+package com.casic.missiles.listeners.processor;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.MeterFixedAssetsMapper;
+import com.casic.missiles.model.equipment.EquipmentFixedAssets;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author xzz
+ *
+ * 审批通过后修改标准装置业务状态
+ */
+@Service(ActionStatusBeanEnum.APPLY_BEAN_NAME)
+public class EquipmentApplyStatusPostProcessor implements NotifyStatusPostProcessor {
+
+ @Override
+ public void doUpdateNotifyEventStatus( NotifyEventStatusDTO notifyEventStatusDTO) {
+ MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.in("id", notifyEventStatusDTO.getId()).set("manager_state", notifyEventStatusDTO.getStatus());
+ if (meterFixedAssetsMapper.update(null, updateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java
new file mode 100644
index 0000000..528fab8
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java
@@ -0,0 +1,30 @@
+package com.casic.missiles.listeners.processor;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.equipment.EquipmentApplyMapper;
+import com.casic.missiles.model.equipment.EquipmentApply;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+/**
+ * 审批通过后
+ * 修改设备租借状态
+ *
+ */
+@Service(ActionStatusBeanEnum.LEASE_BEAN_NAME)
+public class EquipmentLeaseStatusPostProcessor implements NotifyStatusPostProcessor {
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.eq("id", notifyEventStatusDTO.getId()).set("process_result", notifyEventStatusDTO.getStatus());
+ if (equipmentApplyMapper.update(null, updateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentManagingStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentManagingStatusPostProcessor.java
new file mode 100644
index 0000000..773539e
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentManagingStatusPostProcessor.java
@@ -0,0 +1,70 @@
+package com.casic.missiles.listeners.processor;
+
+import com.alibaba.excel.util.DateUtils;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.MeterFixedAssetsMapper;
+import com.casic.missiles.mapper.equipment.EquipmentApplyEquipmentMapper;
+import com.casic.missiles.mapper.equipment.EquipmentApplyMapper;
+import com.casic.missiles.mapper.equipment.EquipmentStateChangeLogMapper;
+import com.casic.missiles.model.equipment.EquipmentApply;
+import com.casic.missiles.model.equipment.EquipmentApplyEquipment;
+import com.casic.missiles.model.equipment.EquipmentFixedAssets;
+import com.casic.missiles.model.equipment.EquipmentStateChangeLog;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author xzz
+ * * 审批通过后修改设备管理状态
+ * * 新增状态变更记录表
+ */
+@Service(ActionStatusBeanEnum.MANAGING_BEAN_NAME)
+public class EquipmentManagingStatusPostProcessor implements NotifyStatusPostProcessor {
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ String state=notifyEventStatusDTO.getStatus();
+ String id=notifyEventStatusDTO.getId();
+ EquipmentApplyEquipmentMapper equipmentMapper = SpringContextUtil.getBean(EquipmentApplyEquipmentMapper.class);
+ MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
+ EquipmentStateChangeLogMapper stateChangeLogMapper = SpringContextUtil.getBean(EquipmentStateChangeLogMapper.class);
+ EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
+ // 获取申请关联的设备id
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("apply_id", id);
+ List equipmentApplyEquipments = equipmentMapper.selectList(wrapper);
+ // 获取设备idList
+ List equipmentIds = equipmentApplyEquipments.stream().map(EquipmentApplyEquipment::getEquipmentId).collect(Collectors.toList());
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.in("id", equipmentIds).set("manager_state", state);
+ if (meterFixedAssetsMapper.update(null, updateWrapper) > 0) {
+ UpdateWrapper logUpdateWrapper = new UpdateWrapper<>();
+ // 修改状态变更记录结束时间
+ logUpdateWrapper.in("equipment_id", equipmentIds).isNull("end_date").set("end_date", DateUtils.format(new Date()));
+ if (stateChangeLogMapper.update(null, logUpdateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ // 获取当前申请的信息
+ EquipmentApply equipmentApply = equipmentApplyMapper.selectById(id);
+ // 新增状态变更记录
+ for (EquipmentApplyEquipment equipment : equipmentApplyEquipments) {
+ EquipmentStateChangeLog stateChangeLog = new EquipmentStateChangeLog(Long.parseLong(id), Long.parseLong(equipment.getEquipmentId()), state, DateUtils.format(new Date()), null, Long.parseLong(equipmentApply.getApplyPerson()));
+ if (stateChangeLogMapper.insert(stateChangeLog) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+ } else {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentSupporteStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentSupporteStatusPostProcessor.java
new file mode 100644
index 0000000..e29b191
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentSupporteStatusPostProcessor.java
@@ -0,0 +1,60 @@
+package com.casic.missiles.listeners.processor;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.equipment.EquipmentStandardApplyEquipmentMapper;
+import com.casic.missiles.mapper.equipment.EquipmentStandardApplyMapper;
+import com.casic.missiles.mapper.equipment.EquipmentStandardSupportMapper;
+import com.casic.missiles.model.equipment.EquipmentStandardApply;
+import com.casic.missiles.model.equipment.EquipmentStandardApplyEquipment;
+import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author xzz
+ * * 审批通过后修改标准装置配套设备状态
+ */
+@Service(ActionStatusBeanEnum.SUPPORT_BEAN_NAME)
+public class EquipmentSupporteStatusPostProcessor implements NotifyStatusPostProcessor {
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ String id = notifyEventStatusDTO.getId();
+ EquipmentStandardApplyMapper standardApplyMapper = SpringContextUtil.getBean(EquipmentStandardApplyMapper.class);
+ EquipmentStandardApplyEquipmentMapper applyEquipmentMapper = SpringContextUtil.getBean(EquipmentStandardApplyEquipmentMapper.class);
+ EquipmentStandardSupportMapper supportMapper = SpringContextUtil.getBean(EquipmentStandardSupportMapper.class);
+ List supportEquipments = new ArrayList<>();
+ // 通过申请id查询申请信息
+ EquipmentStandardApply standardApply = standardApplyMapper.selectById(id);
+ // 通过申请id查询出申请设备列表
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("standard_apply_id", id);
+ List equipmentStandardApplyEquipments = applyEquipmentMapper.selectList(queryWrapper);
+ // 设备ids
+ List equipmentIds = equipmentStandardApplyEquipments.stream().map(EquipmentStandardApplyEquipment::getEquipmentId).collect(Collectors.toList());
+ for (Long equipmentId : equipmentIds) {
+ EquipmentStandardSupportEquipment supportEquipment = new EquipmentStandardSupportEquipment();
+ supportEquipment.setEquipmentId(equipmentId);
+ supportEquipment.setStandardEquipmentId(Long.valueOf(standardApply.getStandardEquipmentId()));
+ supportEquipments.add(supportEquipment);
+ }
+ // 通过标准装置id删除原先配套设备
+ QueryWrapper supportEquipmentWrapper = new QueryWrapper<>();
+ supportEquipmentWrapper.eq("standard_equipment_id", standardApply.getStandardEquipmentId());
+ supportMapper.delete(supportEquipmentWrapper);
+ // 新增配套设备
+ for (EquipmentStandardSupportEquipment supportEquipment : supportEquipments) {
+ if (supportMapper.insert(supportEquipment) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+ }
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/DictCodeUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/DictCodeUtils.java
index 91f1072..1aab5c1 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/utils/DictCodeUtils.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/DictCodeUtils.java
@@ -15,9 +15,9 @@
/**
* 字典code转换成名称
*/
- public static void convertDictCodeToName(Object object) throws Exception{
+ public static void convertDictCodeToName(Object object) throws Exception {
Field[] fields = object.getClass().getDeclaredFields();
- for (Field field:fields) {
+ for (Field field : fields) {
if (!field.isAccessible()) {
field.setAccessible(true);
}
@@ -27,7 +27,7 @@
throw new BusinessException(500, "缓存名不能为空");
}
AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class);
- if(Objects.isNull(field.get(object)) || StringUtils.isEmpty(field.get(object).toString())){
+ if (Objects.isNull(field.get(object)) || StringUtils.isEmpty(field.get(object).toString())) {
continue;
}
String name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString());
@@ -39,7 +39,59 @@
if (destField == null) {
throw new BusinessException(500, "字典名称字段不存在");
}
- if(!destField.isAccessible()) {
+ if (!destField.isAccessible()) {
+ destField.setAccessible(true);
+ }
+ destField.set(object, name);
+ }
+ }
+ }
+
+
+ /**
+ * 多个字典code(逗号隔开),转换成名称
+ */
+ public static void convertDictMultiCodeToName(Object object) throws Exception {
+ Field[] fields = object.getClass().getDeclaredFields();
+ for (Field field : fields) {
+ if (!field.isAccessible()) {
+ field.setAccessible(true);
+ }
+ if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null) {
+
+ DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0];
+ if (StringUtils.isEmpty(dictCodeField.cacheName())) {
+ throw new BusinessException(500, "缓存名不能为空");
+ }
+ AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class);
+ if (Objects.isNull(field.get(object)) || StringUtils.isEmpty(field.get(object).toString())) {
+ continue;
+ }
+ String name = "";
+ //进行字典值得获取
+ if (field.get(object).toString().contains(",")) {
+ String[] filedObjects = field.get(object).toString().split(",");
+ for (String filedObject : filedObjects) {
+ name += dictService.getDictNameByCode(dictCodeField.cacheName(), filedObject) + ",";
+ if (StringUtils.isEmpty(name)) {
+ throw new BusinessException(500, dictCodeField.message());
+ }
+ }
+ if (StringUtils.isEmpty(name)) {
+ throw new BusinessException(500, dictCodeField.message());
+ }
+ } else {
+ name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString());
+ if (StringUtils.isEmpty(name)) {
+ throw new BusinessException(500, dictCodeField.message());
+ }
+ }
+ String destFieldName = field.getName() + "Name";
+ Field destField = object.getClass().getDeclaredField(destFieldName);
+ if (destField == null) {
+ throw new BusinessException(500, "字典名称字段不存在");
+ }
+ if (!destField.isAccessible()) {
destField.setAccessible(true);
}
destField.set(object, name);
@@ -49,19 +101,20 @@
/**
* 校验字典code是否合法
+ *
* @param object
* @return
*/
- public static boolean validDictCode(Object object) throws Exception{
+ public static boolean validDictCode(Object object) throws Exception {
Field[] fields = object.getClass().getDeclaredFields();
- for (Field field:fields) {
+ for (Field field : fields) {
if (!field.isAccessible()) {
field.setAccessible(true);
}
if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null && !field.get(object).equals("")) {
DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0];
// 判断字典code是否需要校验
- if(!dictCodeField.needValid()){
+ if (!dictCodeField.needValid()) {
continue;
}
AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class);
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
index ae7a28d..4461f67 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
@@ -10,6 +10,7 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.Info.*;
+import com.casic.missiles.dto.customer.MeasureRecordsResponse;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerInfo;
@@ -119,13 +120,20 @@
return ReturnUtil.success(super.packForBT(customerService.certificationByCustomerId(idDTO.getId())));
}
+ @ApiOperation("根据客户id查询检定记录(在样品中实现,可复用)")
+ @PostMapping("/fake/interface")
+ public ReturnDTO> measureRecordsBySampleId() {
+ return null;
+ }
+
@ApiOperation("客户导出")
@PostMapping("/export")
- public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response){
+ public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response) {
customerService.customerExport(request, response);
}
- //*******************************************************************************************************************//
+
+ //*******************************************************************************************************************//
// @ApiOperation("客户批量导入")
// @PostMapping("/batchImport")
// public ReturnDTO exportAdvice(@RequestBody @Valid CustomerAdviceInfo customerAdviceInfo, BindingResult bindingResult) {
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
index c7d6b3f..101a5d0 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
@@ -10,9 +10,9 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.MeasureRecordsResponse;
+import com.casic.missiles.dto.customer.sample.CustomerSampleIdRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListResponse;
-import com.casic.missiles.dto.customer.sample.MeasureRecordsIdRequest;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerSampleInfo;
@@ -94,20 +94,18 @@
customerSampleService.sampleExport(request, response);
}
- @ApiOperation("根据样品id或客户id查询检定记录")
- @PostMapping("/measureRecordsBySampleId")
- public ReturnDTO> mesureRecordsBySampleId(@RequestBody MeasureRecordsIdRequest recordsIdRequest) {
- return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsBySampleId(recordsIdRequest)));
+ @ApiOperation("根据样品id/客户id查询检定记录")
+ @PostMapping("/measureRecordsById")
+ public ReturnDTO> measureRecordsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) {
+ return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsById(customerSampleIdRequest)));
}
- @ApiOperation("根据样品id查询检定证书")
- @PostMapping("/certificationBySampleId")
- public ReturnDTO> certificationBySampleId(@RequestBody @Valid IdDTO idDTO) {
- Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- return ReturnUtil.success(super.packForBT(customerSampleService.certificationBySampleId(idDTO.getId())));
+ @ApiOperation("根据样品id/客户id查询检定证书")
+ @PostMapping("/certificateRecordsById")
+ public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{
+ return ReturnUtil.success(super.packForBT(customerSampleService.certificateRecordsById(customerSampleIdRequest)));
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
new file mode 100644
index 0000000..ebb9d60
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.enums.notifyevent;
+
+/**
+ * 这里定义bean的信息
+ */
+public interface ActionStatusBeanEnum {
+
+ String APPLY_BEAN_NAME = "equipmentApplyBean";
+
+ String SUPPORT_BEAN_NAME = "equipmentSupportBean";
+
+ String MANAGING_BEAN_NAME = "equipmentManagingBean";
+
+ String CERTIFICATE_BEAN_NAME = "certificatePrintBean";
+
+ String LEASE_BEAN_NAME = "equipmentLeaseBean";
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
new file mode 100644
index 0000000..9300729
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java
@@ -0,0 +1,63 @@
+package com.casic.missiles.enums.notifyevent;
+
+import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+
+import java.util.HashMap;
+
+public enum AwareActionStatusEnum implements ActionStatusBeanEnum {
+ EQUIPMENT_APPLY_USE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STANDARD_USE),
+ EQUIPMENT_APPLY_STOP(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.STOP),
+ EQUIPMENT_APPLY_REVOKE(APPLY_BEAN_NAME, EquipmentApplyProcessEnum.REVOKE),
+ EQUIPMENT_SUPPORT_STATUS(SUPPORT_BEAN_NAME, ""),
+ DEVICE_MANAGING_IDLE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.IDLE),
+ DEVICE_MANAGING_SEALED(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SEALED),
+ DEVICE_MANAGING_USE(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.USE),
+ DEVICE_MANAGING_SCRAP(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.SCRAP),
+ DEVICE_MANAGING_MANAGEMENT(MANAGING_BEAN_NAME, EquipmentApplyProcessEnum.MANAGEMENT),
+ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING),
+ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED),
+ CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""),
+ ACTION_STATUS_MAP(new HashMap() {
+ {
+ put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE);
+ put(ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL, EQUIPMENT_APPLY_STOP);
+ put(ApplyFromIdEnum.STANDARD_RESUME_APPROVAL, EQUIPMENT_APPLY_REVOKE);
+ put(ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL, EQUIPMENT_SUPPORT_STATUS);
+ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE);
+ put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED);
+ put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE);
+ put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP);
+ put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT);
+ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请
+ put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请
+ put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填
+ }
+ });
+ String actionBeanName;
+ String status;
+
+ AwareActionStatusEnum(String actionBeanName, String status) {
+ this.actionBeanName = actionBeanName;
+ this.status = status;
+ }
+
+ public String getActionBeanName() {
+ return actionBeanName;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public HashMap actionStatusMap;
+
+ AwareActionStatusEnum(HashMap actionStatusMap) {
+ this.actionStatusMap = actionStatusMap;
+ }
+
+ public HashMap getActionStatusMap() {
+ return actionStatusMap;
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
new file mode 100644
index 0000000..229d96f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/NotifyStatusPostProcessor.java
@@ -0,0 +1,13 @@
+package com.casic.missiles.listeners;
+
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+
+/**
+ * @author cz
+ * 工作流监听后置事件
+ */
+public interface NotifyStatusPostProcessor {
+
+ void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO);
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
index c2597b0..8ac418f 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessUpdateStateListener.java
@@ -1,20 +1,18 @@
package com.casic.missiles.listeners.flowable;
-import com.alibaba.excel.util.DateUtils;
-import cn.hutool.core.lang.Assert;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
import com.casic.missiles.enums.system.ApplyFromIdEnum;
import com.casic.missiles.enums.system.ApprovalStatusEnum;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.equipment.EquipmentApplyProcessEnum;
import com.casic.missiles.exception.BusinessException;
-import com.casic.missiles.mapper.MeterFixedAssetsMapper;
-import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.mapper.equipment.*;
import com.casic.missiles.mapper.system.SystemFlowFormMapper;
-import com.casic.missiles.model.business.BusinessCertificateReport;
import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper;
import com.casic.missiles.model.equipment.*;
import com.casic.missiles.model.system.SystemFlowForm;
@@ -32,12 +30,6 @@
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
@Slf4j
@Component
public class ProcessUpdateStateListener implements ExecutionListener {
@@ -56,175 +48,20 @@
// 查出流程定义信息
SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper);
String id = execution.getProcessInstanceBusinessKey();
- switch (systemFlowForm.getFormId()) {
- // 标准装置申请
- case ApplyFromIdEnum.STANDARD_REVERT_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STANDARD_USE);
- break;
- case ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.STOP);
- break;
- case ApplyFromIdEnum.STANDARD_RESUME_APPROVAL:
- updateStandardState(id, EquipmentApplyProcessEnum.REVOKE);
- break;
- case ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL:
- changeSupportingEquipment(id);
- break;
- // 设备状态管理申请
- case ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.IDLE);
- break;
- case ApplyFromIdEnum.DEVICE_SEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SEALED);
- break;
- case ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.USE);
- break;
- case ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.SCRAP);
- break;
- case ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL:
- updateEquipmentState(id, EquipmentApplyProcessEnum.MANAGEMENT);
- break;
- // 设备借用领用申请
- case ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_COLLECTING);
- break;
- case ApplyFromIdEnum.DEVICE_BORROW_APPROVAL:
- updateEquipmentApplyState(id, EquipmentApplyProcessEnum.WAIT_BORROWED);
- break;
- //证书打印审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
- //证书报告审批通过状态回填
- case ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL:
- updateCertificateState(Long.valueOf(id));
- break;
-
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId());
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id(id)
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
}
-
//设置通过状态为已通过
runtimeService.updateBusinessStatus(execution.getProcessInstanceId(), ApprovalStatusEnum.PASSED);
-
//审批通过,通知发起人
sendMessageAndSocket(execution, systemFlowForm);
}
- /**
- * 审批通过后修改标准装置配套设备
- * @param id
- */
- private void changeSupportingEquipment(String id) {
- EquipmentStandardApplyMapper standardApplyMapper = SpringContextUtil.getBean(EquipmentStandardApplyMapper.class);
- EquipmentStandardApplyEquipmentMapper applyEquipmentMapper = SpringContextUtil.getBean(EquipmentStandardApplyEquipmentMapper.class);
- EquipmentStandardSupportMapper supportMapper = SpringContextUtil.getBean(EquipmentStandardSupportMapper.class);
- List supportEquipments = new ArrayList<>();
- // 通过申请id查询申请信息
- EquipmentStandardApply standardApply = standardApplyMapper.selectById(id);
- // 通过申请id查询出申请设备列表
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("standard_apply_id",id);
- List equipmentStandardApplyEquipments = applyEquipmentMapper.selectList(queryWrapper);
- // 设备ids
- List equipmentIds = equipmentStandardApplyEquipments.stream().map(EquipmentStandardApplyEquipment::getEquipmentId).collect(Collectors.toList());
- for (Long equipmentId : equipmentIds) {
- EquipmentStandardSupportEquipment supportEquipment = new EquipmentStandardSupportEquipment();
- supportEquipment.setEquipmentId(equipmentId);
- supportEquipment.setStandardEquipmentId(Long.valueOf(standardApply.getStandardEquipmentId()));
- supportEquipments.add(supportEquipment);
- }
- // 通过标准装置id删除原先配套设备
- QueryWrapper supportEquipmentWrapper = new QueryWrapper<>();
- supportEquipmentWrapper.eq("standard_equipment_id",standardApply.getStandardEquipmentId());
- supportMapper.delete(supportEquipmentWrapper);
- // 新增配套设备
- for (EquipmentStandardSupportEquipment supportEquipment : supportEquipments) {
- if (supportMapper.insert(supportEquipment) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- }
- /**
- * 审批通过后修改设备借用/领用状态
- * @param id
- */
- private void updateEquipmentApplyState(String id, String state) {
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.eq("id", id).set("process_result", state);
- if (equipmentApplyMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- /**
- * 审批通过后修改设备管理状态
- * 新增状态变更记录表
- * @param id
- */
- private void updateEquipmentState(String id, String state) {
- EquipmentApplyEquipmentMapper equipmentMapper = SpringContextUtil.getBean(EquipmentApplyEquipmentMapper.class);
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- EquipmentStateChangeLogMapper stateChangeLogMapper = SpringContextUtil.getBean(EquipmentStateChangeLogMapper.class);
- EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
- // 获取申请关联的设备id
- QueryWrapper wrapper = new QueryWrapper<>();
- wrapper.eq("apply_id", id);
- List equipmentApplyEquipments = equipmentMapper.selectList(wrapper);
- // 获取设备idList
- List equipmentIds = equipmentApplyEquipments.stream().map(EquipmentApplyEquipment::getEquipmentId).collect(Collectors.toList());
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", equipmentIds).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) > 0) {
- UpdateWrapper logUpdateWrapper = new UpdateWrapper<>();
- // 修改状态变更记录结束时间
- logUpdateWrapper.in("equipment_id", equipmentIds).isNull("end_date").set("end_date", DateUtils.format(new Date()));
- if (stateChangeLogMapper.update(null, logUpdateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- // 获取当前申请的信息
- EquipmentApply equipmentApply = equipmentApplyMapper.selectById(id);
- // 新增状态变更记录
- for (EquipmentApplyEquipment equipment : equipmentApplyEquipments) {
- EquipmentStateChangeLog stateChangeLog = new EquipmentStateChangeLog(Long.parseLong(id), Long.parseLong(equipment.getEquipmentId()), state, DateUtils.format(new Date()), null, Long.parseLong(equipmentApply.getApplyPerson()));
- if (stateChangeLogMapper.insert(stateChangeLog) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
- } else {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- /**
- * 审批通过后修改标准装置业务状态
- * @param id
- * @param state
- */
- private void updateStandardState(String id, String state) {
- MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("id", id).set("manager_state", state);
- if (meterFixedAssetsMapper.update(null, updateWrapper) <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
- private void updateCertificateState(Long id) {
- Assert.isFalse(Objects.isNull(id), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
- BusinessCertificateReport certificateReport = new BusinessCertificateReport();
- certificateReport.setId(id);
- certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
- certificateReport.setPrintStatus("1"); //打印状态可打印
- int row = certificateReportMapper.updateById(certificateReport);
- if (row <= 0) {
- throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
- }
- }
-
private void sendMessageAndSocket(DelegateExecution execution, SystemFlowForm systemFlowForm) {
JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef());
JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef");
@@ -252,4 +89,5 @@
webSocket.sendOneMessage(String.valueOf(rootId), JSONObject.toJSONString(approvalMessage));
}
}
+
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java
new file mode 100644
index 0000000..ae742d3
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateStateStatusPostProcessor.java
@@ -0,0 +1,43 @@
+package com.casic.missiles.listeners.processor;
+
+import cn.hutool.core.lang.Assert;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.enums.system.ApprovalStatusEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.model.business.BusinessCertificateReport;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+/**
+ * @author cz
+ *
+ * 证书打印审批通过状态回填
+ */
+@Service(ActionStatusBeanEnum.CERTIFICATE_BEAN_NAME)
+public class CertificateStateStatusPostProcessor implements NotifyStatusPostProcessor {
+
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ Long id = Long.valueOf(notifyEventStatusDTO.getId());
+ Assert.isFalse(Objects.isNull(id), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class);
+ BusinessCertificateReport certificateReport = new BusinessCertificateReport();
+ certificateReport.setId(id);
+ certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); //审批状态为审批中
+ certificateReport.setPrintStatus("1"); //打印状态可打印
+ int row = certificateReportMapper.updateById(certificateReport);
+ if (row <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java
new file mode 100644
index 0000000..db56f5f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentApplyStatusPostProcessor.java
@@ -0,0 +1,32 @@
+package com.casic.missiles.listeners.processor;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.MeterFixedAssetsMapper;
+import com.casic.missiles.model.equipment.EquipmentFixedAssets;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author xzz
+ *
+ * 审批通过后修改标准装置业务状态
+ */
+@Service(ActionStatusBeanEnum.APPLY_BEAN_NAME)
+public class EquipmentApplyStatusPostProcessor implements NotifyStatusPostProcessor {
+
+ @Override
+ public void doUpdateNotifyEventStatus( NotifyEventStatusDTO notifyEventStatusDTO) {
+ MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.in("id", notifyEventStatusDTO.getId()).set("manager_state", notifyEventStatusDTO.getStatus());
+ if (meterFixedAssetsMapper.update(null, updateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java
new file mode 100644
index 0000000..528fab8
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentLeaseStatusPostProcessor.java
@@ -0,0 +1,30 @@
+package com.casic.missiles.listeners.processor;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.equipment.EquipmentApplyMapper;
+import com.casic.missiles.model.equipment.EquipmentApply;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+/**
+ * 审批通过后
+ * 修改设备租借状态
+ *
+ */
+@Service(ActionStatusBeanEnum.LEASE_BEAN_NAME)
+public class EquipmentLeaseStatusPostProcessor implements NotifyStatusPostProcessor {
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.eq("id", notifyEventStatusDTO.getId()).set("process_result", notifyEventStatusDTO.getStatus());
+ if (equipmentApplyMapper.update(null, updateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentManagingStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentManagingStatusPostProcessor.java
new file mode 100644
index 0000000..773539e
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentManagingStatusPostProcessor.java
@@ -0,0 +1,70 @@
+package com.casic.missiles.listeners.processor;
+
+import com.alibaba.excel.util.DateUtils;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.MeterFixedAssetsMapper;
+import com.casic.missiles.mapper.equipment.EquipmentApplyEquipmentMapper;
+import com.casic.missiles.mapper.equipment.EquipmentApplyMapper;
+import com.casic.missiles.mapper.equipment.EquipmentStateChangeLogMapper;
+import com.casic.missiles.model.equipment.EquipmentApply;
+import com.casic.missiles.model.equipment.EquipmentApplyEquipment;
+import com.casic.missiles.model.equipment.EquipmentFixedAssets;
+import com.casic.missiles.model.equipment.EquipmentStateChangeLog;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author xzz
+ * * 审批通过后修改设备管理状态
+ * * 新增状态变更记录表
+ */
+@Service(ActionStatusBeanEnum.MANAGING_BEAN_NAME)
+public class EquipmentManagingStatusPostProcessor implements NotifyStatusPostProcessor {
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ String state=notifyEventStatusDTO.getStatus();
+ String id=notifyEventStatusDTO.getId();
+ EquipmentApplyEquipmentMapper equipmentMapper = SpringContextUtil.getBean(EquipmentApplyEquipmentMapper.class);
+ MeterFixedAssetsMapper meterFixedAssetsMapper = SpringContextUtil.getBean(MeterFixedAssetsMapper.class);
+ EquipmentStateChangeLogMapper stateChangeLogMapper = SpringContextUtil.getBean(EquipmentStateChangeLogMapper.class);
+ EquipmentApplyMapper equipmentApplyMapper = SpringContextUtil.getBean(EquipmentApplyMapper.class);
+ // 获取申请关联的设备id
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("apply_id", id);
+ List equipmentApplyEquipments = equipmentMapper.selectList(wrapper);
+ // 获取设备idList
+ List equipmentIds = equipmentApplyEquipments.stream().map(EquipmentApplyEquipment::getEquipmentId).collect(Collectors.toList());
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.in("id", equipmentIds).set("manager_state", state);
+ if (meterFixedAssetsMapper.update(null, updateWrapper) > 0) {
+ UpdateWrapper logUpdateWrapper = new UpdateWrapper<>();
+ // 修改状态变更记录结束时间
+ logUpdateWrapper.in("equipment_id", equipmentIds).isNull("end_date").set("end_date", DateUtils.format(new Date()));
+ if (stateChangeLogMapper.update(null, logUpdateWrapper) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ // 获取当前申请的信息
+ EquipmentApply equipmentApply = equipmentApplyMapper.selectById(id);
+ // 新增状态变更记录
+ for (EquipmentApplyEquipment equipment : equipmentApplyEquipments) {
+ EquipmentStateChangeLog stateChangeLog = new EquipmentStateChangeLog(Long.parseLong(id), Long.parseLong(equipment.getEquipmentId()), state, DateUtils.format(new Date()), null, Long.parseLong(equipmentApply.getApplyPerson()));
+ if (stateChangeLogMapper.insert(stateChangeLog) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+ } else {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentSupporteStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentSupporteStatusPostProcessor.java
new file mode 100644
index 0000000..e29b191
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/EquipmentSupporteStatusPostProcessor.java
@@ -0,0 +1,60 @@
+package com.casic.missiles.listeners.processor;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
+import com.casic.missiles.mapper.equipment.EquipmentStandardApplyEquipmentMapper;
+import com.casic.missiles.mapper.equipment.EquipmentStandardApplyMapper;
+import com.casic.missiles.mapper.equipment.EquipmentStandardSupportMapper;
+import com.casic.missiles.model.equipment.EquipmentStandardApply;
+import com.casic.missiles.model.equipment.EquipmentStandardApplyEquipment;
+import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment;
+import com.casic.missiles.utils.SpringContextUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author xzz
+ * * 审批通过后修改标准装置配套设备状态
+ */
+@Service(ActionStatusBeanEnum.SUPPORT_BEAN_NAME)
+public class EquipmentSupporteStatusPostProcessor implements NotifyStatusPostProcessor {
+ @Override
+ public void doUpdateNotifyEventStatus(NotifyEventStatusDTO notifyEventStatusDTO) {
+ String id = notifyEventStatusDTO.getId();
+ EquipmentStandardApplyMapper standardApplyMapper = SpringContextUtil.getBean(EquipmentStandardApplyMapper.class);
+ EquipmentStandardApplyEquipmentMapper applyEquipmentMapper = SpringContextUtil.getBean(EquipmentStandardApplyEquipmentMapper.class);
+ EquipmentStandardSupportMapper supportMapper = SpringContextUtil.getBean(EquipmentStandardSupportMapper.class);
+ List supportEquipments = new ArrayList<>();
+ // 通过申请id查询申请信息
+ EquipmentStandardApply standardApply = standardApplyMapper.selectById(id);
+ // 通过申请id查询出申请设备列表
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("standard_apply_id", id);
+ List equipmentStandardApplyEquipments = applyEquipmentMapper.selectList(queryWrapper);
+ // 设备ids
+ List equipmentIds = equipmentStandardApplyEquipments.stream().map(EquipmentStandardApplyEquipment::getEquipmentId).collect(Collectors.toList());
+ for (Long equipmentId : equipmentIds) {
+ EquipmentStandardSupportEquipment supportEquipment = new EquipmentStandardSupportEquipment();
+ supportEquipment.setEquipmentId(equipmentId);
+ supportEquipment.setStandardEquipmentId(Long.valueOf(standardApply.getStandardEquipmentId()));
+ supportEquipments.add(supportEquipment);
+ }
+ // 通过标准装置id删除原先配套设备
+ QueryWrapper supportEquipmentWrapper = new QueryWrapper<>();
+ supportEquipmentWrapper.eq("standard_equipment_id", standardApply.getStandardEquipmentId());
+ supportMapper.delete(supportEquipmentWrapper);
+ // 新增配套设备
+ for (EquipmentStandardSupportEquipment supportEquipment : supportEquipments) {
+ if (supportMapper.insert(supportEquipment) <= 0) {
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+ }
+ }
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/DictCodeUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/DictCodeUtils.java
index 91f1072..1aab5c1 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/utils/DictCodeUtils.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/DictCodeUtils.java
@@ -15,9 +15,9 @@
/**
* 字典code转换成名称
*/
- public static void convertDictCodeToName(Object object) throws Exception{
+ public static void convertDictCodeToName(Object object) throws Exception {
Field[] fields = object.getClass().getDeclaredFields();
- for (Field field:fields) {
+ for (Field field : fields) {
if (!field.isAccessible()) {
field.setAccessible(true);
}
@@ -27,7 +27,7 @@
throw new BusinessException(500, "缓存名不能为空");
}
AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class);
- if(Objects.isNull(field.get(object)) || StringUtils.isEmpty(field.get(object).toString())){
+ if (Objects.isNull(field.get(object)) || StringUtils.isEmpty(field.get(object).toString())) {
continue;
}
String name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString());
@@ -39,7 +39,59 @@
if (destField == null) {
throw new BusinessException(500, "字典名称字段不存在");
}
- if(!destField.isAccessible()) {
+ if (!destField.isAccessible()) {
+ destField.setAccessible(true);
+ }
+ destField.set(object, name);
+ }
+ }
+ }
+
+
+ /**
+ * 多个字典code(逗号隔开),转换成名称
+ */
+ public static void convertDictMultiCodeToName(Object object) throws Exception {
+ Field[] fields = object.getClass().getDeclaredFields();
+ for (Field field : fields) {
+ if (!field.isAccessible()) {
+ field.setAccessible(true);
+ }
+ if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null) {
+
+ DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0];
+ if (StringUtils.isEmpty(dictCodeField.cacheName())) {
+ throw new BusinessException(500, "缓存名不能为空");
+ }
+ AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class);
+ if (Objects.isNull(field.get(object)) || StringUtils.isEmpty(field.get(object).toString())) {
+ continue;
+ }
+ String name = "";
+ //进行字典值得获取
+ if (field.get(object).toString().contains(",")) {
+ String[] filedObjects = field.get(object).toString().split(",");
+ for (String filedObject : filedObjects) {
+ name += dictService.getDictNameByCode(dictCodeField.cacheName(), filedObject) + ",";
+ if (StringUtils.isEmpty(name)) {
+ throw new BusinessException(500, dictCodeField.message());
+ }
+ }
+ if (StringUtils.isEmpty(name)) {
+ throw new BusinessException(500, dictCodeField.message());
+ }
+ } else {
+ name = dictService.getDictNameByCode(dictCodeField.cacheName(), field.get(object).toString());
+ if (StringUtils.isEmpty(name)) {
+ throw new BusinessException(500, dictCodeField.message());
+ }
+ }
+ String destFieldName = field.getName() + "Name";
+ Field destField = object.getClass().getDeclaredField(destFieldName);
+ if (destField == null) {
+ throw new BusinessException(500, "字典名称字段不存在");
+ }
+ if (!destField.isAccessible()) {
destField.setAccessible(true);
}
destField.set(object, name);
@@ -49,19 +101,20 @@
/**
* 校验字典code是否合法
+ *
* @param object
* @return
*/
- public static boolean validDictCode(Object object) throws Exception{
+ public static boolean validDictCode(Object object) throws Exception {
Field[] fields = object.getClass().getDeclaredFields();
- for (Field field:fields) {
+ for (Field field : fields) {
if (!field.isAccessible()) {
field.setAccessible(true);
}
if (field.isAnnotationPresent(DictCodeField.class) && field.get(object) != null && !field.get(object).equals("")) {
DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0];
// 判断字典code是否需要校验
- if(!dictCodeField.needValid()){
+ if (!dictCodeField.needValid()) {
continue;
}
AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class);
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/CustomerSampleMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/CustomerSampleMapper.java
index 8b73201..ebb38b7 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/CustomerSampleMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/CustomerSampleMapper.java
@@ -2,8 +2,9 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.MeasureRecordsResponse;
-import com.casic.missiles.dto.customer.sample.MeasureRecordsIdRequest;
+import com.casic.missiles.dto.customer.sample.CustomerSampleIdRequest;
import com.casic.missiles.model.customer.CustomerSampleInfo;
import org.apache.ibatis.annotations.Param;
@@ -12,7 +13,9 @@
Long selectMaxSampleNo();
- Page measureRecordsBySampleId(Page page, @Param("request") MeasureRecordsIdRequest recordsIdRequest);
+ Page measureRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest);
+
+ Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest);
Page samplesByOderId(Page page,
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
index 05104f2..6acd92b 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java
@@ -7,11 +7,16 @@
import com.casic.missiles.core.model.auth.CasicCustomToken;
import com.casic.missiles.core.shiro.ShiroKit;
import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.dto.flowable.NotifyEventStatusDTO;
+import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum;
+import com.casic.missiles.enums.system.ApplyFromIdEnum;
+import com.casic.missiles.listeners.NotifyStatusPostProcessor;
import com.casic.missiles.model.response.SuccessResponseData;
import com.casic.missiles.modular.domain.constants.PermissionConstants;
import com.casic.missiles.modular.interfaces.log.LogManager;
import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import com.casic.missiles.utils.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
@@ -77,4 +82,22 @@
resultData.setMessage("登录成功");
return resultData;
}
+
+ @GetMapping("/test")
+ @ResponseBody()
+ public void testStatusListener(Long id){
+ String[] formIds={ ApplyFromIdEnum.STANDARD_REVERT_APPROVAL,ApplyFromIdEnum.STANDARD_PAUSE_APPROVAL,ApplyFromIdEnum.STANDARD_RESUME_APPROVAL,
+ ApplyFromIdEnum.STANDARD_CHANGE_APPROVAL,ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL,ApplyFromIdEnum.DEVICE_SEALED_APPROVAL,ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL,
+ ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL,ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL,ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL,ApplyFromIdEnum.DEVICE_BORROW_APPROVAL,ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL};
+ for(String formId:formIds){
+ AwareActionStatusEnum notifyActionStatusEnum= AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(formId);
+ NotifyEventStatusDTO notifyEventStatusDTO = NotifyEventStatusDTO.builder()
+ .id("")
+ .status(notifyActionStatusEnum.getStatus()).build();
+ NotifyStatusPostProcessor postProcessor = SpringContextUtil.getBean(notifyActionStatusEnum.getActionBeanName());
+ if (postProcessor != null) {
+ postProcessor.doUpdateNotifyEventStatus(notifyEventStatusDTO);
+ }
+ }
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
index e2d588a..481f92e 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java
@@ -33,7 +33,7 @@
* 业务管理-设备交接单 前端控制器
*
*
- * @author wangpeng
+ * @author cz
* @since 2023-02-02
*/
@RestController
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
index ae7a28d..4461f67 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java
@@ -10,6 +10,7 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.Info.*;
+import com.casic.missiles.dto.customer.MeasureRecordsResponse;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerInfo;
@@ -119,13 +120,20 @@
return ReturnUtil.success(super.packForBT(customerService.certificationByCustomerId(idDTO.getId())));
}
+ @ApiOperation("根据客户id查询检定记录(在样品中实现,可复用)")
+ @PostMapping("/fake/interface")
+ public ReturnDTO> measureRecordsBySampleId() {
+ return null;
+ }
+
@ApiOperation("客户导出")
@PostMapping("/export")
- public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response){
+ public void sampleExport(@RequestBody @Valid CustomerListRequest request, HttpServletResponse response) {
customerService.customerExport(request, response);
}
- //*******************************************************************************************************************//
+
+ //*******************************************************************************************************************//
// @ApiOperation("客户批量导入")
// @PostMapping("/batchImport")
// public ReturnDTO exportAdvice(@RequestBody @Valid CustomerAdviceInfo customerAdviceInfo, BindingResult bindingResult) {
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
index c7d6b3f..101a5d0 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerSampleController.java
@@ -10,9 +10,9 @@
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.customer.CertificationResponse;
import com.casic.missiles.dto.customer.MeasureRecordsResponse;
+import com.casic.missiles.dto.customer.sample.CustomerSampleIdRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListRequest;
import com.casic.missiles.dto.customer.sample.CustomerSampleListResponse;
-import com.casic.missiles.dto.customer.sample.MeasureRecordsIdRequest;
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.customer.CustomerSampleInfo;
@@ -94,20 +94,18 @@
customerSampleService.sampleExport(request, response);
}
- @ApiOperation("根据样品id或客户id查询检定记录")
- @PostMapping("/measureRecordsBySampleId")
- public ReturnDTO> mesureRecordsBySampleId(@RequestBody MeasureRecordsIdRequest recordsIdRequest) {
- return ReturnUtil.success(super.packForBT(customerSampleService.measureRecordsBySampleId(recordsIdRequest)));
+ @ApiOperation("根据样品id/客户id查询检定记录")
+ @PostMapping("/measureRecordsById")
+ public ReturnDTO