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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 164c53a..5e59e2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -20,19 +21,25 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.enums.*; +import com.casic.missiles.enums.business.CertificatePrintStatusEnum; import com.casic.missiles.enums.business.MonitorCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApplyFromIdEnum; import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.Impl.customer.CustomerSampleServiceImpl; import com.casic.missiles.service.business.IBusinessCertificateReportService; import com.casic.missiles.service.business.IBusinessOriginalRecordService; +import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -73,6 +80,8 @@ private RuntimeService runtimeService; @Resource private IBaseExportService iBaseExportService; + @Resource + private CustomerSampleServiceImpl sampleService; /** * 保存证书报告信息 @@ -85,7 +94,7 @@ initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) - return ReturnUtil.success(); + return ReturnUtil.success(certificateReport.getId()); throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @@ -135,10 +144,12 @@ */ @Override public BusinessCertificateReport certificateReportDetail(Long id) { - BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); +// BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + BusinessCertificateReport certificateReport = this.baseMapper.detailById(id); if (certificateReport.getOriginalRecordId() != null) { try { certificateReport.setBusinessOriginalRecord(originalRecordService.originalDetail(certificateReport.getOriginalRecordId())); + certificateReport.setCertificateReportTypeName(dictService.getDictNameByCode(MeterDictEnum.CERTIFICATION_CLASS,certificateReport.getCertificateReportType())); } catch (Exception e) { e.printStackTrace(); } @@ -166,6 +177,7 @@ certificateReport.setId(request.getId()); certificateReport.setApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 certificateReport.setProcessId(processInstance.getId()); + certificateReport.setSubmitDate(DateUtil.formatDateTime(new Date())); int row = this.baseMapper.updateById(certificateReport); if (row <= 0) { throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getCode(), BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getMessage()); @@ -173,6 +185,7 @@ return ReturnUtil.success(); } + /** * 审批状态列表查询 * @@ -233,6 +246,78 @@ } } + /** + * 审批通过后 更新样品有效期 + * + * @param id + * @return + */ + @Override + public boolean updateCertificateReportState(Long id) { + + BusinessCertificateReport certificateReport = new BusinessCertificateReport(); + certificateReport.setId(id); + //审批状态为通过 + certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); + certificateReport.setUpdateTime(DateUtil.formatDateTime(new Date())); + int row = this.baseMapper.updateById(certificateReport); + //更新样品有效期 + BusinessCertificateReport certificateReport1 = this.baseMapper.selectById(id); + if (certificateReport1.getSampleId() != null) { + CustomerSampleInfo sampleInfo = sampleService.getById(certificateReport1.getSampleId()); + if (sampleInfo != null) { + sampleInfo.setValidDeadline(certificateReport1.getExpirationDate()); + boolean rs = sampleService.updateById(sampleInfo); + if (row > 0 & rs) return true; + } + } + return row > 0 ? true : false; + } + + + + /** + * 客户、样品详情列表 + */ + @Override + public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); + for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { + if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { + DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); + } + } + return certificateResponsePage; + } + + @Override + public Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateMonitorResponsePage = this.baseMapper.certificateMonitorsById(page, customerSampleIdRequest); + for (CertificateMonitorResponse certificateMonitorResponse : certificateMonitorResponsePage.getRecords()) { + if (!StringUtils.isEmpty(certificateMonitorResponse.getCertificationType())) { + DictCodeUtils.convertDictMultiCodeToName(certificateMonitorResponse); + } + //设置证书状态 + certificateMonitorResponse.setCertificateStatus(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + CertificatePrintStatusEnum.FINISHED : CertificatePrintStatusEnum.UNFINISHED); + //设置完成时间 + certificateMonitorResponse.setFinishedTime(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + certificateMonitorResponse.getFinishedTime() : ""); + + //设置退回次数 + List rejectBusinessKey = baseApprovalService.getFailedRejectList(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL); + + rejectBusinessKey.forEach(obj -> { + if (obj.equals(certificateMonitorResponse.getCertificationId().toString())) { + certificateMonitorResponse.setReturns(certificateMonitorResponse.getReturns() + 1); + } + }); + } + return certificateMonitorResponsePage; + } + private List handleApprovalStatus(Page page, CertificateReportApprovalRequest request) { List approvalList = new ArrayList<>(); List businessKeys = new ArrayList<>(); @@ -312,21 +397,6 @@ return approvalList; } - /** - * 客户、样品详情列表 - */ - @Override - public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { - Page page = PageFactory.defaultPage(); - Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); - for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { - if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { - DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); - } - } - return certificateResponsePage; - } - private List handleAllApprovalListResponse(List approvalList, List allApproveList) { Map taskMap = new HashMap<>(); allApproveList.forEach(allApprove -> { 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 164c53a..5e59e2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -20,19 +21,25 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.enums.*; +import com.casic.missiles.enums.business.CertificatePrintStatusEnum; import com.casic.missiles.enums.business.MonitorCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApplyFromIdEnum; import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.Impl.customer.CustomerSampleServiceImpl; import com.casic.missiles.service.business.IBusinessCertificateReportService; import com.casic.missiles.service.business.IBusinessOriginalRecordService; +import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -73,6 +80,8 @@ private RuntimeService runtimeService; @Resource private IBaseExportService iBaseExportService; + @Resource + private CustomerSampleServiceImpl sampleService; /** * 保存证书报告信息 @@ -85,7 +94,7 @@ initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) - return ReturnUtil.success(); + return ReturnUtil.success(certificateReport.getId()); throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @@ -135,10 +144,12 @@ */ @Override public BusinessCertificateReport certificateReportDetail(Long id) { - BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); +// BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + BusinessCertificateReport certificateReport = this.baseMapper.detailById(id); if (certificateReport.getOriginalRecordId() != null) { try { certificateReport.setBusinessOriginalRecord(originalRecordService.originalDetail(certificateReport.getOriginalRecordId())); + certificateReport.setCertificateReportTypeName(dictService.getDictNameByCode(MeterDictEnum.CERTIFICATION_CLASS,certificateReport.getCertificateReportType())); } catch (Exception e) { e.printStackTrace(); } @@ -166,6 +177,7 @@ certificateReport.setId(request.getId()); certificateReport.setApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 certificateReport.setProcessId(processInstance.getId()); + certificateReport.setSubmitDate(DateUtil.formatDateTime(new Date())); int row = this.baseMapper.updateById(certificateReport); if (row <= 0) { throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getCode(), BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getMessage()); @@ -173,6 +185,7 @@ return ReturnUtil.success(); } + /** * 审批状态列表查询 * @@ -233,6 +246,78 @@ } } + /** + * 审批通过后 更新样品有效期 + * + * @param id + * @return + */ + @Override + public boolean updateCertificateReportState(Long id) { + + BusinessCertificateReport certificateReport = new BusinessCertificateReport(); + certificateReport.setId(id); + //审批状态为通过 + certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); + certificateReport.setUpdateTime(DateUtil.formatDateTime(new Date())); + int row = this.baseMapper.updateById(certificateReport); + //更新样品有效期 + BusinessCertificateReport certificateReport1 = this.baseMapper.selectById(id); + if (certificateReport1.getSampleId() != null) { + CustomerSampleInfo sampleInfo = sampleService.getById(certificateReport1.getSampleId()); + if (sampleInfo != null) { + sampleInfo.setValidDeadline(certificateReport1.getExpirationDate()); + boolean rs = sampleService.updateById(sampleInfo); + if (row > 0 & rs) return true; + } + } + return row > 0 ? true : false; + } + + + + /** + * 客户、样品详情列表 + */ + @Override + public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); + for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { + if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { + DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); + } + } + return certificateResponsePage; + } + + @Override + public Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateMonitorResponsePage = this.baseMapper.certificateMonitorsById(page, customerSampleIdRequest); + for (CertificateMonitorResponse certificateMonitorResponse : certificateMonitorResponsePage.getRecords()) { + if (!StringUtils.isEmpty(certificateMonitorResponse.getCertificationType())) { + DictCodeUtils.convertDictMultiCodeToName(certificateMonitorResponse); + } + //设置证书状态 + certificateMonitorResponse.setCertificateStatus(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + CertificatePrintStatusEnum.FINISHED : CertificatePrintStatusEnum.UNFINISHED); + //设置完成时间 + certificateMonitorResponse.setFinishedTime(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + certificateMonitorResponse.getFinishedTime() : ""); + + //设置退回次数 + List rejectBusinessKey = baseApprovalService.getFailedRejectList(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL); + + rejectBusinessKey.forEach(obj -> { + if (obj.equals(certificateMonitorResponse.getCertificationId().toString())) { + certificateMonitorResponse.setReturns(certificateMonitorResponse.getReturns() + 1); + } + }); + } + return certificateMonitorResponsePage; + } + private List handleApprovalStatus(Page page, CertificateReportApprovalRequest request) { List approvalList = new ArrayList<>(); List businessKeys = new ArrayList<>(); @@ -312,21 +397,6 @@ return approvalList; } - /** - * 客户、样品详情列表 - */ - @Override - public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { - Page page = PageFactory.defaultPage(); - Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); - for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { - if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { - DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); - } - } - return certificateResponsePage; - } - private List handleAllApprovalListResponse(List approvalList, List allApproveList) { Map taskMap = new HashMap<>(); allApproveList.forEach(allApprove -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 955cc7a..5b23762 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -159,6 +159,10 @@ if(!CollectionUtils.isEmpty(initListResponses)){ return initListResponses; } + + if(StringUtils.isEmpty(handOutInitListRequest.getMeasureContent())){ + return new ArrayList<>(); + } //根据样品的检定项目去关键字匹配实验室能力信息 String[] split = handOutInitListRequest.getMeasureContent().split(","); List list = Arrays.asList(split); @@ -212,10 +216,12 @@ public Page deptLabExecutiveListPage(Page page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception{ //本级部门主管可见本部门的检测 //根据用户id查询,用户角色中TIPS为director即为主管,取用户的部门id - AuthUser user = ShiroKit.getUser(); - Assert.isFalse(Objects.isNull(user), () -> { - throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); - }); +// AuthUser user = ShiroKit.getUser(); +// Assert.isFalse(Objects.isNull(user), () -> { +// throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); +// }); + AuthUser user = new AuthUser(); + user.setId(1634091003794550786l); Map resultMap = selectDirectDept(user); if(CollectionUtils.isEmpty(resultMap) || Objects.isNull(resultMap.get("deptId"))){ return new 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 164c53a..5e59e2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -20,19 +21,25 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.enums.*; +import com.casic.missiles.enums.business.CertificatePrintStatusEnum; import com.casic.missiles.enums.business.MonitorCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApplyFromIdEnum; import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.Impl.customer.CustomerSampleServiceImpl; import com.casic.missiles.service.business.IBusinessCertificateReportService; import com.casic.missiles.service.business.IBusinessOriginalRecordService; +import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -73,6 +80,8 @@ private RuntimeService runtimeService; @Resource private IBaseExportService iBaseExportService; + @Resource + private CustomerSampleServiceImpl sampleService; /** * 保存证书报告信息 @@ -85,7 +94,7 @@ initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) - return ReturnUtil.success(); + return ReturnUtil.success(certificateReport.getId()); throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @@ -135,10 +144,12 @@ */ @Override public BusinessCertificateReport certificateReportDetail(Long id) { - BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); +// BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + BusinessCertificateReport certificateReport = this.baseMapper.detailById(id); if (certificateReport.getOriginalRecordId() != null) { try { certificateReport.setBusinessOriginalRecord(originalRecordService.originalDetail(certificateReport.getOriginalRecordId())); + certificateReport.setCertificateReportTypeName(dictService.getDictNameByCode(MeterDictEnum.CERTIFICATION_CLASS,certificateReport.getCertificateReportType())); } catch (Exception e) { e.printStackTrace(); } @@ -166,6 +177,7 @@ certificateReport.setId(request.getId()); certificateReport.setApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 certificateReport.setProcessId(processInstance.getId()); + certificateReport.setSubmitDate(DateUtil.formatDateTime(new Date())); int row = this.baseMapper.updateById(certificateReport); if (row <= 0) { throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getCode(), BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getMessage()); @@ -173,6 +185,7 @@ return ReturnUtil.success(); } + /** * 审批状态列表查询 * @@ -233,6 +246,78 @@ } } + /** + * 审批通过后 更新样品有效期 + * + * @param id + * @return + */ + @Override + public boolean updateCertificateReportState(Long id) { + + BusinessCertificateReport certificateReport = new BusinessCertificateReport(); + certificateReport.setId(id); + //审批状态为通过 + certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); + certificateReport.setUpdateTime(DateUtil.formatDateTime(new Date())); + int row = this.baseMapper.updateById(certificateReport); + //更新样品有效期 + BusinessCertificateReport certificateReport1 = this.baseMapper.selectById(id); + if (certificateReport1.getSampleId() != null) { + CustomerSampleInfo sampleInfo = sampleService.getById(certificateReport1.getSampleId()); + if (sampleInfo != null) { + sampleInfo.setValidDeadline(certificateReport1.getExpirationDate()); + boolean rs = sampleService.updateById(sampleInfo); + if (row > 0 & rs) return true; + } + } + return row > 0 ? true : false; + } + + + + /** + * 客户、样品详情列表 + */ + @Override + public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); + for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { + if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { + DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); + } + } + return certificateResponsePage; + } + + @Override + public Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateMonitorResponsePage = this.baseMapper.certificateMonitorsById(page, customerSampleIdRequest); + for (CertificateMonitorResponse certificateMonitorResponse : certificateMonitorResponsePage.getRecords()) { + if (!StringUtils.isEmpty(certificateMonitorResponse.getCertificationType())) { + DictCodeUtils.convertDictMultiCodeToName(certificateMonitorResponse); + } + //设置证书状态 + certificateMonitorResponse.setCertificateStatus(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + CertificatePrintStatusEnum.FINISHED : CertificatePrintStatusEnum.UNFINISHED); + //设置完成时间 + certificateMonitorResponse.setFinishedTime(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + certificateMonitorResponse.getFinishedTime() : ""); + + //设置退回次数 + List rejectBusinessKey = baseApprovalService.getFailedRejectList(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL); + + rejectBusinessKey.forEach(obj -> { + if (obj.equals(certificateMonitorResponse.getCertificationId().toString())) { + certificateMonitorResponse.setReturns(certificateMonitorResponse.getReturns() + 1); + } + }); + } + return certificateMonitorResponsePage; + } + private List handleApprovalStatus(Page page, CertificateReportApprovalRequest request) { List approvalList = new ArrayList<>(); List businessKeys = new ArrayList<>(); @@ -312,21 +397,6 @@ return approvalList; } - /** - * 客户、样品详情列表 - */ - @Override - public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { - Page page = PageFactory.defaultPage(); - Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); - for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { - if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { - DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); - } - } - return certificateResponsePage; - } - private List handleAllApprovalListResponse(List approvalList, List allApproveList) { Map taskMap = new HashMap<>(); allApproveList.forEach(allApprove -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 955cc7a..5b23762 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -159,6 +159,10 @@ if(!CollectionUtils.isEmpty(initListResponses)){ return initListResponses; } + + if(StringUtils.isEmpty(handOutInitListRequest.getMeasureContent())){ + return new ArrayList<>(); + } //根据样品的检定项目去关键字匹配实验室能力信息 String[] split = handOutInitListRequest.getMeasureContent().split(","); List list = Arrays.asList(split); @@ -212,10 +216,12 @@ public Page deptLabExecutiveListPage(Page page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception{ //本级部门主管可见本部门的检测 //根据用户id查询,用户角色中TIPS为director即为主管,取用户的部门id - AuthUser user = ShiroKit.getUser(); - Assert.isFalse(Objects.isNull(user), () -> { - throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); - }); +// AuthUser user = ShiroKit.getUser(); +// Assert.isFalse(Objects.isNull(user), () -> { +// throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); +// }); + AuthUser user = new AuthUser(); + user.setId(1634091003794550786l); Map resultMap = selectDirectDept(user); if(CollectionUtils.isEmpty(resultMap) || Objects.isNull(resultMap.get("deptId"))){ return new Page<>(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 1d63554..ab5978d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -53,7 +53,7 @@ */ @Service @AllArgsConstructor -public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService,PrefixCodeEnum, OrderStatusEnum,SampleStatusEnum, MeasureTypeEnum { +public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService, PrefixCodeEnum, OrderStatusEnum, SampleStatusEnum, MeasureTypeEnum { private final BusinessOrderListReponseMapper orderListResponseMapper; private final IBaseExportService iBaseExportService; @@ -107,7 +107,7 @@ * 2、对样品进行是否在库的判断,如果不存在则入库, 入库操作完成,进行委托书样品关系的绑定 */ @Override - public ReturnDTO updateOrder(BusinessOrder businessOrder) { + public ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception { if (CollectionUtils.isEmpty(businessOrder.getCustomerSampleInfoList())) { return ReturnUtil.failed("样品列表不能为空"); } @@ -141,7 +141,7 @@ */ @Override @Transactional - public ReturnDTO addOrder(BusinessOrder businessOrder) { + public ReturnDTO addOrder(BusinessOrder businessOrder) throws Exception { initOrderInfo(businessOrder); int addFlag = this.baseMapper.insert(businessOrder); boolean sampleAddFlag = true; @@ -209,8 +209,8 @@ int updateFlag = doUpdateStatusById(orderCancelRequest.getId(), status); String dealType = ""; if (status.equals(ALREADY_RECEIVED)) { - dealType = "委托书接收" ; - doUpdateSampleStatus(orderCancelRequest.getId(),TO_RECEIVE); + dealType = "委托书接收"; + doUpdateSampleStatus(orderCancelRequest.getId(), TO_RECEIVE); } else { dealType = "委托书退回"; } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 164c53a..5e59e2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -20,19 +21,25 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.enums.*; +import com.casic.missiles.enums.business.CertificatePrintStatusEnum; import com.casic.missiles.enums.business.MonitorCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApplyFromIdEnum; import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.Impl.customer.CustomerSampleServiceImpl; import com.casic.missiles.service.business.IBusinessCertificateReportService; import com.casic.missiles.service.business.IBusinessOriginalRecordService; +import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -73,6 +80,8 @@ private RuntimeService runtimeService; @Resource private IBaseExportService iBaseExportService; + @Resource + private CustomerSampleServiceImpl sampleService; /** * 保存证书报告信息 @@ -85,7 +94,7 @@ initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) - return ReturnUtil.success(); + return ReturnUtil.success(certificateReport.getId()); throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @@ -135,10 +144,12 @@ */ @Override public BusinessCertificateReport certificateReportDetail(Long id) { - BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); +// BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + BusinessCertificateReport certificateReport = this.baseMapper.detailById(id); if (certificateReport.getOriginalRecordId() != null) { try { certificateReport.setBusinessOriginalRecord(originalRecordService.originalDetail(certificateReport.getOriginalRecordId())); + certificateReport.setCertificateReportTypeName(dictService.getDictNameByCode(MeterDictEnum.CERTIFICATION_CLASS,certificateReport.getCertificateReportType())); } catch (Exception e) { e.printStackTrace(); } @@ -166,6 +177,7 @@ certificateReport.setId(request.getId()); certificateReport.setApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 certificateReport.setProcessId(processInstance.getId()); + certificateReport.setSubmitDate(DateUtil.formatDateTime(new Date())); int row = this.baseMapper.updateById(certificateReport); if (row <= 0) { throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getCode(), BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getMessage()); @@ -173,6 +185,7 @@ return ReturnUtil.success(); } + /** * 审批状态列表查询 * @@ -233,6 +246,78 @@ } } + /** + * 审批通过后 更新样品有效期 + * + * @param id + * @return + */ + @Override + public boolean updateCertificateReportState(Long id) { + + BusinessCertificateReport certificateReport = new BusinessCertificateReport(); + certificateReport.setId(id); + //审批状态为通过 + certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); + certificateReport.setUpdateTime(DateUtil.formatDateTime(new Date())); + int row = this.baseMapper.updateById(certificateReport); + //更新样品有效期 + BusinessCertificateReport certificateReport1 = this.baseMapper.selectById(id); + if (certificateReport1.getSampleId() != null) { + CustomerSampleInfo sampleInfo = sampleService.getById(certificateReport1.getSampleId()); + if (sampleInfo != null) { + sampleInfo.setValidDeadline(certificateReport1.getExpirationDate()); + boolean rs = sampleService.updateById(sampleInfo); + if (row > 0 & rs) return true; + } + } + return row > 0 ? true : false; + } + + + + /** + * 客户、样品详情列表 + */ + @Override + public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); + for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { + if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { + DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); + } + } + return certificateResponsePage; + } + + @Override + public Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateMonitorResponsePage = this.baseMapper.certificateMonitorsById(page, customerSampleIdRequest); + for (CertificateMonitorResponse certificateMonitorResponse : certificateMonitorResponsePage.getRecords()) { + if (!StringUtils.isEmpty(certificateMonitorResponse.getCertificationType())) { + DictCodeUtils.convertDictMultiCodeToName(certificateMonitorResponse); + } + //设置证书状态 + certificateMonitorResponse.setCertificateStatus(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + CertificatePrintStatusEnum.FINISHED : CertificatePrintStatusEnum.UNFINISHED); + //设置完成时间 + certificateMonitorResponse.setFinishedTime(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + certificateMonitorResponse.getFinishedTime() : ""); + + //设置退回次数 + List rejectBusinessKey = baseApprovalService.getFailedRejectList(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL); + + rejectBusinessKey.forEach(obj -> { + if (obj.equals(certificateMonitorResponse.getCertificationId().toString())) { + certificateMonitorResponse.setReturns(certificateMonitorResponse.getReturns() + 1); + } + }); + } + return certificateMonitorResponsePage; + } + private List handleApprovalStatus(Page page, CertificateReportApprovalRequest request) { List approvalList = new ArrayList<>(); List businessKeys = new ArrayList<>(); @@ -312,21 +397,6 @@ return approvalList; } - /** - * 客户、样品详情列表 - */ - @Override - public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { - Page page = PageFactory.defaultPage(); - Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); - for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { - if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { - DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); - } - } - return certificateResponsePage; - } - private List handleAllApprovalListResponse(List approvalList, List allApproveList) { Map taskMap = new HashMap<>(); allApproveList.forEach(allApprove -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 955cc7a..5b23762 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -159,6 +159,10 @@ if(!CollectionUtils.isEmpty(initListResponses)){ return initListResponses; } + + if(StringUtils.isEmpty(handOutInitListRequest.getMeasureContent())){ + return new ArrayList<>(); + } //根据样品的检定项目去关键字匹配实验室能力信息 String[] split = handOutInitListRequest.getMeasureContent().split(","); List list = Arrays.asList(split); @@ -212,10 +216,12 @@ public Page deptLabExecutiveListPage(Page page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception{ //本级部门主管可见本部门的检测 //根据用户id查询,用户角色中TIPS为director即为主管,取用户的部门id - AuthUser user = ShiroKit.getUser(); - Assert.isFalse(Objects.isNull(user), () -> { - throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); - }); +// AuthUser user = ShiroKit.getUser(); +// Assert.isFalse(Objects.isNull(user), () -> { +// throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); +// }); + AuthUser user = new AuthUser(); + user.setId(1634091003794550786l); Map resultMap = selectDirectDept(user); if(CollectionUtils.isEmpty(resultMap) || Objects.isNull(resultMap.get("deptId"))){ return new Page<>(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 1d63554..ab5978d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -53,7 +53,7 @@ */ @Service @AllArgsConstructor -public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService,PrefixCodeEnum, OrderStatusEnum,SampleStatusEnum, MeasureTypeEnum { +public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService, PrefixCodeEnum, OrderStatusEnum, SampleStatusEnum, MeasureTypeEnum { private final BusinessOrderListReponseMapper orderListResponseMapper; private final IBaseExportService iBaseExportService; @@ -107,7 +107,7 @@ * 2、对样品进行是否在库的判断,如果不存在则入库, 入库操作完成,进行委托书样品关系的绑定 */ @Override - public ReturnDTO updateOrder(BusinessOrder businessOrder) { + public ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception { if (CollectionUtils.isEmpty(businessOrder.getCustomerSampleInfoList())) { return ReturnUtil.failed("样品列表不能为空"); } @@ -141,7 +141,7 @@ */ @Override @Transactional - public ReturnDTO addOrder(BusinessOrder businessOrder) { + public ReturnDTO addOrder(BusinessOrder businessOrder) throws Exception { initOrderInfo(businessOrder); int addFlag = this.baseMapper.insert(businessOrder); boolean sampleAddFlag = true; @@ -209,8 +209,8 @@ int updateFlag = doUpdateStatusById(orderCancelRequest.getId(), status); String dealType = ""; if (status.equals(ALREADY_RECEIVED)) { - dealType = "委托书接收" ; - doUpdateSampleStatus(orderCancelRequest.getId(),TO_RECEIVE); + dealType = "委托书接收"; + doUpdateSampleStatus(orderCancelRequest.getId(), TO_RECEIVE); } else { dealType = "委托书退回"; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index c9c1902..8e41658 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.HandOutLabExecutiveDTO; @@ -15,16 +17,25 @@ import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; import com.casic.missiles.enums.*; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.business.MeasureStatusEnum; import com.casic.missiles.enums.business.MeasureTypeEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.workbench.MessageTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; +import com.casic.missiles.mapper.customer.CustomerSampleMapper; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.business.*; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.model.workbench.WorkbenchRemindMessage; import com.casic.missiles.service.business.IBusinessDispatchService; +import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.docx4j.wml.R; +import org.springframework.data.redis.connection.Message; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -43,8 +54,11 @@ @Slf4j @AllArgsConstructor public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService, SampleStatusEnum, CurrentSegmentEnum, MeasureTypeEnum { - private final BusinessOrderSampleRelationMapper orderSampleRelationMapper; + + private WorkbenchRemindMessageMapper remindMessageMapper; + + private CustomerSampleMapper customerSampleMapper; private final BusinessCertificateReportMapper certificateReportMapper; private final BusinessLabExecutiveInfoMapper labExecutiveInfoMapper; private final IBaseExportService iBaseExportService; @@ -134,9 +148,10 @@ @Override @Transactional public ReturnDTO statusChange(DeviceStatusChangeDTO deviceStatusChangeDTO) { - boolean beforeEventFlag = beforeStatusChange(deviceStatusChangeDTO); + boolean incomeStatusFlag = incomeStatusChange(deviceStatusChangeDTO); + completeStatusChange(deviceStatusChangeDTO); Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, false); - if (updateFlag > 0 && beforeEventFlag) { + if (updateFlag > 0 && incomeStatusFlag) { return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -150,7 +165,7 @@ public ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO) { Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, true); //实验室状态数据的更新 - updateLabExecutiveInfo(deviceStatusChangeDTO); + updateLabExecutiveInfo(deviceStatusChangeDTO, MeasureStatusEnum.TERMINATED); if (updateFlag > 0) { return ReturnUtil.success(); } @@ -182,29 +197,78 @@ } } - private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO, String measureStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); -// queryWrapper.ne("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or() + .eq("sample_status", IN_MEASURE)); BusinessLabExecutiveInfo businessLabExecutiveInfo = new BusinessLabExecutiveInfo(); -// businessLabExecutiveInfo.setMeasureStatus(); + businessLabExecutiveInfo.setMeasureStatus(measureStatus); businessLabExecutiveInfo.setRemark(deviceStatusChangeDTO.getReason()); labExecutiveInfoMapper.update(businessLabExecutiveInfo, queryWrapper); } - /** - * 消息催办 - */ + @Override - public ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO) { - int deleteFlag = this.baseMapper.deleteById(deviceStatusChangeDTO.getOrderId()); - if (deleteFlag > 0) { - return ReturnUtil.success(); + public ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO) { + BusinessLabExecutiveInfo labExecutiveInfo = getLabExecutiveInfo(deviceStatusChangeDTO); + if (labExecutiveInfo != null) { + WorkbenchRemindMessage remindMessage = initWorkbenchRemindMessage(labExecutiveInfo); + int remindMessageAddFlag = remindMessageMapper.insert(remindMessage); + if (remindMessageAddFlag > 0) { + return ReturnUtil.success(); + } } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + private BusinessLabExecutiveInfo getLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); + queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(QueryWrapper -> QueryWrapper.eq("measure_status", MeasureStatusEnum.TO_ALLOCATE) + .or().eq("measure_status", MeasureStatusEnum.TO_MEASURE) + .or().eq("measure_status", MeasureStatusEnum.IN_MEASURE)); + List businessLabExecutiveInfo = labExecutiveInfoMapper.selectList(queryWrapper); + return businessLabExecutiveInfo.isEmpty() ? null : businessLabExecutiveInfo.get(0); + } + + /** + * 消息催办 + * 1、待办人为当前实验室工作人员, + * 2、业务主键id业务主键将要跳转的页面id + * 3、当前工作人员id的或部门的id + * 4、创建人为当前催办人 + * 5、消息类型为超出检定时间催办提醒 + * 6、消息主题为代办人或者待办部门 + * 7、消息标题待办提醒,内容为样品 + */ + public WorkbenchRemindMessage initWorkbenchRemindMessage(BusinessLabExecutiveInfo labExecutiveInfo) { + WorkbenchRemindMessage remindMessage = new WorkbenchRemindMessage(); + remindMessage.setRemindId(labExecutiveInfo.getMeasurePersonId()); + remindMessage.setRemindDeptId(labExecutiveInfo.getMeasureDeptId()); + remindMessage.setMessageType(MessageTypeEnum.OVERTIME_MEASURE.getCode()); + //检测人不为空,且检测状态不为待分配消息催办到我的检测 + if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { + remindMessage.setMessageTopic("我的检测"); + } else { + remindMessage.setMessageTopic("部门检测"); + } + CustomerSampleInfo customerSampleInfo = customerSampleMapper.selectById(labExecutiveInfo.getSampleId()); + if (null != customerSampleInfo) { + remindMessage.setMessageTitle(customerSampleInfo.getSampleName() + "样品检测已经超出期限"); + remindMessage.setMessageContent(customerSampleInfo.getSampleNo() + customerSampleInfo.getSampleName()); + remindMessage.setBusinessCode(customerSampleInfo.getSampleNo()); + } + remindMessage.setBusinessId(labExecutiveInfo.getSampleId()); + remindMessage.setRelationBusinessId(labExecutiveInfo.getOrderId()); + AuthUser authUser = ShiroKit.getUser(); + remindMessage.setCreateUser(authUser.getId()); + remindMessage.setCreateUserName(authUser.getName()); + return remindMessage; + } + private Integer getAlreadyCertificateNum(DeviceDispatchVO dispatchVO, Long measureDeptId) { Long aLong = certificateReportMapper.selectCount(getCertificateReportWrapper(dispatchVO, measureDeptId)); return aLong.intValue(); @@ -240,7 +304,7 @@ queryWrapper.eq("sample_id", statusChangeDTO.getSampleId()); if (terminateFlag) { //若是终止,需要对应待分发、检测中、检测完三个状态的变更 - queryWrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE)); } BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); @@ -291,7 +355,7 @@ return false; } - private boolean beforeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + private boolean incomeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { if (statusChangeDTO.getStatus().equals(TO_INCOME)) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("order_id", statusChangeDTO.getOrderId()); @@ -311,4 +375,11 @@ return true; } + private void completeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + if (statusChangeDTO.getStatus().equals(COMPLETE)) { + this.updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.MEASURE_COMPLETE); + } + } + + } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 164c53a..5e59e2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -20,19 +21,25 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.enums.*; +import com.casic.missiles.enums.business.CertificatePrintStatusEnum; import com.casic.missiles.enums.business.MonitorCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApplyFromIdEnum; import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.Impl.customer.CustomerSampleServiceImpl; import com.casic.missiles.service.business.IBusinessCertificateReportService; import com.casic.missiles.service.business.IBusinessOriginalRecordService; +import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -73,6 +80,8 @@ private RuntimeService runtimeService; @Resource private IBaseExportService iBaseExportService; + @Resource + private CustomerSampleServiceImpl sampleService; /** * 保存证书报告信息 @@ -85,7 +94,7 @@ initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) - return ReturnUtil.success(); + return ReturnUtil.success(certificateReport.getId()); throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @@ -135,10 +144,12 @@ */ @Override public BusinessCertificateReport certificateReportDetail(Long id) { - BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); +// BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + BusinessCertificateReport certificateReport = this.baseMapper.detailById(id); if (certificateReport.getOriginalRecordId() != null) { try { certificateReport.setBusinessOriginalRecord(originalRecordService.originalDetail(certificateReport.getOriginalRecordId())); + certificateReport.setCertificateReportTypeName(dictService.getDictNameByCode(MeterDictEnum.CERTIFICATION_CLASS,certificateReport.getCertificateReportType())); } catch (Exception e) { e.printStackTrace(); } @@ -166,6 +177,7 @@ certificateReport.setId(request.getId()); certificateReport.setApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 certificateReport.setProcessId(processInstance.getId()); + certificateReport.setSubmitDate(DateUtil.formatDateTime(new Date())); int row = this.baseMapper.updateById(certificateReport); if (row <= 0) { throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getCode(), BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getMessage()); @@ -173,6 +185,7 @@ return ReturnUtil.success(); } + /** * 审批状态列表查询 * @@ -233,6 +246,78 @@ } } + /** + * 审批通过后 更新样品有效期 + * + * @param id + * @return + */ + @Override + public boolean updateCertificateReportState(Long id) { + + BusinessCertificateReport certificateReport = new BusinessCertificateReport(); + certificateReport.setId(id); + //审批状态为通过 + certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); + certificateReport.setUpdateTime(DateUtil.formatDateTime(new Date())); + int row = this.baseMapper.updateById(certificateReport); + //更新样品有效期 + BusinessCertificateReport certificateReport1 = this.baseMapper.selectById(id); + if (certificateReport1.getSampleId() != null) { + CustomerSampleInfo sampleInfo = sampleService.getById(certificateReport1.getSampleId()); + if (sampleInfo != null) { + sampleInfo.setValidDeadline(certificateReport1.getExpirationDate()); + boolean rs = sampleService.updateById(sampleInfo); + if (row > 0 & rs) return true; + } + } + return row > 0 ? true : false; + } + + + + /** + * 客户、样品详情列表 + */ + @Override + public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); + for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { + if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { + DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); + } + } + return certificateResponsePage; + } + + @Override + public Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateMonitorResponsePage = this.baseMapper.certificateMonitorsById(page, customerSampleIdRequest); + for (CertificateMonitorResponse certificateMonitorResponse : certificateMonitorResponsePage.getRecords()) { + if (!StringUtils.isEmpty(certificateMonitorResponse.getCertificationType())) { + DictCodeUtils.convertDictMultiCodeToName(certificateMonitorResponse); + } + //设置证书状态 + certificateMonitorResponse.setCertificateStatus(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + CertificatePrintStatusEnum.FINISHED : CertificatePrintStatusEnum.UNFINISHED); + //设置完成时间 + certificateMonitorResponse.setFinishedTime(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + certificateMonitorResponse.getFinishedTime() : ""); + + //设置退回次数 + List rejectBusinessKey = baseApprovalService.getFailedRejectList(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL); + + rejectBusinessKey.forEach(obj -> { + if (obj.equals(certificateMonitorResponse.getCertificationId().toString())) { + certificateMonitorResponse.setReturns(certificateMonitorResponse.getReturns() + 1); + } + }); + } + return certificateMonitorResponsePage; + } + private List handleApprovalStatus(Page page, CertificateReportApprovalRequest request) { List approvalList = new ArrayList<>(); List businessKeys = new ArrayList<>(); @@ -312,21 +397,6 @@ return approvalList; } - /** - * 客户、样品详情列表 - */ - @Override - public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { - Page page = PageFactory.defaultPage(); - Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); - for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { - if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { - DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); - } - } - return certificateResponsePage; - } - private List handleAllApprovalListResponse(List approvalList, List allApproveList) { Map taskMap = new HashMap<>(); allApproveList.forEach(allApprove -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 955cc7a..5b23762 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -159,6 +159,10 @@ if(!CollectionUtils.isEmpty(initListResponses)){ return initListResponses; } + + if(StringUtils.isEmpty(handOutInitListRequest.getMeasureContent())){ + return new ArrayList<>(); + } //根据样品的检定项目去关键字匹配实验室能力信息 String[] split = handOutInitListRequest.getMeasureContent().split(","); List list = Arrays.asList(split); @@ -212,10 +216,12 @@ public Page deptLabExecutiveListPage(Page page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception{ //本级部门主管可见本部门的检测 //根据用户id查询,用户角色中TIPS为director即为主管,取用户的部门id - AuthUser user = ShiroKit.getUser(); - Assert.isFalse(Objects.isNull(user), () -> { - throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); - }); +// AuthUser user = ShiroKit.getUser(); +// Assert.isFalse(Objects.isNull(user), () -> { +// throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); +// }); + AuthUser user = new AuthUser(); + user.setId(1634091003794550786l); Map resultMap = selectDirectDept(user); if(CollectionUtils.isEmpty(resultMap) || Objects.isNull(resultMap.get("deptId"))){ return new Page<>(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 1d63554..ab5978d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -53,7 +53,7 @@ */ @Service @AllArgsConstructor -public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService,PrefixCodeEnum, OrderStatusEnum,SampleStatusEnum, MeasureTypeEnum { +public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService, PrefixCodeEnum, OrderStatusEnum, SampleStatusEnum, MeasureTypeEnum { private final BusinessOrderListReponseMapper orderListResponseMapper; private final IBaseExportService iBaseExportService; @@ -107,7 +107,7 @@ * 2、对样品进行是否在库的判断,如果不存在则入库, 入库操作完成,进行委托书样品关系的绑定 */ @Override - public ReturnDTO updateOrder(BusinessOrder businessOrder) { + public ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception { if (CollectionUtils.isEmpty(businessOrder.getCustomerSampleInfoList())) { return ReturnUtil.failed("样品列表不能为空"); } @@ -141,7 +141,7 @@ */ @Override @Transactional - public ReturnDTO addOrder(BusinessOrder businessOrder) { + public ReturnDTO addOrder(BusinessOrder businessOrder) throws Exception { initOrderInfo(businessOrder); int addFlag = this.baseMapper.insert(businessOrder); boolean sampleAddFlag = true; @@ -209,8 +209,8 @@ int updateFlag = doUpdateStatusById(orderCancelRequest.getId(), status); String dealType = ""; if (status.equals(ALREADY_RECEIVED)) { - dealType = "委托书接收" ; - doUpdateSampleStatus(orderCancelRequest.getId(),TO_RECEIVE); + dealType = "委托书接收"; + doUpdateSampleStatus(orderCancelRequest.getId(), TO_RECEIVE); } else { dealType = "委托书退回"; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index c9c1902..8e41658 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.HandOutLabExecutiveDTO; @@ -15,16 +17,25 @@ import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; import com.casic.missiles.enums.*; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.business.MeasureStatusEnum; import com.casic.missiles.enums.business.MeasureTypeEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.workbench.MessageTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; +import com.casic.missiles.mapper.customer.CustomerSampleMapper; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.business.*; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.model.workbench.WorkbenchRemindMessage; import com.casic.missiles.service.business.IBusinessDispatchService; +import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.docx4j.wml.R; +import org.springframework.data.redis.connection.Message; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -43,8 +54,11 @@ @Slf4j @AllArgsConstructor public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService, SampleStatusEnum, CurrentSegmentEnum, MeasureTypeEnum { - private final BusinessOrderSampleRelationMapper orderSampleRelationMapper; + + private WorkbenchRemindMessageMapper remindMessageMapper; + + private CustomerSampleMapper customerSampleMapper; private final BusinessCertificateReportMapper certificateReportMapper; private final BusinessLabExecutiveInfoMapper labExecutiveInfoMapper; private final IBaseExportService iBaseExportService; @@ -134,9 +148,10 @@ @Override @Transactional public ReturnDTO statusChange(DeviceStatusChangeDTO deviceStatusChangeDTO) { - boolean beforeEventFlag = beforeStatusChange(deviceStatusChangeDTO); + boolean incomeStatusFlag = incomeStatusChange(deviceStatusChangeDTO); + completeStatusChange(deviceStatusChangeDTO); Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, false); - if (updateFlag > 0 && beforeEventFlag) { + if (updateFlag > 0 && incomeStatusFlag) { return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -150,7 +165,7 @@ public ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO) { Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, true); //实验室状态数据的更新 - updateLabExecutiveInfo(deviceStatusChangeDTO); + updateLabExecutiveInfo(deviceStatusChangeDTO, MeasureStatusEnum.TERMINATED); if (updateFlag > 0) { return ReturnUtil.success(); } @@ -182,29 +197,78 @@ } } - private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO, String measureStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); -// queryWrapper.ne("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or() + .eq("sample_status", IN_MEASURE)); BusinessLabExecutiveInfo businessLabExecutiveInfo = new BusinessLabExecutiveInfo(); -// businessLabExecutiveInfo.setMeasureStatus(); + businessLabExecutiveInfo.setMeasureStatus(measureStatus); businessLabExecutiveInfo.setRemark(deviceStatusChangeDTO.getReason()); labExecutiveInfoMapper.update(businessLabExecutiveInfo, queryWrapper); } - /** - * 消息催办 - */ + @Override - public ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO) { - int deleteFlag = this.baseMapper.deleteById(deviceStatusChangeDTO.getOrderId()); - if (deleteFlag > 0) { - return ReturnUtil.success(); + public ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO) { + BusinessLabExecutiveInfo labExecutiveInfo = getLabExecutiveInfo(deviceStatusChangeDTO); + if (labExecutiveInfo != null) { + WorkbenchRemindMessage remindMessage = initWorkbenchRemindMessage(labExecutiveInfo); + int remindMessageAddFlag = remindMessageMapper.insert(remindMessage); + if (remindMessageAddFlag > 0) { + return ReturnUtil.success(); + } } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + private BusinessLabExecutiveInfo getLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); + queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(QueryWrapper -> QueryWrapper.eq("measure_status", MeasureStatusEnum.TO_ALLOCATE) + .or().eq("measure_status", MeasureStatusEnum.TO_MEASURE) + .or().eq("measure_status", MeasureStatusEnum.IN_MEASURE)); + List businessLabExecutiveInfo = labExecutiveInfoMapper.selectList(queryWrapper); + return businessLabExecutiveInfo.isEmpty() ? null : businessLabExecutiveInfo.get(0); + } + + /** + * 消息催办 + * 1、待办人为当前实验室工作人员, + * 2、业务主键id业务主键将要跳转的页面id + * 3、当前工作人员id的或部门的id + * 4、创建人为当前催办人 + * 5、消息类型为超出检定时间催办提醒 + * 6、消息主题为代办人或者待办部门 + * 7、消息标题待办提醒,内容为样品 + */ + public WorkbenchRemindMessage initWorkbenchRemindMessage(BusinessLabExecutiveInfo labExecutiveInfo) { + WorkbenchRemindMessage remindMessage = new WorkbenchRemindMessage(); + remindMessage.setRemindId(labExecutiveInfo.getMeasurePersonId()); + remindMessage.setRemindDeptId(labExecutiveInfo.getMeasureDeptId()); + remindMessage.setMessageType(MessageTypeEnum.OVERTIME_MEASURE.getCode()); + //检测人不为空,且检测状态不为待分配消息催办到我的检测 + if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { + remindMessage.setMessageTopic("我的检测"); + } else { + remindMessage.setMessageTopic("部门检测"); + } + CustomerSampleInfo customerSampleInfo = customerSampleMapper.selectById(labExecutiveInfo.getSampleId()); + if (null != customerSampleInfo) { + remindMessage.setMessageTitle(customerSampleInfo.getSampleName() + "样品检测已经超出期限"); + remindMessage.setMessageContent(customerSampleInfo.getSampleNo() + customerSampleInfo.getSampleName()); + remindMessage.setBusinessCode(customerSampleInfo.getSampleNo()); + } + remindMessage.setBusinessId(labExecutiveInfo.getSampleId()); + remindMessage.setRelationBusinessId(labExecutiveInfo.getOrderId()); + AuthUser authUser = ShiroKit.getUser(); + remindMessage.setCreateUser(authUser.getId()); + remindMessage.setCreateUserName(authUser.getName()); + return remindMessage; + } + private Integer getAlreadyCertificateNum(DeviceDispatchVO dispatchVO, Long measureDeptId) { Long aLong = certificateReportMapper.selectCount(getCertificateReportWrapper(dispatchVO, measureDeptId)); return aLong.intValue(); @@ -240,7 +304,7 @@ queryWrapper.eq("sample_id", statusChangeDTO.getSampleId()); if (terminateFlag) { //若是终止,需要对应待分发、检测中、检测完三个状态的变更 - queryWrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE)); } BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); @@ -291,7 +355,7 @@ return false; } - private boolean beforeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + private boolean incomeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { if (statusChangeDTO.getStatus().equals(TO_INCOME)) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("order_id", statusChangeDTO.getOrderId()); @@ -311,4 +375,11 @@ return true; } + private void completeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + if (statusChangeDTO.getStatus().equals(COMPLETE)) { + this.updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.MEASURE_COMPLETE); + } + } + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index f9747dd..9fa94f8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -76,7 +76,8 @@ */ @Override @Transactional - public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) { + public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) throws Exception{ + DictCodeUtils.validDictCode(customerSampleInfo); initSample(customerSampleInfo); int addFlag = this.baseMapper.insert(customerSampleInfo); if (addFlag > 0) { @@ -164,6 +165,8 @@ } + + @Override public Page samplesByOderId(Page page, Long orderId, String sampleNo, String sampleName) { return this.baseMapper.samplesByOderId(page, orderId, sampleNo, sampleName); 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 164c53a..5e59e2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -20,19 +21,25 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.enums.*; +import com.casic.missiles.enums.business.CertificatePrintStatusEnum; import com.casic.missiles.enums.business.MonitorCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApplyFromIdEnum; import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.Impl.customer.CustomerSampleServiceImpl; import com.casic.missiles.service.business.IBusinessCertificateReportService; import com.casic.missiles.service.business.IBusinessOriginalRecordService; +import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -73,6 +80,8 @@ private RuntimeService runtimeService; @Resource private IBaseExportService iBaseExportService; + @Resource + private CustomerSampleServiceImpl sampleService; /** * 保存证书报告信息 @@ -85,7 +94,7 @@ initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) - return ReturnUtil.success(); + return ReturnUtil.success(certificateReport.getId()); throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @@ -135,10 +144,12 @@ */ @Override public BusinessCertificateReport certificateReportDetail(Long id) { - BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); +// BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + BusinessCertificateReport certificateReport = this.baseMapper.detailById(id); if (certificateReport.getOriginalRecordId() != null) { try { certificateReport.setBusinessOriginalRecord(originalRecordService.originalDetail(certificateReport.getOriginalRecordId())); + certificateReport.setCertificateReportTypeName(dictService.getDictNameByCode(MeterDictEnum.CERTIFICATION_CLASS,certificateReport.getCertificateReportType())); } catch (Exception e) { e.printStackTrace(); } @@ -166,6 +177,7 @@ certificateReport.setId(request.getId()); certificateReport.setApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 certificateReport.setProcessId(processInstance.getId()); + certificateReport.setSubmitDate(DateUtil.formatDateTime(new Date())); int row = this.baseMapper.updateById(certificateReport); if (row <= 0) { throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getCode(), BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getMessage()); @@ -173,6 +185,7 @@ return ReturnUtil.success(); } + /** * 审批状态列表查询 * @@ -233,6 +246,78 @@ } } + /** + * 审批通过后 更新样品有效期 + * + * @param id + * @return + */ + @Override + public boolean updateCertificateReportState(Long id) { + + BusinessCertificateReport certificateReport = new BusinessCertificateReport(); + certificateReport.setId(id); + //审批状态为通过 + certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); + certificateReport.setUpdateTime(DateUtil.formatDateTime(new Date())); + int row = this.baseMapper.updateById(certificateReport); + //更新样品有效期 + BusinessCertificateReport certificateReport1 = this.baseMapper.selectById(id); + if (certificateReport1.getSampleId() != null) { + CustomerSampleInfo sampleInfo = sampleService.getById(certificateReport1.getSampleId()); + if (sampleInfo != null) { + sampleInfo.setValidDeadline(certificateReport1.getExpirationDate()); + boolean rs = sampleService.updateById(sampleInfo); + if (row > 0 & rs) return true; + } + } + return row > 0 ? true : false; + } + + + + /** + * 客户、样品详情列表 + */ + @Override + public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); + for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { + if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { + DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); + } + } + return certificateResponsePage; + } + + @Override + public Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateMonitorResponsePage = this.baseMapper.certificateMonitorsById(page, customerSampleIdRequest); + for (CertificateMonitorResponse certificateMonitorResponse : certificateMonitorResponsePage.getRecords()) { + if (!StringUtils.isEmpty(certificateMonitorResponse.getCertificationType())) { + DictCodeUtils.convertDictMultiCodeToName(certificateMonitorResponse); + } + //设置证书状态 + certificateMonitorResponse.setCertificateStatus(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + CertificatePrintStatusEnum.FINISHED : CertificatePrintStatusEnum.UNFINISHED); + //设置完成时间 + certificateMonitorResponse.setFinishedTime(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + certificateMonitorResponse.getFinishedTime() : ""); + + //设置退回次数 + List rejectBusinessKey = baseApprovalService.getFailedRejectList(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL); + + rejectBusinessKey.forEach(obj -> { + if (obj.equals(certificateMonitorResponse.getCertificationId().toString())) { + certificateMonitorResponse.setReturns(certificateMonitorResponse.getReturns() + 1); + } + }); + } + return certificateMonitorResponsePage; + } + private List handleApprovalStatus(Page page, CertificateReportApprovalRequest request) { List approvalList = new ArrayList<>(); List businessKeys = new ArrayList<>(); @@ -312,21 +397,6 @@ return approvalList; } - /** - * 客户、样品详情列表 - */ - @Override - public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { - Page page = PageFactory.defaultPage(); - Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); - for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { - if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { - DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); - } - } - return certificateResponsePage; - } - private List handleAllApprovalListResponse(List approvalList, List allApproveList) { Map taskMap = new HashMap<>(); allApproveList.forEach(allApprove -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 955cc7a..5b23762 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -159,6 +159,10 @@ if(!CollectionUtils.isEmpty(initListResponses)){ return initListResponses; } + + if(StringUtils.isEmpty(handOutInitListRequest.getMeasureContent())){ + return new ArrayList<>(); + } //根据样品的检定项目去关键字匹配实验室能力信息 String[] split = handOutInitListRequest.getMeasureContent().split(","); List list = Arrays.asList(split); @@ -212,10 +216,12 @@ public Page deptLabExecutiveListPage(Page page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception{ //本级部门主管可见本部门的检测 //根据用户id查询,用户角色中TIPS为director即为主管,取用户的部门id - AuthUser user = ShiroKit.getUser(); - Assert.isFalse(Objects.isNull(user), () -> { - throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); - }); +// AuthUser user = ShiroKit.getUser(); +// Assert.isFalse(Objects.isNull(user), () -> { +// throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); +// }); + AuthUser user = new AuthUser(); + user.setId(1634091003794550786l); Map resultMap = selectDirectDept(user); if(CollectionUtils.isEmpty(resultMap) || Objects.isNull(resultMap.get("deptId"))){ return new Page<>(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 1d63554..ab5978d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -53,7 +53,7 @@ */ @Service @AllArgsConstructor -public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService,PrefixCodeEnum, OrderStatusEnum,SampleStatusEnum, MeasureTypeEnum { +public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService, PrefixCodeEnum, OrderStatusEnum, SampleStatusEnum, MeasureTypeEnum { private final BusinessOrderListReponseMapper orderListResponseMapper; private final IBaseExportService iBaseExportService; @@ -107,7 +107,7 @@ * 2、对样品进行是否在库的判断,如果不存在则入库, 入库操作完成,进行委托书样品关系的绑定 */ @Override - public ReturnDTO updateOrder(BusinessOrder businessOrder) { + public ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception { if (CollectionUtils.isEmpty(businessOrder.getCustomerSampleInfoList())) { return ReturnUtil.failed("样品列表不能为空"); } @@ -141,7 +141,7 @@ */ @Override @Transactional - public ReturnDTO addOrder(BusinessOrder businessOrder) { + public ReturnDTO addOrder(BusinessOrder businessOrder) throws Exception { initOrderInfo(businessOrder); int addFlag = this.baseMapper.insert(businessOrder); boolean sampleAddFlag = true; @@ -209,8 +209,8 @@ int updateFlag = doUpdateStatusById(orderCancelRequest.getId(), status); String dealType = ""; if (status.equals(ALREADY_RECEIVED)) { - dealType = "委托书接收" ; - doUpdateSampleStatus(orderCancelRequest.getId(),TO_RECEIVE); + dealType = "委托书接收"; + doUpdateSampleStatus(orderCancelRequest.getId(), TO_RECEIVE); } else { dealType = "委托书退回"; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index c9c1902..8e41658 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.HandOutLabExecutiveDTO; @@ -15,16 +17,25 @@ import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; import com.casic.missiles.enums.*; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.business.MeasureStatusEnum; import com.casic.missiles.enums.business.MeasureTypeEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.workbench.MessageTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; +import com.casic.missiles.mapper.customer.CustomerSampleMapper; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.business.*; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.model.workbench.WorkbenchRemindMessage; import com.casic.missiles.service.business.IBusinessDispatchService; +import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.docx4j.wml.R; +import org.springframework.data.redis.connection.Message; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -43,8 +54,11 @@ @Slf4j @AllArgsConstructor public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService, SampleStatusEnum, CurrentSegmentEnum, MeasureTypeEnum { - private final BusinessOrderSampleRelationMapper orderSampleRelationMapper; + + private WorkbenchRemindMessageMapper remindMessageMapper; + + private CustomerSampleMapper customerSampleMapper; private final BusinessCertificateReportMapper certificateReportMapper; private final BusinessLabExecutiveInfoMapper labExecutiveInfoMapper; private final IBaseExportService iBaseExportService; @@ -134,9 +148,10 @@ @Override @Transactional public ReturnDTO statusChange(DeviceStatusChangeDTO deviceStatusChangeDTO) { - boolean beforeEventFlag = beforeStatusChange(deviceStatusChangeDTO); + boolean incomeStatusFlag = incomeStatusChange(deviceStatusChangeDTO); + completeStatusChange(deviceStatusChangeDTO); Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, false); - if (updateFlag > 0 && beforeEventFlag) { + if (updateFlag > 0 && incomeStatusFlag) { return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -150,7 +165,7 @@ public ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO) { Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, true); //实验室状态数据的更新 - updateLabExecutiveInfo(deviceStatusChangeDTO); + updateLabExecutiveInfo(deviceStatusChangeDTO, MeasureStatusEnum.TERMINATED); if (updateFlag > 0) { return ReturnUtil.success(); } @@ -182,29 +197,78 @@ } } - private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO, String measureStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); -// queryWrapper.ne("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or() + .eq("sample_status", IN_MEASURE)); BusinessLabExecutiveInfo businessLabExecutiveInfo = new BusinessLabExecutiveInfo(); -// businessLabExecutiveInfo.setMeasureStatus(); + businessLabExecutiveInfo.setMeasureStatus(measureStatus); businessLabExecutiveInfo.setRemark(deviceStatusChangeDTO.getReason()); labExecutiveInfoMapper.update(businessLabExecutiveInfo, queryWrapper); } - /** - * 消息催办 - */ + @Override - public ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO) { - int deleteFlag = this.baseMapper.deleteById(deviceStatusChangeDTO.getOrderId()); - if (deleteFlag > 0) { - return ReturnUtil.success(); + public ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO) { + BusinessLabExecutiveInfo labExecutiveInfo = getLabExecutiveInfo(deviceStatusChangeDTO); + if (labExecutiveInfo != null) { + WorkbenchRemindMessage remindMessage = initWorkbenchRemindMessage(labExecutiveInfo); + int remindMessageAddFlag = remindMessageMapper.insert(remindMessage); + if (remindMessageAddFlag > 0) { + return ReturnUtil.success(); + } } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + private BusinessLabExecutiveInfo getLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); + queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(QueryWrapper -> QueryWrapper.eq("measure_status", MeasureStatusEnum.TO_ALLOCATE) + .or().eq("measure_status", MeasureStatusEnum.TO_MEASURE) + .or().eq("measure_status", MeasureStatusEnum.IN_MEASURE)); + List businessLabExecutiveInfo = labExecutiveInfoMapper.selectList(queryWrapper); + return businessLabExecutiveInfo.isEmpty() ? null : businessLabExecutiveInfo.get(0); + } + + /** + * 消息催办 + * 1、待办人为当前实验室工作人员, + * 2、业务主键id业务主键将要跳转的页面id + * 3、当前工作人员id的或部门的id + * 4、创建人为当前催办人 + * 5、消息类型为超出检定时间催办提醒 + * 6、消息主题为代办人或者待办部门 + * 7、消息标题待办提醒,内容为样品 + */ + public WorkbenchRemindMessage initWorkbenchRemindMessage(BusinessLabExecutiveInfo labExecutiveInfo) { + WorkbenchRemindMessage remindMessage = new WorkbenchRemindMessage(); + remindMessage.setRemindId(labExecutiveInfo.getMeasurePersonId()); + remindMessage.setRemindDeptId(labExecutiveInfo.getMeasureDeptId()); + remindMessage.setMessageType(MessageTypeEnum.OVERTIME_MEASURE.getCode()); + //检测人不为空,且检测状态不为待分配消息催办到我的检测 + if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { + remindMessage.setMessageTopic("我的检测"); + } else { + remindMessage.setMessageTopic("部门检测"); + } + CustomerSampleInfo customerSampleInfo = customerSampleMapper.selectById(labExecutiveInfo.getSampleId()); + if (null != customerSampleInfo) { + remindMessage.setMessageTitle(customerSampleInfo.getSampleName() + "样品检测已经超出期限"); + remindMessage.setMessageContent(customerSampleInfo.getSampleNo() + customerSampleInfo.getSampleName()); + remindMessage.setBusinessCode(customerSampleInfo.getSampleNo()); + } + remindMessage.setBusinessId(labExecutiveInfo.getSampleId()); + remindMessage.setRelationBusinessId(labExecutiveInfo.getOrderId()); + AuthUser authUser = ShiroKit.getUser(); + remindMessage.setCreateUser(authUser.getId()); + remindMessage.setCreateUserName(authUser.getName()); + return remindMessage; + } + private Integer getAlreadyCertificateNum(DeviceDispatchVO dispatchVO, Long measureDeptId) { Long aLong = certificateReportMapper.selectCount(getCertificateReportWrapper(dispatchVO, measureDeptId)); return aLong.intValue(); @@ -240,7 +304,7 @@ queryWrapper.eq("sample_id", statusChangeDTO.getSampleId()); if (terminateFlag) { //若是终止,需要对应待分发、检测中、检测完三个状态的变更 - queryWrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE)); } BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); @@ -291,7 +355,7 @@ return false; } - private boolean beforeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + private boolean incomeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { if (statusChangeDTO.getStatus().equals(TO_INCOME)) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("order_id", statusChangeDTO.getOrderId()); @@ -311,4 +375,11 @@ return true; } + private void completeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + if (statusChangeDTO.getStatus().equals(COMPLETE)) { + this.updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.MEASURE_COMPLETE); + } + } + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index f9747dd..9fa94f8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -76,7 +76,8 @@ */ @Override @Transactional - public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) { + public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) throws Exception{ + DictCodeUtils.validDictCode(customerSampleInfo); initSample(customerSampleInfo); int addFlag = this.baseMapper.insert(customerSampleInfo); if (addFlag > 0) { @@ -164,6 +165,8 @@ } + + @Override public Page samplesByOderId(Page page, Long orderId, String sampleNo, String sampleName) { return this.baseMapper.samplesByOderId(page, orderId, sampleNo, sampleName); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java index f6e1f8a..8277712 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.service.customer.CustomerService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import liquibase.pro.packaged.E; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -66,7 +67,8 @@ @Override @Transactional - public ReturnDTO addCustomer(CustomerInfo customerInfo) { + public ReturnDTO addCustomer(CustomerInfo customerInfo) throws Exception { + DictCodeUtils.validDictCode(customerInfo); initCustomerInfo(customerInfo); int addFlag = this.baseMapper.insert(customerInfo); Boolean userAddFlag = userInfoListCreator(customerInfo.getCustomerUserList(), customerInfo.getId()); 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 164c53a..5e59e2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -20,19 +21,25 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.enums.*; +import com.casic.missiles.enums.business.CertificatePrintStatusEnum; import com.casic.missiles.enums.business.MonitorCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApplyFromIdEnum; import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.Impl.customer.CustomerSampleServiceImpl; import com.casic.missiles.service.business.IBusinessCertificateReportService; import com.casic.missiles.service.business.IBusinessOriginalRecordService; +import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -73,6 +80,8 @@ private RuntimeService runtimeService; @Resource private IBaseExportService iBaseExportService; + @Resource + private CustomerSampleServiceImpl sampleService; /** * 保存证书报告信息 @@ -85,7 +94,7 @@ initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) - return ReturnUtil.success(); + return ReturnUtil.success(certificateReport.getId()); throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @@ -135,10 +144,12 @@ */ @Override public BusinessCertificateReport certificateReportDetail(Long id) { - BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); +// BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + BusinessCertificateReport certificateReport = this.baseMapper.detailById(id); if (certificateReport.getOriginalRecordId() != null) { try { certificateReport.setBusinessOriginalRecord(originalRecordService.originalDetail(certificateReport.getOriginalRecordId())); + certificateReport.setCertificateReportTypeName(dictService.getDictNameByCode(MeterDictEnum.CERTIFICATION_CLASS,certificateReport.getCertificateReportType())); } catch (Exception e) { e.printStackTrace(); } @@ -166,6 +177,7 @@ certificateReport.setId(request.getId()); certificateReport.setApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 certificateReport.setProcessId(processInstance.getId()); + certificateReport.setSubmitDate(DateUtil.formatDateTime(new Date())); int row = this.baseMapper.updateById(certificateReport); if (row <= 0) { throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getCode(), BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getMessage()); @@ -173,6 +185,7 @@ return ReturnUtil.success(); } + /** * 审批状态列表查询 * @@ -233,6 +246,78 @@ } } + /** + * 审批通过后 更新样品有效期 + * + * @param id + * @return + */ + @Override + public boolean updateCertificateReportState(Long id) { + + BusinessCertificateReport certificateReport = new BusinessCertificateReport(); + certificateReport.setId(id); + //审批状态为通过 + certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); + certificateReport.setUpdateTime(DateUtil.formatDateTime(new Date())); + int row = this.baseMapper.updateById(certificateReport); + //更新样品有效期 + BusinessCertificateReport certificateReport1 = this.baseMapper.selectById(id); + if (certificateReport1.getSampleId() != null) { + CustomerSampleInfo sampleInfo = sampleService.getById(certificateReport1.getSampleId()); + if (sampleInfo != null) { + sampleInfo.setValidDeadline(certificateReport1.getExpirationDate()); + boolean rs = sampleService.updateById(sampleInfo); + if (row > 0 & rs) return true; + } + } + return row > 0 ? true : false; + } + + + + /** + * 客户、样品详情列表 + */ + @Override + public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); + for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { + if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { + DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); + } + } + return certificateResponsePage; + } + + @Override + public Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateMonitorResponsePage = this.baseMapper.certificateMonitorsById(page, customerSampleIdRequest); + for (CertificateMonitorResponse certificateMonitorResponse : certificateMonitorResponsePage.getRecords()) { + if (!StringUtils.isEmpty(certificateMonitorResponse.getCertificationType())) { + DictCodeUtils.convertDictMultiCodeToName(certificateMonitorResponse); + } + //设置证书状态 + certificateMonitorResponse.setCertificateStatus(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + CertificatePrintStatusEnum.FINISHED : CertificatePrintStatusEnum.UNFINISHED); + //设置完成时间 + certificateMonitorResponse.setFinishedTime(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + certificateMonitorResponse.getFinishedTime() : ""); + + //设置退回次数 + List rejectBusinessKey = baseApprovalService.getFailedRejectList(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL); + + rejectBusinessKey.forEach(obj -> { + if (obj.equals(certificateMonitorResponse.getCertificationId().toString())) { + certificateMonitorResponse.setReturns(certificateMonitorResponse.getReturns() + 1); + } + }); + } + return certificateMonitorResponsePage; + } + private List handleApprovalStatus(Page page, CertificateReportApprovalRequest request) { List approvalList = new ArrayList<>(); List businessKeys = new ArrayList<>(); @@ -312,21 +397,6 @@ return approvalList; } - /** - * 客户、样品详情列表 - */ - @Override - public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { - Page page = PageFactory.defaultPage(); - Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); - for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { - if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { - DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); - } - } - return certificateResponsePage; - } - private List handleAllApprovalListResponse(List approvalList, List allApproveList) { Map taskMap = new HashMap<>(); allApproveList.forEach(allApprove -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 955cc7a..5b23762 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -159,6 +159,10 @@ if(!CollectionUtils.isEmpty(initListResponses)){ return initListResponses; } + + if(StringUtils.isEmpty(handOutInitListRequest.getMeasureContent())){ + return new ArrayList<>(); + } //根据样品的检定项目去关键字匹配实验室能力信息 String[] split = handOutInitListRequest.getMeasureContent().split(","); List list = Arrays.asList(split); @@ -212,10 +216,12 @@ public Page deptLabExecutiveListPage(Page page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception{ //本级部门主管可见本部门的检测 //根据用户id查询,用户角色中TIPS为director即为主管,取用户的部门id - AuthUser user = ShiroKit.getUser(); - Assert.isFalse(Objects.isNull(user), () -> { - throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); - }); +// AuthUser user = ShiroKit.getUser(); +// Assert.isFalse(Objects.isNull(user), () -> { +// throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); +// }); + AuthUser user = new AuthUser(); + user.setId(1634091003794550786l); Map resultMap = selectDirectDept(user); if(CollectionUtils.isEmpty(resultMap) || Objects.isNull(resultMap.get("deptId"))){ return new Page<>(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 1d63554..ab5978d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -53,7 +53,7 @@ */ @Service @AllArgsConstructor -public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService,PrefixCodeEnum, OrderStatusEnum,SampleStatusEnum, MeasureTypeEnum { +public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService, PrefixCodeEnum, OrderStatusEnum, SampleStatusEnum, MeasureTypeEnum { private final BusinessOrderListReponseMapper orderListResponseMapper; private final IBaseExportService iBaseExportService; @@ -107,7 +107,7 @@ * 2、对样品进行是否在库的判断,如果不存在则入库, 入库操作完成,进行委托书样品关系的绑定 */ @Override - public ReturnDTO updateOrder(BusinessOrder businessOrder) { + public ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception { if (CollectionUtils.isEmpty(businessOrder.getCustomerSampleInfoList())) { return ReturnUtil.failed("样品列表不能为空"); } @@ -141,7 +141,7 @@ */ @Override @Transactional - public ReturnDTO addOrder(BusinessOrder businessOrder) { + public ReturnDTO addOrder(BusinessOrder businessOrder) throws Exception { initOrderInfo(businessOrder); int addFlag = this.baseMapper.insert(businessOrder); boolean sampleAddFlag = true; @@ -209,8 +209,8 @@ int updateFlag = doUpdateStatusById(orderCancelRequest.getId(), status); String dealType = ""; if (status.equals(ALREADY_RECEIVED)) { - dealType = "委托书接收" ; - doUpdateSampleStatus(orderCancelRequest.getId(),TO_RECEIVE); + dealType = "委托书接收"; + doUpdateSampleStatus(orderCancelRequest.getId(), TO_RECEIVE); } else { dealType = "委托书退回"; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index c9c1902..8e41658 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.HandOutLabExecutiveDTO; @@ -15,16 +17,25 @@ import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; import com.casic.missiles.enums.*; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.business.MeasureStatusEnum; import com.casic.missiles.enums.business.MeasureTypeEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.workbench.MessageTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; +import com.casic.missiles.mapper.customer.CustomerSampleMapper; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.business.*; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.model.workbench.WorkbenchRemindMessage; import com.casic.missiles.service.business.IBusinessDispatchService; +import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.docx4j.wml.R; +import org.springframework.data.redis.connection.Message; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -43,8 +54,11 @@ @Slf4j @AllArgsConstructor public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService, SampleStatusEnum, CurrentSegmentEnum, MeasureTypeEnum { - private final BusinessOrderSampleRelationMapper orderSampleRelationMapper; + + private WorkbenchRemindMessageMapper remindMessageMapper; + + private CustomerSampleMapper customerSampleMapper; private final BusinessCertificateReportMapper certificateReportMapper; private final BusinessLabExecutiveInfoMapper labExecutiveInfoMapper; private final IBaseExportService iBaseExportService; @@ -134,9 +148,10 @@ @Override @Transactional public ReturnDTO statusChange(DeviceStatusChangeDTO deviceStatusChangeDTO) { - boolean beforeEventFlag = beforeStatusChange(deviceStatusChangeDTO); + boolean incomeStatusFlag = incomeStatusChange(deviceStatusChangeDTO); + completeStatusChange(deviceStatusChangeDTO); Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, false); - if (updateFlag > 0 && beforeEventFlag) { + if (updateFlag > 0 && incomeStatusFlag) { return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -150,7 +165,7 @@ public ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO) { Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, true); //实验室状态数据的更新 - updateLabExecutiveInfo(deviceStatusChangeDTO); + updateLabExecutiveInfo(deviceStatusChangeDTO, MeasureStatusEnum.TERMINATED); if (updateFlag > 0) { return ReturnUtil.success(); } @@ -182,29 +197,78 @@ } } - private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO, String measureStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); -// queryWrapper.ne("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or() + .eq("sample_status", IN_MEASURE)); BusinessLabExecutiveInfo businessLabExecutiveInfo = new BusinessLabExecutiveInfo(); -// businessLabExecutiveInfo.setMeasureStatus(); + businessLabExecutiveInfo.setMeasureStatus(measureStatus); businessLabExecutiveInfo.setRemark(deviceStatusChangeDTO.getReason()); labExecutiveInfoMapper.update(businessLabExecutiveInfo, queryWrapper); } - /** - * 消息催办 - */ + @Override - public ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO) { - int deleteFlag = this.baseMapper.deleteById(deviceStatusChangeDTO.getOrderId()); - if (deleteFlag > 0) { - return ReturnUtil.success(); + public ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO) { + BusinessLabExecutiveInfo labExecutiveInfo = getLabExecutiveInfo(deviceStatusChangeDTO); + if (labExecutiveInfo != null) { + WorkbenchRemindMessage remindMessage = initWorkbenchRemindMessage(labExecutiveInfo); + int remindMessageAddFlag = remindMessageMapper.insert(remindMessage); + if (remindMessageAddFlag > 0) { + return ReturnUtil.success(); + } } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + private BusinessLabExecutiveInfo getLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); + queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(QueryWrapper -> QueryWrapper.eq("measure_status", MeasureStatusEnum.TO_ALLOCATE) + .or().eq("measure_status", MeasureStatusEnum.TO_MEASURE) + .or().eq("measure_status", MeasureStatusEnum.IN_MEASURE)); + List businessLabExecutiveInfo = labExecutiveInfoMapper.selectList(queryWrapper); + return businessLabExecutiveInfo.isEmpty() ? null : businessLabExecutiveInfo.get(0); + } + + /** + * 消息催办 + * 1、待办人为当前实验室工作人员, + * 2、业务主键id业务主键将要跳转的页面id + * 3、当前工作人员id的或部门的id + * 4、创建人为当前催办人 + * 5、消息类型为超出检定时间催办提醒 + * 6、消息主题为代办人或者待办部门 + * 7、消息标题待办提醒,内容为样品 + */ + public WorkbenchRemindMessage initWorkbenchRemindMessage(BusinessLabExecutiveInfo labExecutiveInfo) { + WorkbenchRemindMessage remindMessage = new WorkbenchRemindMessage(); + remindMessage.setRemindId(labExecutiveInfo.getMeasurePersonId()); + remindMessage.setRemindDeptId(labExecutiveInfo.getMeasureDeptId()); + remindMessage.setMessageType(MessageTypeEnum.OVERTIME_MEASURE.getCode()); + //检测人不为空,且检测状态不为待分配消息催办到我的检测 + if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { + remindMessage.setMessageTopic("我的检测"); + } else { + remindMessage.setMessageTopic("部门检测"); + } + CustomerSampleInfo customerSampleInfo = customerSampleMapper.selectById(labExecutiveInfo.getSampleId()); + if (null != customerSampleInfo) { + remindMessage.setMessageTitle(customerSampleInfo.getSampleName() + "样品检测已经超出期限"); + remindMessage.setMessageContent(customerSampleInfo.getSampleNo() + customerSampleInfo.getSampleName()); + remindMessage.setBusinessCode(customerSampleInfo.getSampleNo()); + } + remindMessage.setBusinessId(labExecutiveInfo.getSampleId()); + remindMessage.setRelationBusinessId(labExecutiveInfo.getOrderId()); + AuthUser authUser = ShiroKit.getUser(); + remindMessage.setCreateUser(authUser.getId()); + remindMessage.setCreateUserName(authUser.getName()); + return remindMessage; + } + private Integer getAlreadyCertificateNum(DeviceDispatchVO dispatchVO, Long measureDeptId) { Long aLong = certificateReportMapper.selectCount(getCertificateReportWrapper(dispatchVO, measureDeptId)); return aLong.intValue(); @@ -240,7 +304,7 @@ queryWrapper.eq("sample_id", statusChangeDTO.getSampleId()); if (terminateFlag) { //若是终止,需要对应待分发、检测中、检测完三个状态的变更 - queryWrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE)); } BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); @@ -291,7 +355,7 @@ return false; } - private boolean beforeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + private boolean incomeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { if (statusChangeDTO.getStatus().equals(TO_INCOME)) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("order_id", statusChangeDTO.getOrderId()); @@ -311,4 +375,11 @@ return true; } + private void completeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + if (statusChangeDTO.getStatus().equals(COMPLETE)) { + this.updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.MEASURE_COMPLETE); + } + } + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index f9747dd..9fa94f8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -76,7 +76,8 @@ */ @Override @Transactional - public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) { + public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) throws Exception{ + DictCodeUtils.validDictCode(customerSampleInfo); initSample(customerSampleInfo); int addFlag = this.baseMapper.insert(customerSampleInfo); if (addFlag > 0) { @@ -164,6 +165,8 @@ } + + @Override public Page samplesByOderId(Page page, Long orderId, String sampleNo, String sampleName) { return this.baseMapper.samplesByOderId(page, orderId, sampleNo, sampleName); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java index f6e1f8a..8277712 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.service.customer.CustomerService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import liquibase.pro.packaged.E; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -66,7 +67,8 @@ @Override @Transactional - public ReturnDTO addCustomer(CustomerInfo customerInfo) { + public ReturnDTO addCustomer(CustomerInfo customerInfo) throws Exception { + DictCodeUtils.validDictCode(customerInfo); initCustomerInfo(customerInfo); int addFlag = this.baseMapper.insert(customerInfo); Boolean userAddFlag = userInfoListCreator(customerInfo.getCustomerUserList(), customerInfo.getId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java index 485287a..47c5adc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java @@ -135,7 +135,7 @@ approvalLog.setDeptName(dept.getSimpleName()); } } else if (Objects.isNull(approvalLog.getFinishTime())) { - approvalLog.setApprovalStatus(ApprovalStatusEnum.IN_APPROVED); + approvalLog.setApprovalStatus("审批中"); } else if (!Objects.isNull(approvalLog.getFinishTime())) { approvalLog.setApprovalStatus("审批完成");//可能是通过/拒绝/驳回,审批意见中可见 } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 164c53a..5e59e2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -20,19 +21,25 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.enums.*; +import com.casic.missiles.enums.business.CertificatePrintStatusEnum; import com.casic.missiles.enums.business.MonitorCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApplyFromIdEnum; import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.Impl.customer.CustomerSampleServiceImpl; import com.casic.missiles.service.business.IBusinessCertificateReportService; import com.casic.missiles.service.business.IBusinessOriginalRecordService; +import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -73,6 +80,8 @@ private RuntimeService runtimeService; @Resource private IBaseExportService iBaseExportService; + @Resource + private CustomerSampleServiceImpl sampleService; /** * 保存证书报告信息 @@ -85,7 +94,7 @@ initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) - return ReturnUtil.success(); + return ReturnUtil.success(certificateReport.getId()); throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @@ -135,10 +144,12 @@ */ @Override public BusinessCertificateReport certificateReportDetail(Long id) { - BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); +// BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + BusinessCertificateReport certificateReport = this.baseMapper.detailById(id); if (certificateReport.getOriginalRecordId() != null) { try { certificateReport.setBusinessOriginalRecord(originalRecordService.originalDetail(certificateReport.getOriginalRecordId())); + certificateReport.setCertificateReportTypeName(dictService.getDictNameByCode(MeterDictEnum.CERTIFICATION_CLASS,certificateReport.getCertificateReportType())); } catch (Exception e) { e.printStackTrace(); } @@ -166,6 +177,7 @@ certificateReport.setId(request.getId()); certificateReport.setApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 certificateReport.setProcessId(processInstance.getId()); + certificateReport.setSubmitDate(DateUtil.formatDateTime(new Date())); int row = this.baseMapper.updateById(certificateReport); if (row <= 0) { throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getCode(), BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getMessage()); @@ -173,6 +185,7 @@ return ReturnUtil.success(); } + /** * 审批状态列表查询 * @@ -233,6 +246,78 @@ } } + /** + * 审批通过后 更新样品有效期 + * + * @param id + * @return + */ + @Override + public boolean updateCertificateReportState(Long id) { + + BusinessCertificateReport certificateReport = new BusinessCertificateReport(); + certificateReport.setId(id); + //审批状态为通过 + certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); + certificateReport.setUpdateTime(DateUtil.formatDateTime(new Date())); + int row = this.baseMapper.updateById(certificateReport); + //更新样品有效期 + BusinessCertificateReport certificateReport1 = this.baseMapper.selectById(id); + if (certificateReport1.getSampleId() != null) { + CustomerSampleInfo sampleInfo = sampleService.getById(certificateReport1.getSampleId()); + if (sampleInfo != null) { + sampleInfo.setValidDeadline(certificateReport1.getExpirationDate()); + boolean rs = sampleService.updateById(sampleInfo); + if (row > 0 & rs) return true; + } + } + return row > 0 ? true : false; + } + + + + /** + * 客户、样品详情列表 + */ + @Override + public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); + for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { + if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { + DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); + } + } + return certificateResponsePage; + } + + @Override + public Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateMonitorResponsePage = this.baseMapper.certificateMonitorsById(page, customerSampleIdRequest); + for (CertificateMonitorResponse certificateMonitorResponse : certificateMonitorResponsePage.getRecords()) { + if (!StringUtils.isEmpty(certificateMonitorResponse.getCertificationType())) { + DictCodeUtils.convertDictMultiCodeToName(certificateMonitorResponse); + } + //设置证书状态 + certificateMonitorResponse.setCertificateStatus(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + CertificatePrintStatusEnum.FINISHED : CertificatePrintStatusEnum.UNFINISHED); + //设置完成时间 + certificateMonitorResponse.setFinishedTime(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + certificateMonitorResponse.getFinishedTime() : ""); + + //设置退回次数 + List rejectBusinessKey = baseApprovalService.getFailedRejectList(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL); + + rejectBusinessKey.forEach(obj -> { + if (obj.equals(certificateMonitorResponse.getCertificationId().toString())) { + certificateMonitorResponse.setReturns(certificateMonitorResponse.getReturns() + 1); + } + }); + } + return certificateMonitorResponsePage; + } + private List handleApprovalStatus(Page page, CertificateReportApprovalRequest request) { List approvalList = new ArrayList<>(); List businessKeys = new ArrayList<>(); @@ -312,21 +397,6 @@ return approvalList; } - /** - * 客户、样品详情列表 - */ - @Override - public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { - Page page = PageFactory.defaultPage(); - Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); - for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { - if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { - DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); - } - } - return certificateResponsePage; - } - private List handleAllApprovalListResponse(List approvalList, List allApproveList) { Map taskMap = new HashMap<>(); allApproveList.forEach(allApprove -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 955cc7a..5b23762 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -159,6 +159,10 @@ if(!CollectionUtils.isEmpty(initListResponses)){ return initListResponses; } + + if(StringUtils.isEmpty(handOutInitListRequest.getMeasureContent())){ + return new ArrayList<>(); + } //根据样品的检定项目去关键字匹配实验室能力信息 String[] split = handOutInitListRequest.getMeasureContent().split(","); List list = Arrays.asList(split); @@ -212,10 +216,12 @@ public Page deptLabExecutiveListPage(Page page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception{ //本级部门主管可见本部门的检测 //根据用户id查询,用户角色中TIPS为director即为主管,取用户的部门id - AuthUser user = ShiroKit.getUser(); - Assert.isFalse(Objects.isNull(user), () -> { - throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); - }); +// AuthUser user = ShiroKit.getUser(); +// Assert.isFalse(Objects.isNull(user), () -> { +// throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); +// }); + AuthUser user = new AuthUser(); + user.setId(1634091003794550786l); Map resultMap = selectDirectDept(user); if(CollectionUtils.isEmpty(resultMap) || Objects.isNull(resultMap.get("deptId"))){ return new Page<>(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 1d63554..ab5978d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -53,7 +53,7 @@ */ @Service @AllArgsConstructor -public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService,PrefixCodeEnum, OrderStatusEnum,SampleStatusEnum, MeasureTypeEnum { +public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService, PrefixCodeEnum, OrderStatusEnum, SampleStatusEnum, MeasureTypeEnum { private final BusinessOrderListReponseMapper orderListResponseMapper; private final IBaseExportService iBaseExportService; @@ -107,7 +107,7 @@ * 2、对样品进行是否在库的判断,如果不存在则入库, 入库操作完成,进行委托书样品关系的绑定 */ @Override - public ReturnDTO updateOrder(BusinessOrder businessOrder) { + public ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception { if (CollectionUtils.isEmpty(businessOrder.getCustomerSampleInfoList())) { return ReturnUtil.failed("样品列表不能为空"); } @@ -141,7 +141,7 @@ */ @Override @Transactional - public ReturnDTO addOrder(BusinessOrder businessOrder) { + public ReturnDTO addOrder(BusinessOrder businessOrder) throws Exception { initOrderInfo(businessOrder); int addFlag = this.baseMapper.insert(businessOrder); boolean sampleAddFlag = true; @@ -209,8 +209,8 @@ int updateFlag = doUpdateStatusById(orderCancelRequest.getId(), status); String dealType = ""; if (status.equals(ALREADY_RECEIVED)) { - dealType = "委托书接收" ; - doUpdateSampleStatus(orderCancelRequest.getId(),TO_RECEIVE); + dealType = "委托书接收"; + doUpdateSampleStatus(orderCancelRequest.getId(), TO_RECEIVE); } else { dealType = "委托书退回"; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index c9c1902..8e41658 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.HandOutLabExecutiveDTO; @@ -15,16 +17,25 @@ import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; import com.casic.missiles.enums.*; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.business.MeasureStatusEnum; import com.casic.missiles.enums.business.MeasureTypeEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.workbench.MessageTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; +import com.casic.missiles.mapper.customer.CustomerSampleMapper; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.business.*; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.model.workbench.WorkbenchRemindMessage; import com.casic.missiles.service.business.IBusinessDispatchService; +import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.docx4j.wml.R; +import org.springframework.data.redis.connection.Message; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -43,8 +54,11 @@ @Slf4j @AllArgsConstructor public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService, SampleStatusEnum, CurrentSegmentEnum, MeasureTypeEnum { - private final BusinessOrderSampleRelationMapper orderSampleRelationMapper; + + private WorkbenchRemindMessageMapper remindMessageMapper; + + private CustomerSampleMapper customerSampleMapper; private final BusinessCertificateReportMapper certificateReportMapper; private final BusinessLabExecutiveInfoMapper labExecutiveInfoMapper; private final IBaseExportService iBaseExportService; @@ -134,9 +148,10 @@ @Override @Transactional public ReturnDTO statusChange(DeviceStatusChangeDTO deviceStatusChangeDTO) { - boolean beforeEventFlag = beforeStatusChange(deviceStatusChangeDTO); + boolean incomeStatusFlag = incomeStatusChange(deviceStatusChangeDTO); + completeStatusChange(deviceStatusChangeDTO); Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, false); - if (updateFlag > 0 && beforeEventFlag) { + if (updateFlag > 0 && incomeStatusFlag) { return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -150,7 +165,7 @@ public ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO) { Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, true); //实验室状态数据的更新 - updateLabExecutiveInfo(deviceStatusChangeDTO); + updateLabExecutiveInfo(deviceStatusChangeDTO, MeasureStatusEnum.TERMINATED); if (updateFlag > 0) { return ReturnUtil.success(); } @@ -182,29 +197,78 @@ } } - private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO, String measureStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); -// queryWrapper.ne("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or() + .eq("sample_status", IN_MEASURE)); BusinessLabExecutiveInfo businessLabExecutiveInfo = new BusinessLabExecutiveInfo(); -// businessLabExecutiveInfo.setMeasureStatus(); + businessLabExecutiveInfo.setMeasureStatus(measureStatus); businessLabExecutiveInfo.setRemark(deviceStatusChangeDTO.getReason()); labExecutiveInfoMapper.update(businessLabExecutiveInfo, queryWrapper); } - /** - * 消息催办 - */ + @Override - public ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO) { - int deleteFlag = this.baseMapper.deleteById(deviceStatusChangeDTO.getOrderId()); - if (deleteFlag > 0) { - return ReturnUtil.success(); + public ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO) { + BusinessLabExecutiveInfo labExecutiveInfo = getLabExecutiveInfo(deviceStatusChangeDTO); + if (labExecutiveInfo != null) { + WorkbenchRemindMessage remindMessage = initWorkbenchRemindMessage(labExecutiveInfo); + int remindMessageAddFlag = remindMessageMapper.insert(remindMessage); + if (remindMessageAddFlag > 0) { + return ReturnUtil.success(); + } } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + private BusinessLabExecutiveInfo getLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); + queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(QueryWrapper -> QueryWrapper.eq("measure_status", MeasureStatusEnum.TO_ALLOCATE) + .or().eq("measure_status", MeasureStatusEnum.TO_MEASURE) + .or().eq("measure_status", MeasureStatusEnum.IN_MEASURE)); + List businessLabExecutiveInfo = labExecutiveInfoMapper.selectList(queryWrapper); + return businessLabExecutiveInfo.isEmpty() ? null : businessLabExecutiveInfo.get(0); + } + + /** + * 消息催办 + * 1、待办人为当前实验室工作人员, + * 2、业务主键id业务主键将要跳转的页面id + * 3、当前工作人员id的或部门的id + * 4、创建人为当前催办人 + * 5、消息类型为超出检定时间催办提醒 + * 6、消息主题为代办人或者待办部门 + * 7、消息标题待办提醒,内容为样品 + */ + public WorkbenchRemindMessage initWorkbenchRemindMessage(BusinessLabExecutiveInfo labExecutiveInfo) { + WorkbenchRemindMessage remindMessage = new WorkbenchRemindMessage(); + remindMessage.setRemindId(labExecutiveInfo.getMeasurePersonId()); + remindMessage.setRemindDeptId(labExecutiveInfo.getMeasureDeptId()); + remindMessage.setMessageType(MessageTypeEnum.OVERTIME_MEASURE.getCode()); + //检测人不为空,且检测状态不为待分配消息催办到我的检测 + if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { + remindMessage.setMessageTopic("我的检测"); + } else { + remindMessage.setMessageTopic("部门检测"); + } + CustomerSampleInfo customerSampleInfo = customerSampleMapper.selectById(labExecutiveInfo.getSampleId()); + if (null != customerSampleInfo) { + remindMessage.setMessageTitle(customerSampleInfo.getSampleName() + "样品检测已经超出期限"); + remindMessage.setMessageContent(customerSampleInfo.getSampleNo() + customerSampleInfo.getSampleName()); + remindMessage.setBusinessCode(customerSampleInfo.getSampleNo()); + } + remindMessage.setBusinessId(labExecutiveInfo.getSampleId()); + remindMessage.setRelationBusinessId(labExecutiveInfo.getOrderId()); + AuthUser authUser = ShiroKit.getUser(); + remindMessage.setCreateUser(authUser.getId()); + remindMessage.setCreateUserName(authUser.getName()); + return remindMessage; + } + private Integer getAlreadyCertificateNum(DeviceDispatchVO dispatchVO, Long measureDeptId) { Long aLong = certificateReportMapper.selectCount(getCertificateReportWrapper(dispatchVO, measureDeptId)); return aLong.intValue(); @@ -240,7 +304,7 @@ queryWrapper.eq("sample_id", statusChangeDTO.getSampleId()); if (terminateFlag) { //若是终止,需要对应待分发、检测中、检测完三个状态的变更 - queryWrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE)); } BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); @@ -291,7 +355,7 @@ return false; } - private boolean beforeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + private boolean incomeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { if (statusChangeDTO.getStatus().equals(TO_INCOME)) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("order_id", statusChangeDTO.getOrderId()); @@ -311,4 +375,11 @@ return true; } + private void completeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + if (statusChangeDTO.getStatus().equals(COMPLETE)) { + this.updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.MEASURE_COMPLETE); + } + } + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index f9747dd..9fa94f8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -76,7 +76,8 @@ */ @Override @Transactional - public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) { + public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) throws Exception{ + DictCodeUtils.validDictCode(customerSampleInfo); initSample(customerSampleInfo); int addFlag = this.baseMapper.insert(customerSampleInfo); if (addFlag > 0) { @@ -164,6 +165,8 @@ } + + @Override public Page samplesByOderId(Page page, Long orderId, String sampleNo, String sampleName) { return this.baseMapper.samplesByOderId(page, orderId, sampleNo, sampleName); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java index f6e1f8a..8277712 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.service.customer.CustomerService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import liquibase.pro.packaged.E; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -66,7 +67,8 @@ @Override @Transactional - public ReturnDTO addCustomer(CustomerInfo customerInfo) { + public ReturnDTO addCustomer(CustomerInfo customerInfo) throws Exception { + DictCodeUtils.validDictCode(customerInfo); initCustomerInfo(customerInfo); int addFlag = this.baseMapper.insert(customerInfo); Boolean userAddFlag = userInfoListCreator(customerInfo.getCustomerUserList(), customerInfo.getId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java index 485287a..47c5adc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java @@ -135,7 +135,7 @@ approvalLog.setDeptName(dept.getSimpleName()); } } else if (Objects.isNull(approvalLog.getFinishTime())) { - approvalLog.setApprovalStatus(ApprovalStatusEnum.IN_APPROVED); + approvalLog.setApprovalStatus("审批中"); } else if (!Objects.isNull(approvalLog.getFinishTime())) { approvalLog.setApprovalStatus("审批完成");//可能是通过/拒绝/驳回,审批意见中可见 } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java index 3bc7d81..53c2c51 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java @@ -1,14 +1,19 @@ package com.casic.missiles.service.Impl.system; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.system.SignAddRequest; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.system.SystemSignMapper; import com.casic.missiles.mapper.system.SystemSignUserRelationMapper; import com.casic.missiles.model.system.SystemSign; @@ -125,6 +130,15 @@ return ReturnUtil.failed("删除失败"); } + @Override + public List usableSign() { + AuthUser user = ShiroKit.getUser(); + Assert.isFalse(Objects.isNull(user), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + return signMapper.selectUsableSignList(user.getId()); + } + private List getUserRelations(List userIdList, Long signId) { List bsRelations = new ArrayList<>(); userIdList.forEach(id -> { 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 164c53a..5e59e2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -20,19 +21,25 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.enums.*; +import com.casic.missiles.enums.business.CertificatePrintStatusEnum; import com.casic.missiles.enums.business.MonitorCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApplyFromIdEnum; import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.Impl.customer.CustomerSampleServiceImpl; import com.casic.missiles.service.business.IBusinessCertificateReportService; import com.casic.missiles.service.business.IBusinessOriginalRecordService; +import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -73,6 +80,8 @@ private RuntimeService runtimeService; @Resource private IBaseExportService iBaseExportService; + @Resource + private CustomerSampleServiceImpl sampleService; /** * 保存证书报告信息 @@ -85,7 +94,7 @@ initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) - return ReturnUtil.success(); + return ReturnUtil.success(certificateReport.getId()); throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @@ -135,10 +144,12 @@ */ @Override public BusinessCertificateReport certificateReportDetail(Long id) { - BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); +// BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + BusinessCertificateReport certificateReport = this.baseMapper.detailById(id); if (certificateReport.getOriginalRecordId() != null) { try { certificateReport.setBusinessOriginalRecord(originalRecordService.originalDetail(certificateReport.getOriginalRecordId())); + certificateReport.setCertificateReportTypeName(dictService.getDictNameByCode(MeterDictEnum.CERTIFICATION_CLASS,certificateReport.getCertificateReportType())); } catch (Exception e) { e.printStackTrace(); } @@ -166,6 +177,7 @@ certificateReport.setId(request.getId()); certificateReport.setApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 certificateReport.setProcessId(processInstance.getId()); + certificateReport.setSubmitDate(DateUtil.formatDateTime(new Date())); int row = this.baseMapper.updateById(certificateReport); if (row <= 0) { throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getCode(), BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getMessage()); @@ -173,6 +185,7 @@ return ReturnUtil.success(); } + /** * 审批状态列表查询 * @@ -233,6 +246,78 @@ } } + /** + * 审批通过后 更新样品有效期 + * + * @param id + * @return + */ + @Override + public boolean updateCertificateReportState(Long id) { + + BusinessCertificateReport certificateReport = new BusinessCertificateReport(); + certificateReport.setId(id); + //审批状态为通过 + certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); + certificateReport.setUpdateTime(DateUtil.formatDateTime(new Date())); + int row = this.baseMapper.updateById(certificateReport); + //更新样品有效期 + BusinessCertificateReport certificateReport1 = this.baseMapper.selectById(id); + if (certificateReport1.getSampleId() != null) { + CustomerSampleInfo sampleInfo = sampleService.getById(certificateReport1.getSampleId()); + if (sampleInfo != null) { + sampleInfo.setValidDeadline(certificateReport1.getExpirationDate()); + boolean rs = sampleService.updateById(sampleInfo); + if (row > 0 & rs) return true; + } + } + return row > 0 ? true : false; + } + + + + /** + * 客户、样品详情列表 + */ + @Override + public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); + for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { + if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { + DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); + } + } + return certificateResponsePage; + } + + @Override + public Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateMonitorResponsePage = this.baseMapper.certificateMonitorsById(page, customerSampleIdRequest); + for (CertificateMonitorResponse certificateMonitorResponse : certificateMonitorResponsePage.getRecords()) { + if (!StringUtils.isEmpty(certificateMonitorResponse.getCertificationType())) { + DictCodeUtils.convertDictMultiCodeToName(certificateMonitorResponse); + } + //设置证书状态 + certificateMonitorResponse.setCertificateStatus(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + CertificatePrintStatusEnum.FINISHED : CertificatePrintStatusEnum.UNFINISHED); + //设置完成时间 + certificateMonitorResponse.setFinishedTime(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + certificateMonitorResponse.getFinishedTime() : ""); + + //设置退回次数 + List rejectBusinessKey = baseApprovalService.getFailedRejectList(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL); + + rejectBusinessKey.forEach(obj -> { + if (obj.equals(certificateMonitorResponse.getCertificationId().toString())) { + certificateMonitorResponse.setReturns(certificateMonitorResponse.getReturns() + 1); + } + }); + } + return certificateMonitorResponsePage; + } + private List handleApprovalStatus(Page page, CertificateReportApprovalRequest request) { List approvalList = new ArrayList<>(); List businessKeys = new ArrayList<>(); @@ -312,21 +397,6 @@ return approvalList; } - /** - * 客户、样品详情列表 - */ - @Override - public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { - Page page = PageFactory.defaultPage(); - Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); - for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { - if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { - DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); - } - } - return certificateResponsePage; - } - private List handleAllApprovalListResponse(List approvalList, List allApproveList) { Map taskMap = new HashMap<>(); allApproveList.forEach(allApprove -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 955cc7a..5b23762 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -159,6 +159,10 @@ if(!CollectionUtils.isEmpty(initListResponses)){ return initListResponses; } + + if(StringUtils.isEmpty(handOutInitListRequest.getMeasureContent())){ + return new ArrayList<>(); + } //根据样品的检定项目去关键字匹配实验室能力信息 String[] split = handOutInitListRequest.getMeasureContent().split(","); List list = Arrays.asList(split); @@ -212,10 +216,12 @@ public Page deptLabExecutiveListPage(Page page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception{ //本级部门主管可见本部门的检测 //根据用户id查询,用户角色中TIPS为director即为主管,取用户的部门id - AuthUser user = ShiroKit.getUser(); - Assert.isFalse(Objects.isNull(user), () -> { - throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); - }); +// AuthUser user = ShiroKit.getUser(); +// Assert.isFalse(Objects.isNull(user), () -> { +// throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); +// }); + AuthUser user = new AuthUser(); + user.setId(1634091003794550786l); Map resultMap = selectDirectDept(user); if(CollectionUtils.isEmpty(resultMap) || Objects.isNull(resultMap.get("deptId"))){ return new Page<>(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 1d63554..ab5978d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -53,7 +53,7 @@ */ @Service @AllArgsConstructor -public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService,PrefixCodeEnum, OrderStatusEnum,SampleStatusEnum, MeasureTypeEnum { +public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService, PrefixCodeEnum, OrderStatusEnum, SampleStatusEnum, MeasureTypeEnum { private final BusinessOrderListReponseMapper orderListResponseMapper; private final IBaseExportService iBaseExportService; @@ -107,7 +107,7 @@ * 2、对样品进行是否在库的判断,如果不存在则入库, 入库操作完成,进行委托书样品关系的绑定 */ @Override - public ReturnDTO updateOrder(BusinessOrder businessOrder) { + public ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception { if (CollectionUtils.isEmpty(businessOrder.getCustomerSampleInfoList())) { return ReturnUtil.failed("样品列表不能为空"); } @@ -141,7 +141,7 @@ */ @Override @Transactional - public ReturnDTO addOrder(BusinessOrder businessOrder) { + public ReturnDTO addOrder(BusinessOrder businessOrder) throws Exception { initOrderInfo(businessOrder); int addFlag = this.baseMapper.insert(businessOrder); boolean sampleAddFlag = true; @@ -209,8 +209,8 @@ int updateFlag = doUpdateStatusById(orderCancelRequest.getId(), status); String dealType = ""; if (status.equals(ALREADY_RECEIVED)) { - dealType = "委托书接收" ; - doUpdateSampleStatus(orderCancelRequest.getId(),TO_RECEIVE); + dealType = "委托书接收"; + doUpdateSampleStatus(orderCancelRequest.getId(), TO_RECEIVE); } else { dealType = "委托书退回"; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index c9c1902..8e41658 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.HandOutLabExecutiveDTO; @@ -15,16 +17,25 @@ import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; import com.casic.missiles.enums.*; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.business.MeasureStatusEnum; import com.casic.missiles.enums.business.MeasureTypeEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.workbench.MessageTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; +import com.casic.missiles.mapper.customer.CustomerSampleMapper; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.business.*; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.model.workbench.WorkbenchRemindMessage; import com.casic.missiles.service.business.IBusinessDispatchService; +import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.docx4j.wml.R; +import org.springframework.data.redis.connection.Message; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -43,8 +54,11 @@ @Slf4j @AllArgsConstructor public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService, SampleStatusEnum, CurrentSegmentEnum, MeasureTypeEnum { - private final BusinessOrderSampleRelationMapper orderSampleRelationMapper; + + private WorkbenchRemindMessageMapper remindMessageMapper; + + private CustomerSampleMapper customerSampleMapper; private final BusinessCertificateReportMapper certificateReportMapper; private final BusinessLabExecutiveInfoMapper labExecutiveInfoMapper; private final IBaseExportService iBaseExportService; @@ -134,9 +148,10 @@ @Override @Transactional public ReturnDTO statusChange(DeviceStatusChangeDTO deviceStatusChangeDTO) { - boolean beforeEventFlag = beforeStatusChange(deviceStatusChangeDTO); + boolean incomeStatusFlag = incomeStatusChange(deviceStatusChangeDTO); + completeStatusChange(deviceStatusChangeDTO); Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, false); - if (updateFlag > 0 && beforeEventFlag) { + if (updateFlag > 0 && incomeStatusFlag) { return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -150,7 +165,7 @@ public ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO) { Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, true); //实验室状态数据的更新 - updateLabExecutiveInfo(deviceStatusChangeDTO); + updateLabExecutiveInfo(deviceStatusChangeDTO, MeasureStatusEnum.TERMINATED); if (updateFlag > 0) { return ReturnUtil.success(); } @@ -182,29 +197,78 @@ } } - private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO, String measureStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); -// queryWrapper.ne("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or() + .eq("sample_status", IN_MEASURE)); BusinessLabExecutiveInfo businessLabExecutiveInfo = new BusinessLabExecutiveInfo(); -// businessLabExecutiveInfo.setMeasureStatus(); + businessLabExecutiveInfo.setMeasureStatus(measureStatus); businessLabExecutiveInfo.setRemark(deviceStatusChangeDTO.getReason()); labExecutiveInfoMapper.update(businessLabExecutiveInfo, queryWrapper); } - /** - * 消息催办 - */ + @Override - public ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO) { - int deleteFlag = this.baseMapper.deleteById(deviceStatusChangeDTO.getOrderId()); - if (deleteFlag > 0) { - return ReturnUtil.success(); + public ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO) { + BusinessLabExecutiveInfo labExecutiveInfo = getLabExecutiveInfo(deviceStatusChangeDTO); + if (labExecutiveInfo != null) { + WorkbenchRemindMessage remindMessage = initWorkbenchRemindMessage(labExecutiveInfo); + int remindMessageAddFlag = remindMessageMapper.insert(remindMessage); + if (remindMessageAddFlag > 0) { + return ReturnUtil.success(); + } } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + private BusinessLabExecutiveInfo getLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); + queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(QueryWrapper -> QueryWrapper.eq("measure_status", MeasureStatusEnum.TO_ALLOCATE) + .or().eq("measure_status", MeasureStatusEnum.TO_MEASURE) + .or().eq("measure_status", MeasureStatusEnum.IN_MEASURE)); + List businessLabExecutiveInfo = labExecutiveInfoMapper.selectList(queryWrapper); + return businessLabExecutiveInfo.isEmpty() ? null : businessLabExecutiveInfo.get(0); + } + + /** + * 消息催办 + * 1、待办人为当前实验室工作人员, + * 2、业务主键id业务主键将要跳转的页面id + * 3、当前工作人员id的或部门的id + * 4、创建人为当前催办人 + * 5、消息类型为超出检定时间催办提醒 + * 6、消息主题为代办人或者待办部门 + * 7、消息标题待办提醒,内容为样品 + */ + public WorkbenchRemindMessage initWorkbenchRemindMessage(BusinessLabExecutiveInfo labExecutiveInfo) { + WorkbenchRemindMessage remindMessage = new WorkbenchRemindMessage(); + remindMessage.setRemindId(labExecutiveInfo.getMeasurePersonId()); + remindMessage.setRemindDeptId(labExecutiveInfo.getMeasureDeptId()); + remindMessage.setMessageType(MessageTypeEnum.OVERTIME_MEASURE.getCode()); + //检测人不为空,且检测状态不为待分配消息催办到我的检测 + if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { + remindMessage.setMessageTopic("我的检测"); + } else { + remindMessage.setMessageTopic("部门检测"); + } + CustomerSampleInfo customerSampleInfo = customerSampleMapper.selectById(labExecutiveInfo.getSampleId()); + if (null != customerSampleInfo) { + remindMessage.setMessageTitle(customerSampleInfo.getSampleName() + "样品检测已经超出期限"); + remindMessage.setMessageContent(customerSampleInfo.getSampleNo() + customerSampleInfo.getSampleName()); + remindMessage.setBusinessCode(customerSampleInfo.getSampleNo()); + } + remindMessage.setBusinessId(labExecutiveInfo.getSampleId()); + remindMessage.setRelationBusinessId(labExecutiveInfo.getOrderId()); + AuthUser authUser = ShiroKit.getUser(); + remindMessage.setCreateUser(authUser.getId()); + remindMessage.setCreateUserName(authUser.getName()); + return remindMessage; + } + private Integer getAlreadyCertificateNum(DeviceDispatchVO dispatchVO, Long measureDeptId) { Long aLong = certificateReportMapper.selectCount(getCertificateReportWrapper(dispatchVO, measureDeptId)); return aLong.intValue(); @@ -240,7 +304,7 @@ queryWrapper.eq("sample_id", statusChangeDTO.getSampleId()); if (terminateFlag) { //若是终止,需要对应待分发、检测中、检测完三个状态的变更 - queryWrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE)); } BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); @@ -291,7 +355,7 @@ return false; } - private boolean beforeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + private boolean incomeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { if (statusChangeDTO.getStatus().equals(TO_INCOME)) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("order_id", statusChangeDTO.getOrderId()); @@ -311,4 +375,11 @@ return true; } + private void completeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + if (statusChangeDTO.getStatus().equals(COMPLETE)) { + this.updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.MEASURE_COMPLETE); + } + } + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index f9747dd..9fa94f8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -76,7 +76,8 @@ */ @Override @Transactional - public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) { + public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) throws Exception{ + DictCodeUtils.validDictCode(customerSampleInfo); initSample(customerSampleInfo); int addFlag = this.baseMapper.insert(customerSampleInfo); if (addFlag > 0) { @@ -164,6 +165,8 @@ } + + @Override public Page samplesByOderId(Page page, Long orderId, String sampleNo, String sampleName) { return this.baseMapper.samplesByOderId(page, orderId, sampleNo, sampleName); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java index f6e1f8a..8277712 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.service.customer.CustomerService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import liquibase.pro.packaged.E; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -66,7 +67,8 @@ @Override @Transactional - public ReturnDTO addCustomer(CustomerInfo customerInfo) { + public ReturnDTO addCustomer(CustomerInfo customerInfo) throws Exception { + DictCodeUtils.validDictCode(customerInfo); initCustomerInfo(customerInfo); int addFlag = this.baseMapper.insert(customerInfo); Boolean userAddFlag = userInfoListCreator(customerInfo.getCustomerUserList(), customerInfo.getId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java index 485287a..47c5adc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java @@ -135,7 +135,7 @@ approvalLog.setDeptName(dept.getSimpleName()); } } else if (Objects.isNull(approvalLog.getFinishTime())) { - approvalLog.setApprovalStatus(ApprovalStatusEnum.IN_APPROVED); + approvalLog.setApprovalStatus("审批中"); } else if (!Objects.isNull(approvalLog.getFinishTime())) { approvalLog.setApprovalStatus("审批完成");//可能是通过/拒绝/驳回,审批意见中可见 } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java index 3bc7d81..53c2c51 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java @@ -1,14 +1,19 @@ package com.casic.missiles.service.Impl.system; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.system.SignAddRequest; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.system.SystemSignMapper; import com.casic.missiles.mapper.system.SystemSignUserRelationMapper; import com.casic.missiles.model.system.SystemSign; @@ -125,6 +130,15 @@ return ReturnUtil.failed("删除失败"); } + @Override + public List usableSign() { + AuthUser user = ShiroKit.getUser(); + Assert.isFalse(Objects.isNull(user), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + return signMapper.selectUsableSignList(user.getId()); + } + private List getUserRelations(List userIdList, Long signId) { List bsRelations = new ArrayList<>(); userIdList.forEach(id -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java index 8e91c42..81cb155 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -42,6 +43,9 @@ void originExport(CertificateReportApprovalRequest request, HttpServletResponse response); - Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; + boolean updateCertificateReportState(Long id); + Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; + + Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 164c53a..5e59e2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -20,19 +21,25 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.enums.*; +import com.casic.missiles.enums.business.CertificatePrintStatusEnum; import com.casic.missiles.enums.business.MonitorCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApplyFromIdEnum; import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.Impl.customer.CustomerSampleServiceImpl; import com.casic.missiles.service.business.IBusinessCertificateReportService; import com.casic.missiles.service.business.IBusinessOriginalRecordService; +import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -73,6 +80,8 @@ private RuntimeService runtimeService; @Resource private IBaseExportService iBaseExportService; + @Resource + private CustomerSampleServiceImpl sampleService; /** * 保存证书报告信息 @@ -85,7 +94,7 @@ initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) - return ReturnUtil.success(); + return ReturnUtil.success(certificateReport.getId()); throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @@ -135,10 +144,12 @@ */ @Override public BusinessCertificateReport certificateReportDetail(Long id) { - BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); +// BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + BusinessCertificateReport certificateReport = this.baseMapper.detailById(id); if (certificateReport.getOriginalRecordId() != null) { try { certificateReport.setBusinessOriginalRecord(originalRecordService.originalDetail(certificateReport.getOriginalRecordId())); + certificateReport.setCertificateReportTypeName(dictService.getDictNameByCode(MeterDictEnum.CERTIFICATION_CLASS,certificateReport.getCertificateReportType())); } catch (Exception e) { e.printStackTrace(); } @@ -166,6 +177,7 @@ certificateReport.setId(request.getId()); certificateReport.setApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 certificateReport.setProcessId(processInstance.getId()); + certificateReport.setSubmitDate(DateUtil.formatDateTime(new Date())); int row = this.baseMapper.updateById(certificateReport); if (row <= 0) { throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getCode(), BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getMessage()); @@ -173,6 +185,7 @@ return ReturnUtil.success(); } + /** * 审批状态列表查询 * @@ -233,6 +246,78 @@ } } + /** + * 审批通过后 更新样品有效期 + * + * @param id + * @return + */ + @Override + public boolean updateCertificateReportState(Long id) { + + BusinessCertificateReport certificateReport = new BusinessCertificateReport(); + certificateReport.setId(id); + //审批状态为通过 + certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); + certificateReport.setUpdateTime(DateUtil.formatDateTime(new Date())); + int row = this.baseMapper.updateById(certificateReport); + //更新样品有效期 + BusinessCertificateReport certificateReport1 = this.baseMapper.selectById(id); + if (certificateReport1.getSampleId() != null) { + CustomerSampleInfo sampleInfo = sampleService.getById(certificateReport1.getSampleId()); + if (sampleInfo != null) { + sampleInfo.setValidDeadline(certificateReport1.getExpirationDate()); + boolean rs = sampleService.updateById(sampleInfo); + if (row > 0 & rs) return true; + } + } + return row > 0 ? true : false; + } + + + + /** + * 客户、样品详情列表 + */ + @Override + public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); + for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { + if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { + DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); + } + } + return certificateResponsePage; + } + + @Override + public Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateMonitorResponsePage = this.baseMapper.certificateMonitorsById(page, customerSampleIdRequest); + for (CertificateMonitorResponse certificateMonitorResponse : certificateMonitorResponsePage.getRecords()) { + if (!StringUtils.isEmpty(certificateMonitorResponse.getCertificationType())) { + DictCodeUtils.convertDictMultiCodeToName(certificateMonitorResponse); + } + //设置证书状态 + certificateMonitorResponse.setCertificateStatus(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + CertificatePrintStatusEnum.FINISHED : CertificatePrintStatusEnum.UNFINISHED); + //设置完成时间 + certificateMonitorResponse.setFinishedTime(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + certificateMonitorResponse.getFinishedTime() : ""); + + //设置退回次数 + List rejectBusinessKey = baseApprovalService.getFailedRejectList(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL); + + rejectBusinessKey.forEach(obj -> { + if (obj.equals(certificateMonitorResponse.getCertificationId().toString())) { + certificateMonitorResponse.setReturns(certificateMonitorResponse.getReturns() + 1); + } + }); + } + return certificateMonitorResponsePage; + } + private List handleApprovalStatus(Page page, CertificateReportApprovalRequest request) { List approvalList = new ArrayList<>(); List businessKeys = new ArrayList<>(); @@ -312,21 +397,6 @@ return approvalList; } - /** - * 客户、样品详情列表 - */ - @Override - public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { - Page page = PageFactory.defaultPage(); - Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); - for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { - if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { - DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); - } - } - return certificateResponsePage; - } - private List handleAllApprovalListResponse(List approvalList, List allApproveList) { Map taskMap = new HashMap<>(); allApproveList.forEach(allApprove -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 955cc7a..5b23762 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -159,6 +159,10 @@ if(!CollectionUtils.isEmpty(initListResponses)){ return initListResponses; } + + if(StringUtils.isEmpty(handOutInitListRequest.getMeasureContent())){ + return new ArrayList<>(); + } //根据样品的检定项目去关键字匹配实验室能力信息 String[] split = handOutInitListRequest.getMeasureContent().split(","); List list = Arrays.asList(split); @@ -212,10 +216,12 @@ public Page deptLabExecutiveListPage(Page page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception{ //本级部门主管可见本部门的检测 //根据用户id查询,用户角色中TIPS为director即为主管,取用户的部门id - AuthUser user = ShiroKit.getUser(); - Assert.isFalse(Objects.isNull(user), () -> { - throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); - }); +// AuthUser user = ShiroKit.getUser(); +// Assert.isFalse(Objects.isNull(user), () -> { +// throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); +// }); + AuthUser user = new AuthUser(); + user.setId(1634091003794550786l); Map resultMap = selectDirectDept(user); if(CollectionUtils.isEmpty(resultMap) || Objects.isNull(resultMap.get("deptId"))){ return new Page<>(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 1d63554..ab5978d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -53,7 +53,7 @@ */ @Service @AllArgsConstructor -public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService,PrefixCodeEnum, OrderStatusEnum,SampleStatusEnum, MeasureTypeEnum { +public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService, PrefixCodeEnum, OrderStatusEnum, SampleStatusEnum, MeasureTypeEnum { private final BusinessOrderListReponseMapper orderListResponseMapper; private final IBaseExportService iBaseExportService; @@ -107,7 +107,7 @@ * 2、对样品进行是否在库的判断,如果不存在则入库, 入库操作完成,进行委托书样品关系的绑定 */ @Override - public ReturnDTO updateOrder(BusinessOrder businessOrder) { + public ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception { if (CollectionUtils.isEmpty(businessOrder.getCustomerSampleInfoList())) { return ReturnUtil.failed("样品列表不能为空"); } @@ -141,7 +141,7 @@ */ @Override @Transactional - public ReturnDTO addOrder(BusinessOrder businessOrder) { + public ReturnDTO addOrder(BusinessOrder businessOrder) throws Exception { initOrderInfo(businessOrder); int addFlag = this.baseMapper.insert(businessOrder); boolean sampleAddFlag = true; @@ -209,8 +209,8 @@ int updateFlag = doUpdateStatusById(orderCancelRequest.getId(), status); String dealType = ""; if (status.equals(ALREADY_RECEIVED)) { - dealType = "委托书接收" ; - doUpdateSampleStatus(orderCancelRequest.getId(),TO_RECEIVE); + dealType = "委托书接收"; + doUpdateSampleStatus(orderCancelRequest.getId(), TO_RECEIVE); } else { dealType = "委托书退回"; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index c9c1902..8e41658 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.HandOutLabExecutiveDTO; @@ -15,16 +17,25 @@ import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; import com.casic.missiles.enums.*; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.business.MeasureStatusEnum; import com.casic.missiles.enums.business.MeasureTypeEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.workbench.MessageTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; +import com.casic.missiles.mapper.customer.CustomerSampleMapper; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.business.*; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.model.workbench.WorkbenchRemindMessage; import com.casic.missiles.service.business.IBusinessDispatchService; +import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.docx4j.wml.R; +import org.springframework.data.redis.connection.Message; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -43,8 +54,11 @@ @Slf4j @AllArgsConstructor public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService, SampleStatusEnum, CurrentSegmentEnum, MeasureTypeEnum { - private final BusinessOrderSampleRelationMapper orderSampleRelationMapper; + + private WorkbenchRemindMessageMapper remindMessageMapper; + + private CustomerSampleMapper customerSampleMapper; private final BusinessCertificateReportMapper certificateReportMapper; private final BusinessLabExecutiveInfoMapper labExecutiveInfoMapper; private final IBaseExportService iBaseExportService; @@ -134,9 +148,10 @@ @Override @Transactional public ReturnDTO statusChange(DeviceStatusChangeDTO deviceStatusChangeDTO) { - boolean beforeEventFlag = beforeStatusChange(deviceStatusChangeDTO); + boolean incomeStatusFlag = incomeStatusChange(deviceStatusChangeDTO); + completeStatusChange(deviceStatusChangeDTO); Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, false); - if (updateFlag > 0 && beforeEventFlag) { + if (updateFlag > 0 && incomeStatusFlag) { return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -150,7 +165,7 @@ public ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO) { Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, true); //实验室状态数据的更新 - updateLabExecutiveInfo(deviceStatusChangeDTO); + updateLabExecutiveInfo(deviceStatusChangeDTO, MeasureStatusEnum.TERMINATED); if (updateFlag > 0) { return ReturnUtil.success(); } @@ -182,29 +197,78 @@ } } - private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO, String measureStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); -// queryWrapper.ne("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or() + .eq("sample_status", IN_MEASURE)); BusinessLabExecutiveInfo businessLabExecutiveInfo = new BusinessLabExecutiveInfo(); -// businessLabExecutiveInfo.setMeasureStatus(); + businessLabExecutiveInfo.setMeasureStatus(measureStatus); businessLabExecutiveInfo.setRemark(deviceStatusChangeDTO.getReason()); labExecutiveInfoMapper.update(businessLabExecutiveInfo, queryWrapper); } - /** - * 消息催办 - */ + @Override - public ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO) { - int deleteFlag = this.baseMapper.deleteById(deviceStatusChangeDTO.getOrderId()); - if (deleteFlag > 0) { - return ReturnUtil.success(); + public ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO) { + BusinessLabExecutiveInfo labExecutiveInfo = getLabExecutiveInfo(deviceStatusChangeDTO); + if (labExecutiveInfo != null) { + WorkbenchRemindMessage remindMessage = initWorkbenchRemindMessage(labExecutiveInfo); + int remindMessageAddFlag = remindMessageMapper.insert(remindMessage); + if (remindMessageAddFlag > 0) { + return ReturnUtil.success(); + } } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + private BusinessLabExecutiveInfo getLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); + queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(QueryWrapper -> QueryWrapper.eq("measure_status", MeasureStatusEnum.TO_ALLOCATE) + .or().eq("measure_status", MeasureStatusEnum.TO_MEASURE) + .or().eq("measure_status", MeasureStatusEnum.IN_MEASURE)); + List businessLabExecutiveInfo = labExecutiveInfoMapper.selectList(queryWrapper); + return businessLabExecutiveInfo.isEmpty() ? null : businessLabExecutiveInfo.get(0); + } + + /** + * 消息催办 + * 1、待办人为当前实验室工作人员, + * 2、业务主键id业务主键将要跳转的页面id + * 3、当前工作人员id的或部门的id + * 4、创建人为当前催办人 + * 5、消息类型为超出检定时间催办提醒 + * 6、消息主题为代办人或者待办部门 + * 7、消息标题待办提醒,内容为样品 + */ + public WorkbenchRemindMessage initWorkbenchRemindMessage(BusinessLabExecutiveInfo labExecutiveInfo) { + WorkbenchRemindMessage remindMessage = new WorkbenchRemindMessage(); + remindMessage.setRemindId(labExecutiveInfo.getMeasurePersonId()); + remindMessage.setRemindDeptId(labExecutiveInfo.getMeasureDeptId()); + remindMessage.setMessageType(MessageTypeEnum.OVERTIME_MEASURE.getCode()); + //检测人不为空,且检测状态不为待分配消息催办到我的检测 + if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { + remindMessage.setMessageTopic("我的检测"); + } else { + remindMessage.setMessageTopic("部门检测"); + } + CustomerSampleInfo customerSampleInfo = customerSampleMapper.selectById(labExecutiveInfo.getSampleId()); + if (null != customerSampleInfo) { + remindMessage.setMessageTitle(customerSampleInfo.getSampleName() + "样品检测已经超出期限"); + remindMessage.setMessageContent(customerSampleInfo.getSampleNo() + customerSampleInfo.getSampleName()); + remindMessage.setBusinessCode(customerSampleInfo.getSampleNo()); + } + remindMessage.setBusinessId(labExecutiveInfo.getSampleId()); + remindMessage.setRelationBusinessId(labExecutiveInfo.getOrderId()); + AuthUser authUser = ShiroKit.getUser(); + remindMessage.setCreateUser(authUser.getId()); + remindMessage.setCreateUserName(authUser.getName()); + return remindMessage; + } + private Integer getAlreadyCertificateNum(DeviceDispatchVO dispatchVO, Long measureDeptId) { Long aLong = certificateReportMapper.selectCount(getCertificateReportWrapper(dispatchVO, measureDeptId)); return aLong.intValue(); @@ -240,7 +304,7 @@ queryWrapper.eq("sample_id", statusChangeDTO.getSampleId()); if (terminateFlag) { //若是终止,需要对应待分发、检测中、检测完三个状态的变更 - queryWrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE)); } BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); @@ -291,7 +355,7 @@ return false; } - private boolean beforeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + private boolean incomeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { if (statusChangeDTO.getStatus().equals(TO_INCOME)) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("order_id", statusChangeDTO.getOrderId()); @@ -311,4 +375,11 @@ return true; } + private void completeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + if (statusChangeDTO.getStatus().equals(COMPLETE)) { + this.updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.MEASURE_COMPLETE); + } + } + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index f9747dd..9fa94f8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -76,7 +76,8 @@ */ @Override @Transactional - public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) { + public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) throws Exception{ + DictCodeUtils.validDictCode(customerSampleInfo); initSample(customerSampleInfo); int addFlag = this.baseMapper.insert(customerSampleInfo); if (addFlag > 0) { @@ -164,6 +165,8 @@ } + + @Override public Page samplesByOderId(Page page, Long orderId, String sampleNo, String sampleName) { return this.baseMapper.samplesByOderId(page, orderId, sampleNo, sampleName); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java index f6e1f8a..8277712 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.service.customer.CustomerService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import liquibase.pro.packaged.E; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -66,7 +67,8 @@ @Override @Transactional - public ReturnDTO addCustomer(CustomerInfo customerInfo) { + public ReturnDTO addCustomer(CustomerInfo customerInfo) throws Exception { + DictCodeUtils.validDictCode(customerInfo); initCustomerInfo(customerInfo); int addFlag = this.baseMapper.insert(customerInfo); Boolean userAddFlag = userInfoListCreator(customerInfo.getCustomerUserList(), customerInfo.getId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java index 485287a..47c5adc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java @@ -135,7 +135,7 @@ approvalLog.setDeptName(dept.getSimpleName()); } } else if (Objects.isNull(approvalLog.getFinishTime())) { - approvalLog.setApprovalStatus(ApprovalStatusEnum.IN_APPROVED); + approvalLog.setApprovalStatus("审批中"); } else if (!Objects.isNull(approvalLog.getFinishTime())) { approvalLog.setApprovalStatus("审批完成");//可能是通过/拒绝/驳回,审批意见中可见 } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java index 3bc7d81..53c2c51 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java @@ -1,14 +1,19 @@ package com.casic.missiles.service.Impl.system; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.system.SignAddRequest; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.system.SystemSignMapper; import com.casic.missiles.mapper.system.SystemSignUserRelationMapper; import com.casic.missiles.model.system.SystemSign; @@ -125,6 +130,15 @@ return ReturnUtil.failed("删除失败"); } + @Override + public List usableSign() { + AuthUser user = ShiroKit.getUser(); + Assert.isFalse(Objects.isNull(user), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + return signMapper.selectUsableSignList(user.getId()); + } + private List getUserRelations(List userIdList, Long signId) { List bsRelations = new ArrayList<>(); userIdList.forEach(id -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java index 8e91c42..81cb155 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -42,6 +43,9 @@ void originExport(CertificateReportApprovalRequest request, HttpServletResponse response); - Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; + boolean updateCertificateReportState(Long id); + Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; + + Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java index 0c2aeb2..cbf2cf5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java @@ -21,5 +21,5 @@ ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO); - ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO); + ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO); } 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 164c53a..5e59e2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -20,19 +21,25 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.enums.*; +import com.casic.missiles.enums.business.CertificatePrintStatusEnum; import com.casic.missiles.enums.business.MonitorCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApplyFromIdEnum; import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.Impl.customer.CustomerSampleServiceImpl; import com.casic.missiles.service.business.IBusinessCertificateReportService; import com.casic.missiles.service.business.IBusinessOriginalRecordService; +import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -73,6 +80,8 @@ private RuntimeService runtimeService; @Resource private IBaseExportService iBaseExportService; + @Resource + private CustomerSampleServiceImpl sampleService; /** * 保存证书报告信息 @@ -85,7 +94,7 @@ initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) - return ReturnUtil.success(); + return ReturnUtil.success(certificateReport.getId()); throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @@ -135,10 +144,12 @@ */ @Override public BusinessCertificateReport certificateReportDetail(Long id) { - BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); +// BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + BusinessCertificateReport certificateReport = this.baseMapper.detailById(id); if (certificateReport.getOriginalRecordId() != null) { try { certificateReport.setBusinessOriginalRecord(originalRecordService.originalDetail(certificateReport.getOriginalRecordId())); + certificateReport.setCertificateReportTypeName(dictService.getDictNameByCode(MeterDictEnum.CERTIFICATION_CLASS,certificateReport.getCertificateReportType())); } catch (Exception e) { e.printStackTrace(); } @@ -166,6 +177,7 @@ certificateReport.setId(request.getId()); certificateReport.setApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 certificateReport.setProcessId(processInstance.getId()); + certificateReport.setSubmitDate(DateUtil.formatDateTime(new Date())); int row = this.baseMapper.updateById(certificateReport); if (row <= 0) { throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getCode(), BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getMessage()); @@ -173,6 +185,7 @@ return ReturnUtil.success(); } + /** * 审批状态列表查询 * @@ -233,6 +246,78 @@ } } + /** + * 审批通过后 更新样品有效期 + * + * @param id + * @return + */ + @Override + public boolean updateCertificateReportState(Long id) { + + BusinessCertificateReport certificateReport = new BusinessCertificateReport(); + certificateReport.setId(id); + //审批状态为通过 + certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); + certificateReport.setUpdateTime(DateUtil.formatDateTime(new Date())); + int row = this.baseMapper.updateById(certificateReport); + //更新样品有效期 + BusinessCertificateReport certificateReport1 = this.baseMapper.selectById(id); + if (certificateReport1.getSampleId() != null) { + CustomerSampleInfo sampleInfo = sampleService.getById(certificateReport1.getSampleId()); + if (sampleInfo != null) { + sampleInfo.setValidDeadline(certificateReport1.getExpirationDate()); + boolean rs = sampleService.updateById(sampleInfo); + if (row > 0 & rs) return true; + } + } + return row > 0 ? true : false; + } + + + + /** + * 客户、样品详情列表 + */ + @Override + public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); + for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { + if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { + DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); + } + } + return certificateResponsePage; + } + + @Override + public Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateMonitorResponsePage = this.baseMapper.certificateMonitorsById(page, customerSampleIdRequest); + for (CertificateMonitorResponse certificateMonitorResponse : certificateMonitorResponsePage.getRecords()) { + if (!StringUtils.isEmpty(certificateMonitorResponse.getCertificationType())) { + DictCodeUtils.convertDictMultiCodeToName(certificateMonitorResponse); + } + //设置证书状态 + certificateMonitorResponse.setCertificateStatus(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + CertificatePrintStatusEnum.FINISHED : CertificatePrintStatusEnum.UNFINISHED); + //设置完成时间 + certificateMonitorResponse.setFinishedTime(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + certificateMonitorResponse.getFinishedTime() : ""); + + //设置退回次数 + List rejectBusinessKey = baseApprovalService.getFailedRejectList(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL); + + rejectBusinessKey.forEach(obj -> { + if (obj.equals(certificateMonitorResponse.getCertificationId().toString())) { + certificateMonitorResponse.setReturns(certificateMonitorResponse.getReturns() + 1); + } + }); + } + return certificateMonitorResponsePage; + } + private List handleApprovalStatus(Page page, CertificateReportApprovalRequest request) { List approvalList = new ArrayList<>(); List businessKeys = new ArrayList<>(); @@ -312,21 +397,6 @@ return approvalList; } - /** - * 客户、样品详情列表 - */ - @Override - public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { - Page page = PageFactory.defaultPage(); - Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); - for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { - if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { - DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); - } - } - return certificateResponsePage; - } - private List handleAllApprovalListResponse(List approvalList, List allApproveList) { Map taskMap = new HashMap<>(); allApproveList.forEach(allApprove -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 955cc7a..5b23762 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -159,6 +159,10 @@ if(!CollectionUtils.isEmpty(initListResponses)){ return initListResponses; } + + if(StringUtils.isEmpty(handOutInitListRequest.getMeasureContent())){ + return new ArrayList<>(); + } //根据样品的检定项目去关键字匹配实验室能力信息 String[] split = handOutInitListRequest.getMeasureContent().split(","); List list = Arrays.asList(split); @@ -212,10 +216,12 @@ public Page deptLabExecutiveListPage(Page page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception{ //本级部门主管可见本部门的检测 //根据用户id查询,用户角色中TIPS为director即为主管,取用户的部门id - AuthUser user = ShiroKit.getUser(); - Assert.isFalse(Objects.isNull(user), () -> { - throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); - }); +// AuthUser user = ShiroKit.getUser(); +// Assert.isFalse(Objects.isNull(user), () -> { +// throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); +// }); + AuthUser user = new AuthUser(); + user.setId(1634091003794550786l); Map resultMap = selectDirectDept(user); if(CollectionUtils.isEmpty(resultMap) || Objects.isNull(resultMap.get("deptId"))){ return new Page<>(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 1d63554..ab5978d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -53,7 +53,7 @@ */ @Service @AllArgsConstructor -public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService,PrefixCodeEnum, OrderStatusEnum,SampleStatusEnum, MeasureTypeEnum { +public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService, PrefixCodeEnum, OrderStatusEnum, SampleStatusEnum, MeasureTypeEnum { private final BusinessOrderListReponseMapper orderListResponseMapper; private final IBaseExportService iBaseExportService; @@ -107,7 +107,7 @@ * 2、对样品进行是否在库的判断,如果不存在则入库, 入库操作完成,进行委托书样品关系的绑定 */ @Override - public ReturnDTO updateOrder(BusinessOrder businessOrder) { + public ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception { if (CollectionUtils.isEmpty(businessOrder.getCustomerSampleInfoList())) { return ReturnUtil.failed("样品列表不能为空"); } @@ -141,7 +141,7 @@ */ @Override @Transactional - public ReturnDTO addOrder(BusinessOrder businessOrder) { + public ReturnDTO addOrder(BusinessOrder businessOrder) throws Exception { initOrderInfo(businessOrder); int addFlag = this.baseMapper.insert(businessOrder); boolean sampleAddFlag = true; @@ -209,8 +209,8 @@ int updateFlag = doUpdateStatusById(orderCancelRequest.getId(), status); String dealType = ""; if (status.equals(ALREADY_RECEIVED)) { - dealType = "委托书接收" ; - doUpdateSampleStatus(orderCancelRequest.getId(),TO_RECEIVE); + dealType = "委托书接收"; + doUpdateSampleStatus(orderCancelRequest.getId(), TO_RECEIVE); } else { dealType = "委托书退回"; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index c9c1902..8e41658 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.HandOutLabExecutiveDTO; @@ -15,16 +17,25 @@ import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; import com.casic.missiles.enums.*; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.business.MeasureStatusEnum; import com.casic.missiles.enums.business.MeasureTypeEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.workbench.MessageTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; +import com.casic.missiles.mapper.customer.CustomerSampleMapper; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.business.*; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.model.workbench.WorkbenchRemindMessage; import com.casic.missiles.service.business.IBusinessDispatchService; +import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.docx4j.wml.R; +import org.springframework.data.redis.connection.Message; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -43,8 +54,11 @@ @Slf4j @AllArgsConstructor public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService, SampleStatusEnum, CurrentSegmentEnum, MeasureTypeEnum { - private final BusinessOrderSampleRelationMapper orderSampleRelationMapper; + + private WorkbenchRemindMessageMapper remindMessageMapper; + + private CustomerSampleMapper customerSampleMapper; private final BusinessCertificateReportMapper certificateReportMapper; private final BusinessLabExecutiveInfoMapper labExecutiveInfoMapper; private final IBaseExportService iBaseExportService; @@ -134,9 +148,10 @@ @Override @Transactional public ReturnDTO statusChange(DeviceStatusChangeDTO deviceStatusChangeDTO) { - boolean beforeEventFlag = beforeStatusChange(deviceStatusChangeDTO); + boolean incomeStatusFlag = incomeStatusChange(deviceStatusChangeDTO); + completeStatusChange(deviceStatusChangeDTO); Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, false); - if (updateFlag > 0 && beforeEventFlag) { + if (updateFlag > 0 && incomeStatusFlag) { return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -150,7 +165,7 @@ public ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO) { Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, true); //实验室状态数据的更新 - updateLabExecutiveInfo(deviceStatusChangeDTO); + updateLabExecutiveInfo(deviceStatusChangeDTO, MeasureStatusEnum.TERMINATED); if (updateFlag > 0) { return ReturnUtil.success(); } @@ -182,29 +197,78 @@ } } - private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO, String measureStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); -// queryWrapper.ne("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or() + .eq("sample_status", IN_MEASURE)); BusinessLabExecutiveInfo businessLabExecutiveInfo = new BusinessLabExecutiveInfo(); -// businessLabExecutiveInfo.setMeasureStatus(); + businessLabExecutiveInfo.setMeasureStatus(measureStatus); businessLabExecutiveInfo.setRemark(deviceStatusChangeDTO.getReason()); labExecutiveInfoMapper.update(businessLabExecutiveInfo, queryWrapper); } - /** - * 消息催办 - */ + @Override - public ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO) { - int deleteFlag = this.baseMapper.deleteById(deviceStatusChangeDTO.getOrderId()); - if (deleteFlag > 0) { - return ReturnUtil.success(); + public ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO) { + BusinessLabExecutiveInfo labExecutiveInfo = getLabExecutiveInfo(deviceStatusChangeDTO); + if (labExecutiveInfo != null) { + WorkbenchRemindMessage remindMessage = initWorkbenchRemindMessage(labExecutiveInfo); + int remindMessageAddFlag = remindMessageMapper.insert(remindMessage); + if (remindMessageAddFlag > 0) { + return ReturnUtil.success(); + } } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + private BusinessLabExecutiveInfo getLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); + queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(QueryWrapper -> QueryWrapper.eq("measure_status", MeasureStatusEnum.TO_ALLOCATE) + .or().eq("measure_status", MeasureStatusEnum.TO_MEASURE) + .or().eq("measure_status", MeasureStatusEnum.IN_MEASURE)); + List businessLabExecutiveInfo = labExecutiveInfoMapper.selectList(queryWrapper); + return businessLabExecutiveInfo.isEmpty() ? null : businessLabExecutiveInfo.get(0); + } + + /** + * 消息催办 + * 1、待办人为当前实验室工作人员, + * 2、业务主键id业务主键将要跳转的页面id + * 3、当前工作人员id的或部门的id + * 4、创建人为当前催办人 + * 5、消息类型为超出检定时间催办提醒 + * 6、消息主题为代办人或者待办部门 + * 7、消息标题待办提醒,内容为样品 + */ + public WorkbenchRemindMessage initWorkbenchRemindMessage(BusinessLabExecutiveInfo labExecutiveInfo) { + WorkbenchRemindMessage remindMessage = new WorkbenchRemindMessage(); + remindMessage.setRemindId(labExecutiveInfo.getMeasurePersonId()); + remindMessage.setRemindDeptId(labExecutiveInfo.getMeasureDeptId()); + remindMessage.setMessageType(MessageTypeEnum.OVERTIME_MEASURE.getCode()); + //检测人不为空,且检测状态不为待分配消息催办到我的检测 + if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { + remindMessage.setMessageTopic("我的检测"); + } else { + remindMessage.setMessageTopic("部门检测"); + } + CustomerSampleInfo customerSampleInfo = customerSampleMapper.selectById(labExecutiveInfo.getSampleId()); + if (null != customerSampleInfo) { + remindMessage.setMessageTitle(customerSampleInfo.getSampleName() + "样品检测已经超出期限"); + remindMessage.setMessageContent(customerSampleInfo.getSampleNo() + customerSampleInfo.getSampleName()); + remindMessage.setBusinessCode(customerSampleInfo.getSampleNo()); + } + remindMessage.setBusinessId(labExecutiveInfo.getSampleId()); + remindMessage.setRelationBusinessId(labExecutiveInfo.getOrderId()); + AuthUser authUser = ShiroKit.getUser(); + remindMessage.setCreateUser(authUser.getId()); + remindMessage.setCreateUserName(authUser.getName()); + return remindMessage; + } + private Integer getAlreadyCertificateNum(DeviceDispatchVO dispatchVO, Long measureDeptId) { Long aLong = certificateReportMapper.selectCount(getCertificateReportWrapper(dispatchVO, measureDeptId)); return aLong.intValue(); @@ -240,7 +304,7 @@ queryWrapper.eq("sample_id", statusChangeDTO.getSampleId()); if (terminateFlag) { //若是终止,需要对应待分发、检测中、检测完三个状态的变更 - queryWrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE)); } BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); @@ -291,7 +355,7 @@ return false; } - private boolean beforeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + private boolean incomeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { if (statusChangeDTO.getStatus().equals(TO_INCOME)) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("order_id", statusChangeDTO.getOrderId()); @@ -311,4 +375,11 @@ return true; } + private void completeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + if (statusChangeDTO.getStatus().equals(COMPLETE)) { + this.updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.MEASURE_COMPLETE); + } + } + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index f9747dd..9fa94f8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -76,7 +76,8 @@ */ @Override @Transactional - public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) { + public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) throws Exception{ + DictCodeUtils.validDictCode(customerSampleInfo); initSample(customerSampleInfo); int addFlag = this.baseMapper.insert(customerSampleInfo); if (addFlag > 0) { @@ -164,6 +165,8 @@ } + + @Override public Page samplesByOderId(Page page, Long orderId, String sampleNo, String sampleName) { return this.baseMapper.samplesByOderId(page, orderId, sampleNo, sampleName); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java index f6e1f8a..8277712 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.service.customer.CustomerService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import liquibase.pro.packaged.E; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -66,7 +67,8 @@ @Override @Transactional - public ReturnDTO addCustomer(CustomerInfo customerInfo) { + public ReturnDTO addCustomer(CustomerInfo customerInfo) throws Exception { + DictCodeUtils.validDictCode(customerInfo); initCustomerInfo(customerInfo); int addFlag = this.baseMapper.insert(customerInfo); Boolean userAddFlag = userInfoListCreator(customerInfo.getCustomerUserList(), customerInfo.getId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java index 485287a..47c5adc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java @@ -135,7 +135,7 @@ approvalLog.setDeptName(dept.getSimpleName()); } } else if (Objects.isNull(approvalLog.getFinishTime())) { - approvalLog.setApprovalStatus(ApprovalStatusEnum.IN_APPROVED); + approvalLog.setApprovalStatus("审批中"); } else if (!Objects.isNull(approvalLog.getFinishTime())) { approvalLog.setApprovalStatus("审批完成");//可能是通过/拒绝/驳回,审批意见中可见 } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java index 3bc7d81..53c2c51 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java @@ -1,14 +1,19 @@ package com.casic.missiles.service.Impl.system; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.system.SignAddRequest; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.system.SystemSignMapper; import com.casic.missiles.mapper.system.SystemSignUserRelationMapper; import com.casic.missiles.model.system.SystemSign; @@ -125,6 +130,15 @@ return ReturnUtil.failed("删除失败"); } + @Override + public List usableSign() { + AuthUser user = ShiroKit.getUser(); + Assert.isFalse(Objects.isNull(user), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + return signMapper.selectUsableSignList(user.getId()); + } + private List getUserRelations(List userIdList, Long signId) { List bsRelations = new ArrayList<>(); userIdList.forEach(id -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java index 8e91c42..81cb155 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -42,6 +43,9 @@ void originExport(CertificateReportApprovalRequest request, HttpServletResponse response); - Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; + boolean updateCertificateReportState(Long id); + Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; + + Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java index 0c2aeb2..cbf2cf5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java @@ -21,5 +21,5 @@ ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO); - ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO); + ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java index dea393f..fb58702 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java @@ -26,9 +26,9 @@ BusinessOrder orderDetail(Long id); - ReturnDTO updateOrder(BusinessOrder businessOrder); + ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception; - ReturnDTO addOrder(BusinessOrder businessOrder); + ReturnDTO addOrder(BusinessOrder businessOrder)throws Exception; void orderExport(OrderListRequest request, HttpServletResponse response); 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 164c53a..5e59e2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -20,19 +21,25 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.enums.*; +import com.casic.missiles.enums.business.CertificatePrintStatusEnum; import com.casic.missiles.enums.business.MonitorCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApplyFromIdEnum; import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.Impl.customer.CustomerSampleServiceImpl; import com.casic.missiles.service.business.IBusinessCertificateReportService; import com.casic.missiles.service.business.IBusinessOriginalRecordService; +import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -73,6 +80,8 @@ private RuntimeService runtimeService; @Resource private IBaseExportService iBaseExportService; + @Resource + private CustomerSampleServiceImpl sampleService; /** * 保存证书报告信息 @@ -85,7 +94,7 @@ initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) - return ReturnUtil.success(); + return ReturnUtil.success(certificateReport.getId()); throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @@ -135,10 +144,12 @@ */ @Override public BusinessCertificateReport certificateReportDetail(Long id) { - BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); +// BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + BusinessCertificateReport certificateReport = this.baseMapper.detailById(id); if (certificateReport.getOriginalRecordId() != null) { try { certificateReport.setBusinessOriginalRecord(originalRecordService.originalDetail(certificateReport.getOriginalRecordId())); + certificateReport.setCertificateReportTypeName(dictService.getDictNameByCode(MeterDictEnum.CERTIFICATION_CLASS,certificateReport.getCertificateReportType())); } catch (Exception e) { e.printStackTrace(); } @@ -166,6 +177,7 @@ certificateReport.setId(request.getId()); certificateReport.setApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 certificateReport.setProcessId(processInstance.getId()); + certificateReport.setSubmitDate(DateUtil.formatDateTime(new Date())); int row = this.baseMapper.updateById(certificateReport); if (row <= 0) { throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getCode(), BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getMessage()); @@ -173,6 +185,7 @@ return ReturnUtil.success(); } + /** * 审批状态列表查询 * @@ -233,6 +246,78 @@ } } + /** + * 审批通过后 更新样品有效期 + * + * @param id + * @return + */ + @Override + public boolean updateCertificateReportState(Long id) { + + BusinessCertificateReport certificateReport = new BusinessCertificateReport(); + certificateReport.setId(id); + //审批状态为通过 + certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); + certificateReport.setUpdateTime(DateUtil.formatDateTime(new Date())); + int row = this.baseMapper.updateById(certificateReport); + //更新样品有效期 + BusinessCertificateReport certificateReport1 = this.baseMapper.selectById(id); + if (certificateReport1.getSampleId() != null) { + CustomerSampleInfo sampleInfo = sampleService.getById(certificateReport1.getSampleId()); + if (sampleInfo != null) { + sampleInfo.setValidDeadline(certificateReport1.getExpirationDate()); + boolean rs = sampleService.updateById(sampleInfo); + if (row > 0 & rs) return true; + } + } + return row > 0 ? true : false; + } + + + + /** + * 客户、样品详情列表 + */ + @Override + public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); + for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { + if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { + DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); + } + } + return certificateResponsePage; + } + + @Override + public Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateMonitorResponsePage = this.baseMapper.certificateMonitorsById(page, customerSampleIdRequest); + for (CertificateMonitorResponse certificateMonitorResponse : certificateMonitorResponsePage.getRecords()) { + if (!StringUtils.isEmpty(certificateMonitorResponse.getCertificationType())) { + DictCodeUtils.convertDictMultiCodeToName(certificateMonitorResponse); + } + //设置证书状态 + certificateMonitorResponse.setCertificateStatus(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + CertificatePrintStatusEnum.FINISHED : CertificatePrintStatusEnum.UNFINISHED); + //设置完成时间 + certificateMonitorResponse.setFinishedTime(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + certificateMonitorResponse.getFinishedTime() : ""); + + //设置退回次数 + List rejectBusinessKey = baseApprovalService.getFailedRejectList(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL); + + rejectBusinessKey.forEach(obj -> { + if (obj.equals(certificateMonitorResponse.getCertificationId().toString())) { + certificateMonitorResponse.setReturns(certificateMonitorResponse.getReturns() + 1); + } + }); + } + return certificateMonitorResponsePage; + } + private List handleApprovalStatus(Page page, CertificateReportApprovalRequest request) { List approvalList = new ArrayList<>(); List businessKeys = new ArrayList<>(); @@ -312,21 +397,6 @@ return approvalList; } - /** - * 客户、样品详情列表 - */ - @Override - public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { - Page page = PageFactory.defaultPage(); - Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); - for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { - if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { - DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); - } - } - return certificateResponsePage; - } - private List handleAllApprovalListResponse(List approvalList, List allApproveList) { Map taskMap = new HashMap<>(); allApproveList.forEach(allApprove -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 955cc7a..5b23762 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -159,6 +159,10 @@ if(!CollectionUtils.isEmpty(initListResponses)){ return initListResponses; } + + if(StringUtils.isEmpty(handOutInitListRequest.getMeasureContent())){ + return new ArrayList<>(); + } //根据样品的检定项目去关键字匹配实验室能力信息 String[] split = handOutInitListRequest.getMeasureContent().split(","); List list = Arrays.asList(split); @@ -212,10 +216,12 @@ public Page deptLabExecutiveListPage(Page page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception{ //本级部门主管可见本部门的检测 //根据用户id查询,用户角色中TIPS为director即为主管,取用户的部门id - AuthUser user = ShiroKit.getUser(); - Assert.isFalse(Objects.isNull(user), () -> { - throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); - }); +// AuthUser user = ShiroKit.getUser(); +// Assert.isFalse(Objects.isNull(user), () -> { +// throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); +// }); + AuthUser user = new AuthUser(); + user.setId(1634091003794550786l); Map resultMap = selectDirectDept(user); if(CollectionUtils.isEmpty(resultMap) || Objects.isNull(resultMap.get("deptId"))){ return new Page<>(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 1d63554..ab5978d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -53,7 +53,7 @@ */ @Service @AllArgsConstructor -public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService,PrefixCodeEnum, OrderStatusEnum,SampleStatusEnum, MeasureTypeEnum { +public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService, PrefixCodeEnum, OrderStatusEnum, SampleStatusEnum, MeasureTypeEnum { private final BusinessOrderListReponseMapper orderListResponseMapper; private final IBaseExportService iBaseExportService; @@ -107,7 +107,7 @@ * 2、对样品进行是否在库的判断,如果不存在则入库, 入库操作完成,进行委托书样品关系的绑定 */ @Override - public ReturnDTO updateOrder(BusinessOrder businessOrder) { + public ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception { if (CollectionUtils.isEmpty(businessOrder.getCustomerSampleInfoList())) { return ReturnUtil.failed("样品列表不能为空"); } @@ -141,7 +141,7 @@ */ @Override @Transactional - public ReturnDTO addOrder(BusinessOrder businessOrder) { + public ReturnDTO addOrder(BusinessOrder businessOrder) throws Exception { initOrderInfo(businessOrder); int addFlag = this.baseMapper.insert(businessOrder); boolean sampleAddFlag = true; @@ -209,8 +209,8 @@ int updateFlag = doUpdateStatusById(orderCancelRequest.getId(), status); String dealType = ""; if (status.equals(ALREADY_RECEIVED)) { - dealType = "委托书接收" ; - doUpdateSampleStatus(orderCancelRequest.getId(),TO_RECEIVE); + dealType = "委托书接收"; + doUpdateSampleStatus(orderCancelRequest.getId(), TO_RECEIVE); } else { dealType = "委托书退回"; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index c9c1902..8e41658 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.HandOutLabExecutiveDTO; @@ -15,16 +17,25 @@ import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; import com.casic.missiles.enums.*; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.business.MeasureStatusEnum; import com.casic.missiles.enums.business.MeasureTypeEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.workbench.MessageTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; +import com.casic.missiles.mapper.customer.CustomerSampleMapper; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.business.*; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.model.workbench.WorkbenchRemindMessage; import com.casic.missiles.service.business.IBusinessDispatchService; +import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.docx4j.wml.R; +import org.springframework.data.redis.connection.Message; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -43,8 +54,11 @@ @Slf4j @AllArgsConstructor public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService, SampleStatusEnum, CurrentSegmentEnum, MeasureTypeEnum { - private final BusinessOrderSampleRelationMapper orderSampleRelationMapper; + + private WorkbenchRemindMessageMapper remindMessageMapper; + + private CustomerSampleMapper customerSampleMapper; private final BusinessCertificateReportMapper certificateReportMapper; private final BusinessLabExecutiveInfoMapper labExecutiveInfoMapper; private final IBaseExportService iBaseExportService; @@ -134,9 +148,10 @@ @Override @Transactional public ReturnDTO statusChange(DeviceStatusChangeDTO deviceStatusChangeDTO) { - boolean beforeEventFlag = beforeStatusChange(deviceStatusChangeDTO); + boolean incomeStatusFlag = incomeStatusChange(deviceStatusChangeDTO); + completeStatusChange(deviceStatusChangeDTO); Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, false); - if (updateFlag > 0 && beforeEventFlag) { + if (updateFlag > 0 && incomeStatusFlag) { return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -150,7 +165,7 @@ public ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO) { Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, true); //实验室状态数据的更新 - updateLabExecutiveInfo(deviceStatusChangeDTO); + updateLabExecutiveInfo(deviceStatusChangeDTO, MeasureStatusEnum.TERMINATED); if (updateFlag > 0) { return ReturnUtil.success(); } @@ -182,29 +197,78 @@ } } - private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO, String measureStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); -// queryWrapper.ne("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or() + .eq("sample_status", IN_MEASURE)); BusinessLabExecutiveInfo businessLabExecutiveInfo = new BusinessLabExecutiveInfo(); -// businessLabExecutiveInfo.setMeasureStatus(); + businessLabExecutiveInfo.setMeasureStatus(measureStatus); businessLabExecutiveInfo.setRemark(deviceStatusChangeDTO.getReason()); labExecutiveInfoMapper.update(businessLabExecutiveInfo, queryWrapper); } - /** - * 消息催办 - */ + @Override - public ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO) { - int deleteFlag = this.baseMapper.deleteById(deviceStatusChangeDTO.getOrderId()); - if (deleteFlag > 0) { - return ReturnUtil.success(); + public ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO) { + BusinessLabExecutiveInfo labExecutiveInfo = getLabExecutiveInfo(deviceStatusChangeDTO); + if (labExecutiveInfo != null) { + WorkbenchRemindMessage remindMessage = initWorkbenchRemindMessage(labExecutiveInfo); + int remindMessageAddFlag = remindMessageMapper.insert(remindMessage); + if (remindMessageAddFlag > 0) { + return ReturnUtil.success(); + } } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + private BusinessLabExecutiveInfo getLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); + queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(QueryWrapper -> QueryWrapper.eq("measure_status", MeasureStatusEnum.TO_ALLOCATE) + .or().eq("measure_status", MeasureStatusEnum.TO_MEASURE) + .or().eq("measure_status", MeasureStatusEnum.IN_MEASURE)); + List businessLabExecutiveInfo = labExecutiveInfoMapper.selectList(queryWrapper); + return businessLabExecutiveInfo.isEmpty() ? null : businessLabExecutiveInfo.get(0); + } + + /** + * 消息催办 + * 1、待办人为当前实验室工作人员, + * 2、业务主键id业务主键将要跳转的页面id + * 3、当前工作人员id的或部门的id + * 4、创建人为当前催办人 + * 5、消息类型为超出检定时间催办提醒 + * 6、消息主题为代办人或者待办部门 + * 7、消息标题待办提醒,内容为样品 + */ + public WorkbenchRemindMessage initWorkbenchRemindMessage(BusinessLabExecutiveInfo labExecutiveInfo) { + WorkbenchRemindMessage remindMessage = new WorkbenchRemindMessage(); + remindMessage.setRemindId(labExecutiveInfo.getMeasurePersonId()); + remindMessage.setRemindDeptId(labExecutiveInfo.getMeasureDeptId()); + remindMessage.setMessageType(MessageTypeEnum.OVERTIME_MEASURE.getCode()); + //检测人不为空,且检测状态不为待分配消息催办到我的检测 + if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { + remindMessage.setMessageTopic("我的检测"); + } else { + remindMessage.setMessageTopic("部门检测"); + } + CustomerSampleInfo customerSampleInfo = customerSampleMapper.selectById(labExecutiveInfo.getSampleId()); + if (null != customerSampleInfo) { + remindMessage.setMessageTitle(customerSampleInfo.getSampleName() + "样品检测已经超出期限"); + remindMessage.setMessageContent(customerSampleInfo.getSampleNo() + customerSampleInfo.getSampleName()); + remindMessage.setBusinessCode(customerSampleInfo.getSampleNo()); + } + remindMessage.setBusinessId(labExecutiveInfo.getSampleId()); + remindMessage.setRelationBusinessId(labExecutiveInfo.getOrderId()); + AuthUser authUser = ShiroKit.getUser(); + remindMessage.setCreateUser(authUser.getId()); + remindMessage.setCreateUserName(authUser.getName()); + return remindMessage; + } + private Integer getAlreadyCertificateNum(DeviceDispatchVO dispatchVO, Long measureDeptId) { Long aLong = certificateReportMapper.selectCount(getCertificateReportWrapper(dispatchVO, measureDeptId)); return aLong.intValue(); @@ -240,7 +304,7 @@ queryWrapper.eq("sample_id", statusChangeDTO.getSampleId()); if (terminateFlag) { //若是终止,需要对应待分发、检测中、检测完三个状态的变更 - queryWrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE)); } BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); @@ -291,7 +355,7 @@ return false; } - private boolean beforeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + private boolean incomeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { if (statusChangeDTO.getStatus().equals(TO_INCOME)) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("order_id", statusChangeDTO.getOrderId()); @@ -311,4 +375,11 @@ return true; } + private void completeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + if (statusChangeDTO.getStatus().equals(COMPLETE)) { + this.updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.MEASURE_COMPLETE); + } + } + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index f9747dd..9fa94f8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -76,7 +76,8 @@ */ @Override @Transactional - public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) { + public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) throws Exception{ + DictCodeUtils.validDictCode(customerSampleInfo); initSample(customerSampleInfo); int addFlag = this.baseMapper.insert(customerSampleInfo); if (addFlag > 0) { @@ -164,6 +165,8 @@ } + + @Override public Page samplesByOderId(Page page, Long orderId, String sampleNo, String sampleName) { return this.baseMapper.samplesByOderId(page, orderId, sampleNo, sampleName); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java index f6e1f8a..8277712 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.service.customer.CustomerService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import liquibase.pro.packaged.E; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -66,7 +67,8 @@ @Override @Transactional - public ReturnDTO addCustomer(CustomerInfo customerInfo) { + public ReturnDTO addCustomer(CustomerInfo customerInfo) throws Exception { + DictCodeUtils.validDictCode(customerInfo); initCustomerInfo(customerInfo); int addFlag = this.baseMapper.insert(customerInfo); Boolean userAddFlag = userInfoListCreator(customerInfo.getCustomerUserList(), customerInfo.getId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java index 485287a..47c5adc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java @@ -135,7 +135,7 @@ approvalLog.setDeptName(dept.getSimpleName()); } } else if (Objects.isNull(approvalLog.getFinishTime())) { - approvalLog.setApprovalStatus(ApprovalStatusEnum.IN_APPROVED); + approvalLog.setApprovalStatus("审批中"); } else if (!Objects.isNull(approvalLog.getFinishTime())) { approvalLog.setApprovalStatus("审批完成");//可能是通过/拒绝/驳回,审批意见中可见 } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java index 3bc7d81..53c2c51 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java @@ -1,14 +1,19 @@ package com.casic.missiles.service.Impl.system; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.system.SignAddRequest; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.system.SystemSignMapper; import com.casic.missiles.mapper.system.SystemSignUserRelationMapper; import com.casic.missiles.model.system.SystemSign; @@ -125,6 +130,15 @@ return ReturnUtil.failed("删除失败"); } + @Override + public List usableSign() { + AuthUser user = ShiroKit.getUser(); + Assert.isFalse(Objects.isNull(user), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + return signMapper.selectUsableSignList(user.getId()); + } + private List getUserRelations(List userIdList, Long signId) { List bsRelations = new ArrayList<>(); userIdList.forEach(id -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java index 8e91c42..81cb155 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -42,6 +43,9 @@ void originExport(CertificateReportApprovalRequest request, HttpServletResponse response); - Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; + boolean updateCertificateReportState(Long id); + Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; + + Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java index 0c2aeb2..cbf2cf5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java @@ -21,5 +21,5 @@ ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO); - ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO); + ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java index dea393f..fb58702 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java @@ -26,9 +26,9 @@ BusinessOrder orderDetail(Long id); - ReturnDTO updateOrder(BusinessOrder businessOrder); + ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception; - ReturnDTO addOrder(BusinessOrder businessOrder); + ReturnDTO addOrder(BusinessOrder businessOrder)throws Exception; void orderExport(OrderListRequest request, HttpServletResponse response); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerSampleService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerSampleService.java index fd4be1d..d5d00ee 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerSampleService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerSampleService.java @@ -18,7 +18,7 @@ Page listPage(Page page, CustomerSampleListRequest request) throws Exception; - ReturnDTO addSample(CustomerSampleInfo customerSampleInfo); + ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) throws Exception; ReturnDTO updateSample(CustomerSampleInfo customerSampleInfo); 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 164c53a..5e59e2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -20,19 +21,25 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.enums.*; +import com.casic.missiles.enums.business.CertificatePrintStatusEnum; import com.casic.missiles.enums.business.MonitorCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApplyFromIdEnum; import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.Impl.customer.CustomerSampleServiceImpl; import com.casic.missiles.service.business.IBusinessCertificateReportService; import com.casic.missiles.service.business.IBusinessOriginalRecordService; +import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -73,6 +80,8 @@ private RuntimeService runtimeService; @Resource private IBaseExportService iBaseExportService; + @Resource + private CustomerSampleServiceImpl sampleService; /** * 保存证书报告信息 @@ -85,7 +94,7 @@ initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) - return ReturnUtil.success(); + return ReturnUtil.success(certificateReport.getId()); throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @@ -135,10 +144,12 @@ */ @Override public BusinessCertificateReport certificateReportDetail(Long id) { - BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); +// BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + BusinessCertificateReport certificateReport = this.baseMapper.detailById(id); if (certificateReport.getOriginalRecordId() != null) { try { certificateReport.setBusinessOriginalRecord(originalRecordService.originalDetail(certificateReport.getOriginalRecordId())); + certificateReport.setCertificateReportTypeName(dictService.getDictNameByCode(MeterDictEnum.CERTIFICATION_CLASS,certificateReport.getCertificateReportType())); } catch (Exception e) { e.printStackTrace(); } @@ -166,6 +177,7 @@ certificateReport.setId(request.getId()); certificateReport.setApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 certificateReport.setProcessId(processInstance.getId()); + certificateReport.setSubmitDate(DateUtil.formatDateTime(new Date())); int row = this.baseMapper.updateById(certificateReport); if (row <= 0) { throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getCode(), BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getMessage()); @@ -173,6 +185,7 @@ return ReturnUtil.success(); } + /** * 审批状态列表查询 * @@ -233,6 +246,78 @@ } } + /** + * 审批通过后 更新样品有效期 + * + * @param id + * @return + */ + @Override + public boolean updateCertificateReportState(Long id) { + + BusinessCertificateReport certificateReport = new BusinessCertificateReport(); + certificateReport.setId(id); + //审批状态为通过 + certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); + certificateReport.setUpdateTime(DateUtil.formatDateTime(new Date())); + int row = this.baseMapper.updateById(certificateReport); + //更新样品有效期 + BusinessCertificateReport certificateReport1 = this.baseMapper.selectById(id); + if (certificateReport1.getSampleId() != null) { + CustomerSampleInfo sampleInfo = sampleService.getById(certificateReport1.getSampleId()); + if (sampleInfo != null) { + sampleInfo.setValidDeadline(certificateReport1.getExpirationDate()); + boolean rs = sampleService.updateById(sampleInfo); + if (row > 0 & rs) return true; + } + } + return row > 0 ? true : false; + } + + + + /** + * 客户、样品详情列表 + */ + @Override + public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); + for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { + if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { + DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); + } + } + return certificateResponsePage; + } + + @Override + public Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateMonitorResponsePage = this.baseMapper.certificateMonitorsById(page, customerSampleIdRequest); + for (CertificateMonitorResponse certificateMonitorResponse : certificateMonitorResponsePage.getRecords()) { + if (!StringUtils.isEmpty(certificateMonitorResponse.getCertificationType())) { + DictCodeUtils.convertDictMultiCodeToName(certificateMonitorResponse); + } + //设置证书状态 + certificateMonitorResponse.setCertificateStatus(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + CertificatePrintStatusEnum.FINISHED : CertificatePrintStatusEnum.UNFINISHED); + //设置完成时间 + certificateMonitorResponse.setFinishedTime(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + certificateMonitorResponse.getFinishedTime() : ""); + + //设置退回次数 + List rejectBusinessKey = baseApprovalService.getFailedRejectList(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL); + + rejectBusinessKey.forEach(obj -> { + if (obj.equals(certificateMonitorResponse.getCertificationId().toString())) { + certificateMonitorResponse.setReturns(certificateMonitorResponse.getReturns() + 1); + } + }); + } + return certificateMonitorResponsePage; + } + private List handleApprovalStatus(Page page, CertificateReportApprovalRequest request) { List approvalList = new ArrayList<>(); List businessKeys = new ArrayList<>(); @@ -312,21 +397,6 @@ return approvalList; } - /** - * 客户、样品详情列表 - */ - @Override - public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { - Page page = PageFactory.defaultPage(); - Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); - for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { - if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { - DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); - } - } - return certificateResponsePage; - } - private List handleAllApprovalListResponse(List approvalList, List allApproveList) { Map taskMap = new HashMap<>(); allApproveList.forEach(allApprove -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 955cc7a..5b23762 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -159,6 +159,10 @@ if(!CollectionUtils.isEmpty(initListResponses)){ return initListResponses; } + + if(StringUtils.isEmpty(handOutInitListRequest.getMeasureContent())){ + return new ArrayList<>(); + } //根据样品的检定项目去关键字匹配实验室能力信息 String[] split = handOutInitListRequest.getMeasureContent().split(","); List list = Arrays.asList(split); @@ -212,10 +216,12 @@ public Page deptLabExecutiveListPage(Page page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception{ //本级部门主管可见本部门的检测 //根据用户id查询,用户角色中TIPS为director即为主管,取用户的部门id - AuthUser user = ShiroKit.getUser(); - Assert.isFalse(Objects.isNull(user), () -> { - throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); - }); +// AuthUser user = ShiroKit.getUser(); +// Assert.isFalse(Objects.isNull(user), () -> { +// throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); +// }); + AuthUser user = new AuthUser(); + user.setId(1634091003794550786l); Map resultMap = selectDirectDept(user); if(CollectionUtils.isEmpty(resultMap) || Objects.isNull(resultMap.get("deptId"))){ return new Page<>(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 1d63554..ab5978d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -53,7 +53,7 @@ */ @Service @AllArgsConstructor -public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService,PrefixCodeEnum, OrderStatusEnum,SampleStatusEnum, MeasureTypeEnum { +public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService, PrefixCodeEnum, OrderStatusEnum, SampleStatusEnum, MeasureTypeEnum { private final BusinessOrderListReponseMapper orderListResponseMapper; private final IBaseExportService iBaseExportService; @@ -107,7 +107,7 @@ * 2、对样品进行是否在库的判断,如果不存在则入库, 入库操作完成,进行委托书样品关系的绑定 */ @Override - public ReturnDTO updateOrder(BusinessOrder businessOrder) { + public ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception { if (CollectionUtils.isEmpty(businessOrder.getCustomerSampleInfoList())) { return ReturnUtil.failed("样品列表不能为空"); } @@ -141,7 +141,7 @@ */ @Override @Transactional - public ReturnDTO addOrder(BusinessOrder businessOrder) { + public ReturnDTO addOrder(BusinessOrder businessOrder) throws Exception { initOrderInfo(businessOrder); int addFlag = this.baseMapper.insert(businessOrder); boolean sampleAddFlag = true; @@ -209,8 +209,8 @@ int updateFlag = doUpdateStatusById(orderCancelRequest.getId(), status); String dealType = ""; if (status.equals(ALREADY_RECEIVED)) { - dealType = "委托书接收" ; - doUpdateSampleStatus(orderCancelRequest.getId(),TO_RECEIVE); + dealType = "委托书接收"; + doUpdateSampleStatus(orderCancelRequest.getId(), TO_RECEIVE); } else { dealType = "委托书退回"; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index c9c1902..8e41658 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.HandOutLabExecutiveDTO; @@ -15,16 +17,25 @@ import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; import com.casic.missiles.enums.*; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.business.MeasureStatusEnum; import com.casic.missiles.enums.business.MeasureTypeEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.workbench.MessageTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; +import com.casic.missiles.mapper.customer.CustomerSampleMapper; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.business.*; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.model.workbench.WorkbenchRemindMessage; import com.casic.missiles.service.business.IBusinessDispatchService; +import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.docx4j.wml.R; +import org.springframework.data.redis.connection.Message; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -43,8 +54,11 @@ @Slf4j @AllArgsConstructor public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService, SampleStatusEnum, CurrentSegmentEnum, MeasureTypeEnum { - private final BusinessOrderSampleRelationMapper orderSampleRelationMapper; + + private WorkbenchRemindMessageMapper remindMessageMapper; + + private CustomerSampleMapper customerSampleMapper; private final BusinessCertificateReportMapper certificateReportMapper; private final BusinessLabExecutiveInfoMapper labExecutiveInfoMapper; private final IBaseExportService iBaseExportService; @@ -134,9 +148,10 @@ @Override @Transactional public ReturnDTO statusChange(DeviceStatusChangeDTO deviceStatusChangeDTO) { - boolean beforeEventFlag = beforeStatusChange(deviceStatusChangeDTO); + boolean incomeStatusFlag = incomeStatusChange(deviceStatusChangeDTO); + completeStatusChange(deviceStatusChangeDTO); Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, false); - if (updateFlag > 0 && beforeEventFlag) { + if (updateFlag > 0 && incomeStatusFlag) { return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -150,7 +165,7 @@ public ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO) { Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, true); //实验室状态数据的更新 - updateLabExecutiveInfo(deviceStatusChangeDTO); + updateLabExecutiveInfo(deviceStatusChangeDTO, MeasureStatusEnum.TERMINATED); if (updateFlag > 0) { return ReturnUtil.success(); } @@ -182,29 +197,78 @@ } } - private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO, String measureStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); -// queryWrapper.ne("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or() + .eq("sample_status", IN_MEASURE)); BusinessLabExecutiveInfo businessLabExecutiveInfo = new BusinessLabExecutiveInfo(); -// businessLabExecutiveInfo.setMeasureStatus(); + businessLabExecutiveInfo.setMeasureStatus(measureStatus); businessLabExecutiveInfo.setRemark(deviceStatusChangeDTO.getReason()); labExecutiveInfoMapper.update(businessLabExecutiveInfo, queryWrapper); } - /** - * 消息催办 - */ + @Override - public ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO) { - int deleteFlag = this.baseMapper.deleteById(deviceStatusChangeDTO.getOrderId()); - if (deleteFlag > 0) { - return ReturnUtil.success(); + public ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO) { + BusinessLabExecutiveInfo labExecutiveInfo = getLabExecutiveInfo(deviceStatusChangeDTO); + if (labExecutiveInfo != null) { + WorkbenchRemindMessage remindMessage = initWorkbenchRemindMessage(labExecutiveInfo); + int remindMessageAddFlag = remindMessageMapper.insert(remindMessage); + if (remindMessageAddFlag > 0) { + return ReturnUtil.success(); + } } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + private BusinessLabExecutiveInfo getLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); + queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(QueryWrapper -> QueryWrapper.eq("measure_status", MeasureStatusEnum.TO_ALLOCATE) + .or().eq("measure_status", MeasureStatusEnum.TO_MEASURE) + .or().eq("measure_status", MeasureStatusEnum.IN_MEASURE)); + List businessLabExecutiveInfo = labExecutiveInfoMapper.selectList(queryWrapper); + return businessLabExecutiveInfo.isEmpty() ? null : businessLabExecutiveInfo.get(0); + } + + /** + * 消息催办 + * 1、待办人为当前实验室工作人员, + * 2、业务主键id业务主键将要跳转的页面id + * 3、当前工作人员id的或部门的id + * 4、创建人为当前催办人 + * 5、消息类型为超出检定时间催办提醒 + * 6、消息主题为代办人或者待办部门 + * 7、消息标题待办提醒,内容为样品 + */ + public WorkbenchRemindMessage initWorkbenchRemindMessage(BusinessLabExecutiveInfo labExecutiveInfo) { + WorkbenchRemindMessage remindMessage = new WorkbenchRemindMessage(); + remindMessage.setRemindId(labExecutiveInfo.getMeasurePersonId()); + remindMessage.setRemindDeptId(labExecutiveInfo.getMeasureDeptId()); + remindMessage.setMessageType(MessageTypeEnum.OVERTIME_MEASURE.getCode()); + //检测人不为空,且检测状态不为待分配消息催办到我的检测 + if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { + remindMessage.setMessageTopic("我的检测"); + } else { + remindMessage.setMessageTopic("部门检测"); + } + CustomerSampleInfo customerSampleInfo = customerSampleMapper.selectById(labExecutiveInfo.getSampleId()); + if (null != customerSampleInfo) { + remindMessage.setMessageTitle(customerSampleInfo.getSampleName() + "样品检测已经超出期限"); + remindMessage.setMessageContent(customerSampleInfo.getSampleNo() + customerSampleInfo.getSampleName()); + remindMessage.setBusinessCode(customerSampleInfo.getSampleNo()); + } + remindMessage.setBusinessId(labExecutiveInfo.getSampleId()); + remindMessage.setRelationBusinessId(labExecutiveInfo.getOrderId()); + AuthUser authUser = ShiroKit.getUser(); + remindMessage.setCreateUser(authUser.getId()); + remindMessage.setCreateUserName(authUser.getName()); + return remindMessage; + } + private Integer getAlreadyCertificateNum(DeviceDispatchVO dispatchVO, Long measureDeptId) { Long aLong = certificateReportMapper.selectCount(getCertificateReportWrapper(dispatchVO, measureDeptId)); return aLong.intValue(); @@ -240,7 +304,7 @@ queryWrapper.eq("sample_id", statusChangeDTO.getSampleId()); if (terminateFlag) { //若是终止,需要对应待分发、检测中、检测完三个状态的变更 - queryWrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE)); } BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); @@ -291,7 +355,7 @@ return false; } - private boolean beforeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + private boolean incomeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { if (statusChangeDTO.getStatus().equals(TO_INCOME)) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("order_id", statusChangeDTO.getOrderId()); @@ -311,4 +375,11 @@ return true; } + private void completeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + if (statusChangeDTO.getStatus().equals(COMPLETE)) { + this.updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.MEASURE_COMPLETE); + } + } + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index f9747dd..9fa94f8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -76,7 +76,8 @@ */ @Override @Transactional - public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) { + public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) throws Exception{ + DictCodeUtils.validDictCode(customerSampleInfo); initSample(customerSampleInfo); int addFlag = this.baseMapper.insert(customerSampleInfo); if (addFlag > 0) { @@ -164,6 +165,8 @@ } + + @Override public Page samplesByOderId(Page page, Long orderId, String sampleNo, String sampleName) { return this.baseMapper.samplesByOderId(page, orderId, sampleNo, sampleName); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java index f6e1f8a..8277712 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.service.customer.CustomerService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import liquibase.pro.packaged.E; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -66,7 +67,8 @@ @Override @Transactional - public ReturnDTO addCustomer(CustomerInfo customerInfo) { + public ReturnDTO addCustomer(CustomerInfo customerInfo) throws Exception { + DictCodeUtils.validDictCode(customerInfo); initCustomerInfo(customerInfo); int addFlag = this.baseMapper.insert(customerInfo); Boolean userAddFlag = userInfoListCreator(customerInfo.getCustomerUserList(), customerInfo.getId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java index 485287a..47c5adc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java @@ -135,7 +135,7 @@ approvalLog.setDeptName(dept.getSimpleName()); } } else if (Objects.isNull(approvalLog.getFinishTime())) { - approvalLog.setApprovalStatus(ApprovalStatusEnum.IN_APPROVED); + approvalLog.setApprovalStatus("审批中"); } else if (!Objects.isNull(approvalLog.getFinishTime())) { approvalLog.setApprovalStatus("审批完成");//可能是通过/拒绝/驳回,审批意见中可见 } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java index 3bc7d81..53c2c51 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java @@ -1,14 +1,19 @@ package com.casic.missiles.service.Impl.system; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.system.SignAddRequest; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.system.SystemSignMapper; import com.casic.missiles.mapper.system.SystemSignUserRelationMapper; import com.casic.missiles.model.system.SystemSign; @@ -125,6 +130,15 @@ return ReturnUtil.failed("删除失败"); } + @Override + public List usableSign() { + AuthUser user = ShiroKit.getUser(); + Assert.isFalse(Objects.isNull(user), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + return signMapper.selectUsableSignList(user.getId()); + } + private List getUserRelations(List userIdList, Long signId) { List bsRelations = new ArrayList<>(); userIdList.forEach(id -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java index 8e91c42..81cb155 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -42,6 +43,9 @@ void originExport(CertificateReportApprovalRequest request, HttpServletResponse response); - Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; + boolean updateCertificateReportState(Long id); + Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; + + Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java index 0c2aeb2..cbf2cf5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java @@ -21,5 +21,5 @@ ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO); - ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO); + ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java index dea393f..fb58702 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java @@ -26,9 +26,9 @@ BusinessOrder orderDetail(Long id); - ReturnDTO updateOrder(BusinessOrder businessOrder); + ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception; - ReturnDTO addOrder(BusinessOrder businessOrder); + ReturnDTO addOrder(BusinessOrder businessOrder)throws Exception; void orderExport(OrderListRequest request, HttpServletResponse response); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerSampleService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerSampleService.java index fd4be1d..d5d00ee 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerSampleService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerSampleService.java @@ -18,7 +18,7 @@ Page listPage(Page page, CustomerSampleListRequest request) throws Exception; - ReturnDTO addSample(CustomerSampleInfo customerSampleInfo); + ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) throws Exception; ReturnDTO updateSample(CustomerSampleInfo customerSampleInfo); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerService.java index 3bcb80c..bef03f0 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerService.java @@ -16,7 +16,7 @@ List customerList(CustomerListRequest request) throws Exception; - ReturnDTO addCustomer(CustomerInfo customerInfo); + ReturnDTO addCustomer(CustomerInfo customerInfo) throws Exception; ReturnDTO updateCustomer(CustomerInfo customerInfo); 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 a79e129..3534a47 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,24 +7,27 @@ 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.dto.ReturnUtil; +import com.casic.missiles.enums.PrefixCodeEnum; 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; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; + import static com.casic.missiles.core.util.HttpContext.getIp; @@ -82,4 +85,17 @@ resultData.setMessage("登录成功"); return resultData; } + + @GetMapping("/prefixcode/list") + @ResponseBody + public Object getPreFixCodeList() throws Exception{ + Class fixCodeEnumClass = PrefixCodeEnum.class; + Field[] fixCodeEnumFileds = fixCodeEnumClass.getDeclaredFields(); + List fixCodeList=new ArrayList<>(); + for(Field field: fixCodeEnumFileds){ + fixCodeList.add( field.get(PrefixCodeEnum.class).toString()); + } + return ReturnUtil.success(fixCodeList); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index 1f03225..59f60ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.*; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -16,6 +17,7 @@ import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessCertificateReportService; +import com.casic.missiles.service.customer.CustomerSampleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; @@ -43,7 +45,8 @@ public class BusinessCertificateReportController extends ExportController { @Resource private IBusinessCertificateReportService certificateReportService; - + @Resource + private CustomerSampleService customerSampleService; @ApiOperation("证书报告记录导出") @PostMapping("/listExport") @@ -156,10 +159,19 @@ } + @ApiOperation("根据样品id/客户id查询检定证书") - @PostMapping("/RecordsById") + @PostMapping("/certificateRecordsById") public ReturnDTO> certificationBySampleId(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ return ReturnUtil.success(super.packForBT(certificateReportService.certificateRecordsById(customerSampleIdRequest))); } + + + @ApiOperation("根据样品id查询证书监控列表") + @PostMapping("/certificateMonitorsById") + public ReturnDTO> certificateMonitorsById(@RequestBody CustomerSampleIdRequest customerSampleIdRequest) throws Exception{ + return ReturnUtil.success(super.packForBT(certificateReportService.certificateMonitorsById(customerSampleIdRequest))); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index c9d6a93..28d4f04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -88,13 +88,13 @@ /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ - @ApiOperation("催办(暂时未开发)") - @PostMapping("/rushDoProcess") - public ReturnDTO rushDoProcess(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid DeviceStatusChangeDTO deviceReceiveDTO) { Assert.isFalse(Objects.isNull(deviceReceiveDTO.getOrderId()) || Objects.isNull(deviceReceiveDTO.getSampleId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return bizDispatchService.rushDoProcess(deviceReceiveDTO); + return bizDispatchService.remindWorker(deviceReceiveDTO); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index f1c90e8..227ca04 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -70,7 +70,7 @@ @ApiOperation("委托书更新") @PostMapping("/update") - public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO updateAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult)throws Exception { Assert.isFalse(Objects.isNull(businessOrder.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -82,7 +82,7 @@ @ApiOperation("委托书新增") @PostMapping("/add") - public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) { + public ReturnDTO addAdvice(@RequestBody @Valid BusinessOrder businessOrder, BindingResult bindingResult) throws Exception{ Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); 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 9f2284d..e9b576a 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 @@ -16,6 +16,7 @@ import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.customer.CustomerService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,7 +60,7 @@ @ApiOperation("客户新增") @PostMapping("/add") - public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) { + public ReturnDTO addCustomer(@RequestBody @Valid CustomerInfo customerInfo, BindingResult bindingResult) throws Exception{ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } 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 e07ad0b..16d1465 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 @@ -51,7 +51,7 @@ @ApiOperation("样品新增") @PostMapping("/add") - public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult) { + public ReturnDTO addSample(@RequestBody @Valid CustomerSampleInfo customerSampleInfo, BindingResult bindingResult)throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 2535dab..c95d6dc 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -142,7 +142,7 @@ return meterFileService.updateFile(idDTO.getId()); } - @ApiOperation("文件删除(草稿和通过的调用)") + @ApiOperation("文件删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index f72b29a..d773a83 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -129,7 +129,7 @@ return null; } - @ApiOperation("溯源供方删除(草稿和通过的调用)") + @ApiOperation("溯源供方删除(草稿也调用该接口)") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java index 0c1afd9..de6976b 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTrainController.java @@ -133,7 +133,7 @@ return null; } - @ApiOperation("培训计划删除(草稿和通过的调用)") + @ApiOperation("培训计划删除(草稿也调用该接口)") @PostMapping("/plan/delete") @ResponseBody public ReturnDTO planDelete(@RequestBody @Valid IdDTO idDTO) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java index 73fce0f..091b377 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/sys/DeptExtendController.java @@ -106,15 +106,13 @@ @PostMapping("/delete") @Permission @ResponseBody + @Transactional public ReturnDTO delete(@RequestBody IdVO dto) { LogObjectHolder.me().set(this.domainDeptService.getDeptName(dto.getId())); this.deptService.deleteDept(dto.getId()); //删除计量组织信息 - int deleteFlag = organizeService.deleteByDeptId(dto.getId()); - if(deleteFlag > 0){ - return ReturnUtil.success(); - } - return ReturnUtil.failed("删除组织失败"); + organizeService.deleteByDeptId(dto.getId()); + return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 691aebd..68334d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -13,10 +13,10 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.system.SystemNotice; import com.casic.missiles.model.system.SystemSign; import com.casic.missiles.model.system.SystemTemplate; -import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.system.ISystemNoticeService; import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemTemplateService; @@ -26,10 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; @@ -43,7 +40,7 @@ */ @Api(tags = "系统管理接口") @Controller -@RequestMapping("/system") + @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @@ -139,6 +136,13 @@ return signService.deleteBatchSign(idsDTO.getIds()); } + @ApiOperation("获取本人可使用签名/签章") + @GetMapping("/sign/usable") + @ResponseBody + public ReturnDTO> signUsable() { + return ReturnUtil.success(signService.usableSign()); + } + @ApiOperation("原始记录模板/证书报告模板列表(分页)") @PostMapping("/template/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java index a013d67..c27b98e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificatePrintStatusEnum.java @@ -16,4 +16,16 @@ * 审批中 */ String IN_APPROVAL = "3"; + + + /** + * 证书状态完成 + */ + String FINISHED = "已完成"; + + /** + * 证书状态未完成 + */ + String UNFINISHED = "未完成"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java index 2c0880e..c2af7d9 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/meter/MeterDictEnum.java @@ -43,4 +43,7 @@ //校验类别 String MEASURE_CATEGORY= "measureCategory"; + //证书类型 + String CERTIFICATION_CLASS= "certificationClass"; + } 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 index ebb9d60..a318a34 100644 --- 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 @@ -15,4 +15,6 @@ String LEASE_BEAN_NAME = "equipmentLeaseBean"; + String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + } 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 index 9300729..2435309 100644 --- 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 @@ -18,6 +18,7 @@ DEVICE_LEASE_CONSUMING(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_COLLECTING), DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), + CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -32,6 +33,7 @@ put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 + put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index bbef828..5d16918 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -19,4 +19,5 @@ String DEVICE_FIX_APPROVAL = "sbglsbjxsq"; // 设备检修申请 String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 + String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java deleted file mode 100644 index 1399186..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/listeners/flowable/ProcessListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.listeners.flowable; - -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.stereotype.Component; - -/** - * @Description: 流程监听器 - * @Author: wangpeng - * @Date: 2022/12/27 9:54 - */ -@Component -public class ProcessListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - // TODO: 2022/12/27 查询已通过的流程通过.finished()方法,若.finished()验证可以实现则无需使用该监听器 - //设置流程已通过状态,流程状态维护在实例变量中 -// execution.setVariable(PROCESS_STATUS, ApprovalStatusEnum.PASSED); - } -} 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 8ac418f..3769c86 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 @@ -2,19 +2,12 @@ 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.listeners.NotifyStatusPostProcessor; -import com.casic.missiles.mapper.equipment.*; import com.casic.missiles.mapper.system.SystemFlowFormMapper; import com.casic.missiles.mapper.workbench.WorkbenchApprovalMessageMapper; -import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.system.SystemFlowForm; import com.casic.missiles.model.workbench.WorkbenchApprovalMessage; import com.casic.missiles.modular.system.dao.UserMapper; @@ -30,6 +23,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Objects; + @Slf4j @Component public class ProcessUpdateStateListener implements ExecutionListener { @@ -48,13 +43,15 @@ // 查出流程定义信息 SystemFlowForm systemFlowForm = flowFormMapper.selectOne(wrapper); String id = execution.getProcessInstanceBusinessKey(); - 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); + AwareActionStatusEnum notifyActionStatusEnum = AwareActionStatusEnum.ACTION_STATUS_MAP.getActionStatusMap().get(systemFlowForm.getFormId()); + if (null != notifyActionStatusEnum) { + 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); @@ -66,7 +63,7 @@ JSONObject jsonObject = JSONObject.parseObject(systemFlowForm.getFlowDef()); JSONObject workFlowDef = jsonObject.getJSONObject("workFlowDef"); Integer noticeStarter = workFlowDef.getInteger("noticeStarter"); - if (1 == noticeStarter) { + if (!Objects.isNull(noticeStarter) && 1 == noticeStarter) { Long rootId = Long.valueOf(String.valueOf(execution.getVariable("root"))); String formName = workFlowDef.getString("formName"); String formId = systemFlowForm.getFormId(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java new file mode 100644 index 0000000..12bedc0 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/listeners/processor/CertificateReportStatusPostProcessor.java @@ -0,0 +1,38 @@ +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 zt + * + * 证书报告审批通过状态回填 + */ +@Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) +public class CertificateReportStatusPostProcessor 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); + }); +// IBusinessCertificateReportServicecertificateReportService = SpringContextUtil.getBean(IBusinessCertificateReportService.class); +// if (!certificateReportService.updateCertificateReportState(id)) { +// throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); +// } + } + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 22facc4..0e2fa7e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.business.print.CertificateListRequest; @@ -33,9 +34,13 @@ List selectBatchForApproval(@Param("page")Page page, @Param("request") CertificateReportApprovalRequest request, @Param("businessKey") List businessKey); + Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + + Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); - Page certificateRecordsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); + BusinessCertificateReport detailById( @Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java index db34182..98079db 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemSignMapper.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.model.system.SystemSign; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -17,4 +20,6 @@ Long selectMaxSignNo(); SignDetailResponse selectSignDetailById(Long id); + + List selectUsableSignList(@Param("userId") Long userId); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index 42a0aeb..719742d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -29,66 +29,72 @@ - id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time + id + , certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -128,7 +134,8 @@ - SELECT bcr.*, csi.sample_no AS sampleNo, @@ -136,7 +143,8 @@ csi.sample_model AS sampleModel, csi.manufacturing_no AS manufacturingNo, bo.order_code AS orderCode, - su.name AS measurePersonName + su.name AS measurePersonName, + csi.measure_category AS measureCategory FROM business_certificate_report bcr LEFT JOIN business_order bo ON bcr.order_id=bo.id @@ -170,9 +178,32 @@ + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml index fac5dbb..01319c1 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveTemplateInfoMapper.xml @@ -29,8 +29,7 @@ FROM business_lab_executive_template_info bleti JOIN sys_dept sd ON bleti.measure_dept_id = sd.ID LEFT JOIN meter_staff ms ON bleti.measure_person_id = ms.id - WHERE bleti.is_del = 0 - AND bleti.sample_id = #{request.sampleId} + WHERE bleti.sample_id = #{request.sampleId} ORDER BY bleti.execute_sequence ASC diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 86f4ee4..435d1de 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -89,7 +89,7 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - + AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml index b0852e9..ae078b7 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemSignMapper.xml @@ -9,6 +9,7 @@ + @@ -54,4 +55,11 @@ LEFT JOIN sys_user su ON su.id = ssur.user_id WHERE ss.id = #{id} AND ss.is_del = 0 + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java index 2e249eb..db73fd6 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutInitListRequest.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -23,7 +22,7 @@ @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; - @NotBlank(message = "检定项目不能为空") +// @NotBlank(message = "检定项目不能为空") @ApiModelProperty(value = "检定项目(各项目逗号分割)", dataType = "String") private String measureContent; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java new file mode 100644 index 0000000..9c47b5d --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/CertificateMonitorResponse.java @@ -0,0 +1,43 @@ +package com.casic.missiles.dto.business.certificate; + +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class CertificateMonitorResponse { + + @ApiModelProperty(value = "证书id", dataType = "Long") + private Long certificationId; + + @ApiModelProperty(value = "证书遍号", dataType = "String") + private String certificateReportCode; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateReportName; + + @ApiModelProperty(value = "证书类型", dataType = "String") + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + private String certificationType; + + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificationTypeName; + + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "初次提交时间", dataType = "String") + private String submitTime; + + @ApiModelProperty(value = " 完成时间", dataType = "String") + private String finishedTime; + + @ApiModelProperty(value = "退回次数", dataType = "Long") + private int returns; + + @ApiModelProperty(value = "制作人", dataType = "List") + private String createUser; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index d879286..5dd936e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -1,6 +1,5 @@ package com.casic.missiles.model.business; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -42,6 +41,14 @@ @ApiModelProperty(value = "证书报告名称", dataType = "String") private String certificateReportName; + + /** + * 证书报告名称 + */ + @TableField("certificate_report_type") + @ApiModelProperty(value = "证书报告类型", dataType = "String") + private String certificateReportType; + /** * 证书类别,多个逗号分割(字典code) */ @@ -168,6 +175,13 @@ private String remark; /** + * 出具日期 + */ + @TableField("submit_date") + @ApiModelProperty(value = "提交时间", dataType = "String") + private String submitDate; + + /** * 流程实例id */ @ApiModelProperty(value = "流程实例id(未通过文件编辑接口必传参数)", dataType = "String") @@ -197,4 +211,21 @@ @TableField(exist = false) @ApiModelProperty(value = "审批状态名称", dataType = "String") private String approvalStatusName; + + @TableField(exist = false) + @ApiModelProperty(value = "电子签章名称", dataType = "String") + private String signName; + + @TableField(exist = false) + @ApiModelProperty(value = "认可标志专用章名称", dataType = "String") + private String approvalSignName; + + @TableField(exist = false) + @ApiModelProperty(value = "模板名称", dataType = "String") + private String templateName; + + @TableField(exist = false) + @ApiModelProperty(value = "证书类型名称", dataType = "String") + private String certificateReportTypeName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java index 32d90c0..033f40a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/workbench/WorkbenchRemindMessage.java @@ -7,6 +7,7 @@ import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -51,6 +52,13 @@ @TableField("business_id") private Long businessId; + + /** + * 消息提醒的业务关联表id + */ + @ApiModelProperty(value = "关联表业务主键", dataType = "Long") + @TableField("relation_business_id") + private Long relationBusinessId; /** * 消息提醒的业务内容编码 */ @@ -70,6 +78,13 @@ @TableField(exist = false) private String messageTypeName; + + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题", dataType = "String") + @TableField("message_topic") + private String messageTopic; /** * 消息主题(冗余) */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 164c53a..5e59e2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -20,19 +21,25 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.enums.*; +import com.casic.missiles.enums.business.CertificatePrintStatusEnum; import com.casic.missiles.enums.business.MonitorCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApplyFromIdEnum; import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.Impl.customer.CustomerSampleServiceImpl; import com.casic.missiles.service.business.IBusinessCertificateReportService; import com.casic.missiles.service.business.IBusinessOriginalRecordService; +import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -73,6 +80,8 @@ private RuntimeService runtimeService; @Resource private IBaseExportService iBaseExportService; + @Resource + private CustomerSampleServiceImpl sampleService; /** * 保存证书报告信息 @@ -85,7 +94,7 @@ initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) - return ReturnUtil.success(); + return ReturnUtil.success(certificateReport.getId()); throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @@ -135,10 +144,12 @@ */ @Override public BusinessCertificateReport certificateReportDetail(Long id) { - BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); +// BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + BusinessCertificateReport certificateReport = this.baseMapper.detailById(id); if (certificateReport.getOriginalRecordId() != null) { try { certificateReport.setBusinessOriginalRecord(originalRecordService.originalDetail(certificateReport.getOriginalRecordId())); + certificateReport.setCertificateReportTypeName(dictService.getDictNameByCode(MeterDictEnum.CERTIFICATION_CLASS,certificateReport.getCertificateReportType())); } catch (Exception e) { e.printStackTrace(); } @@ -166,6 +177,7 @@ certificateReport.setId(request.getId()); certificateReport.setApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 certificateReport.setProcessId(processInstance.getId()); + certificateReport.setSubmitDate(DateUtil.formatDateTime(new Date())); int row = this.baseMapper.updateById(certificateReport); if (row <= 0) { throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getCode(), BusinessExceptionEnum.CERTIFICATE_REPORT_SUBMIT_FAILED.getMessage()); @@ -173,6 +185,7 @@ return ReturnUtil.success(); } + /** * 审批状态列表查询 * @@ -233,6 +246,78 @@ } } + /** + * 审批通过后 更新样品有效期 + * + * @param id + * @return + */ + @Override + public boolean updateCertificateReportState(Long id) { + + BusinessCertificateReport certificateReport = new BusinessCertificateReport(); + certificateReport.setId(id); + //审批状态为通过 + certificateReport.setApprovalStatus(ApprovalStatusEnum.PASSED); + certificateReport.setUpdateTime(DateUtil.formatDateTime(new Date())); + int row = this.baseMapper.updateById(certificateReport); + //更新样品有效期 + BusinessCertificateReport certificateReport1 = this.baseMapper.selectById(id); + if (certificateReport1.getSampleId() != null) { + CustomerSampleInfo sampleInfo = sampleService.getById(certificateReport1.getSampleId()); + if (sampleInfo != null) { + sampleInfo.setValidDeadline(certificateReport1.getExpirationDate()); + boolean rs = sampleService.updateById(sampleInfo); + if (row > 0 & rs) return true; + } + } + return row > 0 ? true : false; + } + + + + /** + * 客户、样品详情列表 + */ + @Override + public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); + for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { + if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { + DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); + } + } + return certificateResponsePage; + } + + @Override + public Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { + Page page = PageFactory.defaultPage(); + Page certificateMonitorResponsePage = this.baseMapper.certificateMonitorsById(page, customerSampleIdRequest); + for (CertificateMonitorResponse certificateMonitorResponse : certificateMonitorResponsePage.getRecords()) { + if (!StringUtils.isEmpty(certificateMonitorResponse.getCertificationType())) { + DictCodeUtils.convertDictMultiCodeToName(certificateMonitorResponse); + } + //设置证书状态 + certificateMonitorResponse.setCertificateStatus(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + CertificatePrintStatusEnum.FINISHED : CertificatePrintStatusEnum.UNFINISHED); + //设置完成时间 + certificateMonitorResponse.setFinishedTime(ApprovalStatusEnum.PASSED.equals(certificateMonitorResponse.getCertificateStatus()) ? + certificateMonitorResponse.getFinishedTime() : ""); + + //设置退回次数 + List rejectBusinessKey = baseApprovalService.getFailedRejectList(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL); + + rejectBusinessKey.forEach(obj -> { + if (obj.equals(certificateMonitorResponse.getCertificationId().toString())) { + certificateMonitorResponse.setReturns(certificateMonitorResponse.getReturns() + 1); + } + }); + } + return certificateMonitorResponsePage; + } + private List handleApprovalStatus(Page page, CertificateReportApprovalRequest request) { List approvalList = new ArrayList<>(); List businessKeys = new ArrayList<>(); @@ -312,21 +397,6 @@ return approvalList; } - /** - * 客户、样品详情列表 - */ - @Override - public Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception { - Page page = PageFactory.defaultPage(); - Page certificateResponsePage = this.baseMapper.certificateRecordsById(page, customerSampleIdRequest); - for (CertificationResponse customerSampleListResponse : certificateResponsePage.getRecords()) { - if (!StringUtils.isEmpty(customerSampleListResponse.getCertificationClass())) { - DictCodeUtils.convertDictMultiCodeToName(customerSampleListResponse); - } - } - return certificateResponsePage; - } - private List handleAllApprovalListResponse(List approvalList, List allApproveList) { Map taskMap = new HashMap<>(); allApproveList.forEach(allApprove -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 955cc7a..5b23762 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -159,6 +159,10 @@ if(!CollectionUtils.isEmpty(initListResponses)){ return initListResponses; } + + if(StringUtils.isEmpty(handOutInitListRequest.getMeasureContent())){ + return new ArrayList<>(); + } //根据样品的检定项目去关键字匹配实验室能力信息 String[] split = handOutInitListRequest.getMeasureContent().split(","); List list = Arrays.asList(split); @@ -212,10 +216,12 @@ public Page deptLabExecutiveListPage(Page page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception{ //本级部门主管可见本部门的检测 //根据用户id查询,用户角色中TIPS为director即为主管,取用户的部门id - AuthUser user = ShiroKit.getUser(); - Assert.isFalse(Objects.isNull(user), () -> { - throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); - }); +// AuthUser user = ShiroKit.getUser(); +// Assert.isFalse(Objects.isNull(user), () -> { +// throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); +// }); + AuthUser user = new AuthUser(); + user.setId(1634091003794550786l); Map resultMap = selectDirectDept(user); if(CollectionUtils.isEmpty(resultMap) || Objects.isNull(resultMap.get("deptId"))){ return new Page<>(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 1d63554..ab5978d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -53,7 +53,7 @@ */ @Service @AllArgsConstructor -public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService,PrefixCodeEnum, OrderStatusEnum,SampleStatusEnum, MeasureTypeEnum { +public class BusinessOrderServiceImpl extends ServiceImpl implements IBusinessOrderService, PrefixCodeEnum, OrderStatusEnum, SampleStatusEnum, MeasureTypeEnum { private final BusinessOrderListReponseMapper orderListResponseMapper; private final IBaseExportService iBaseExportService; @@ -107,7 +107,7 @@ * 2、对样品进行是否在库的判断,如果不存在则入库, 入库操作完成,进行委托书样品关系的绑定 */ @Override - public ReturnDTO updateOrder(BusinessOrder businessOrder) { + public ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception { if (CollectionUtils.isEmpty(businessOrder.getCustomerSampleInfoList())) { return ReturnUtil.failed("样品列表不能为空"); } @@ -141,7 +141,7 @@ */ @Override @Transactional - public ReturnDTO addOrder(BusinessOrder businessOrder) { + public ReturnDTO addOrder(BusinessOrder businessOrder) throws Exception { initOrderInfo(businessOrder); int addFlag = this.baseMapper.insert(businessOrder); boolean sampleAddFlag = true; @@ -209,8 +209,8 @@ int updateFlag = doUpdateStatusById(orderCancelRequest.getId(), status); String dealType = ""; if (status.equals(ALREADY_RECEIVED)) { - dealType = "委托书接收" ; - doUpdateSampleStatus(orderCancelRequest.getId(),TO_RECEIVE); + dealType = "委托书接收"; + doUpdateSampleStatus(orderCancelRequest.getId(), TO_RECEIVE); } else { dealType = "委托书退回"; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index c9c1902..8e41658 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.HandOutLabExecutiveDTO; @@ -15,16 +17,25 @@ import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; import com.casic.missiles.enums.*; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.business.MeasureStatusEnum; import com.casic.missiles.enums.business.MeasureTypeEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.workbench.MessageTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; +import com.casic.missiles.mapper.customer.CustomerSampleMapper; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.business.*; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.model.workbench.WorkbenchRemindMessage; import com.casic.missiles.service.business.IBusinessDispatchService; +import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.docx4j.wml.R; +import org.springframework.data.redis.connection.Message; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -43,8 +54,11 @@ @Slf4j @AllArgsConstructor public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService, SampleStatusEnum, CurrentSegmentEnum, MeasureTypeEnum { - private final BusinessOrderSampleRelationMapper orderSampleRelationMapper; + + private WorkbenchRemindMessageMapper remindMessageMapper; + + private CustomerSampleMapper customerSampleMapper; private final BusinessCertificateReportMapper certificateReportMapper; private final BusinessLabExecutiveInfoMapper labExecutiveInfoMapper; private final IBaseExportService iBaseExportService; @@ -134,9 +148,10 @@ @Override @Transactional public ReturnDTO statusChange(DeviceStatusChangeDTO deviceStatusChangeDTO) { - boolean beforeEventFlag = beforeStatusChange(deviceStatusChangeDTO); + boolean incomeStatusFlag = incomeStatusChange(deviceStatusChangeDTO); + completeStatusChange(deviceStatusChangeDTO); Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, false); - if (updateFlag > 0 && beforeEventFlag) { + if (updateFlag > 0 && incomeStatusFlag) { return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -150,7 +165,7 @@ public ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO) { Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO, true); //实验室状态数据的更新 - updateLabExecutiveInfo(deviceStatusChangeDTO); + updateLabExecutiveInfo(deviceStatusChangeDTO, MeasureStatusEnum.TERMINATED); if (updateFlag > 0) { return ReturnUtil.success(); } @@ -182,29 +197,78 @@ } } - private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO, String measureStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); -// queryWrapper.ne("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or() + .eq("sample_status", IN_MEASURE)); BusinessLabExecutiveInfo businessLabExecutiveInfo = new BusinessLabExecutiveInfo(); -// businessLabExecutiveInfo.setMeasureStatus(); + businessLabExecutiveInfo.setMeasureStatus(measureStatus); businessLabExecutiveInfo.setRemark(deviceStatusChangeDTO.getReason()); labExecutiveInfoMapper.update(businessLabExecutiveInfo, queryWrapper); } - /** - * 消息催办 - */ + @Override - public ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO) { - int deleteFlag = this.baseMapper.deleteById(deviceStatusChangeDTO.getOrderId()); - if (deleteFlag > 0) { - return ReturnUtil.success(); + public ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO) { + BusinessLabExecutiveInfo labExecutiveInfo = getLabExecutiveInfo(deviceStatusChangeDTO); + if (labExecutiveInfo != null) { + WorkbenchRemindMessage remindMessage = initWorkbenchRemindMessage(labExecutiveInfo); + int remindMessageAddFlag = remindMessageMapper.insert(remindMessage); + if (remindMessageAddFlag > 0) { + return ReturnUtil.success(); + } } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + private BusinessLabExecutiveInfo getLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); + queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); + queryWrapper.and(QueryWrapper -> QueryWrapper.eq("measure_status", MeasureStatusEnum.TO_ALLOCATE) + .or().eq("measure_status", MeasureStatusEnum.TO_MEASURE) + .or().eq("measure_status", MeasureStatusEnum.IN_MEASURE)); + List businessLabExecutiveInfo = labExecutiveInfoMapper.selectList(queryWrapper); + return businessLabExecutiveInfo.isEmpty() ? null : businessLabExecutiveInfo.get(0); + } + + /** + * 消息催办 + * 1、待办人为当前实验室工作人员, + * 2、业务主键id业务主键将要跳转的页面id + * 3、当前工作人员id的或部门的id + * 4、创建人为当前催办人 + * 5、消息类型为超出检定时间催办提醒 + * 6、消息主题为代办人或者待办部门 + * 7、消息标题待办提醒,内容为样品 + */ + public WorkbenchRemindMessage initWorkbenchRemindMessage(BusinessLabExecutiveInfo labExecutiveInfo) { + WorkbenchRemindMessage remindMessage = new WorkbenchRemindMessage(); + remindMessage.setRemindId(labExecutiveInfo.getMeasurePersonId()); + remindMessage.setRemindDeptId(labExecutiveInfo.getMeasureDeptId()); + remindMessage.setMessageType(MessageTypeEnum.OVERTIME_MEASURE.getCode()); + //检测人不为空,且检测状态不为待分配消息催办到我的检测 + if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { + remindMessage.setMessageTopic("我的检测"); + } else { + remindMessage.setMessageTopic("部门检测"); + } + CustomerSampleInfo customerSampleInfo = customerSampleMapper.selectById(labExecutiveInfo.getSampleId()); + if (null != customerSampleInfo) { + remindMessage.setMessageTitle(customerSampleInfo.getSampleName() + "样品检测已经超出期限"); + remindMessage.setMessageContent(customerSampleInfo.getSampleNo() + customerSampleInfo.getSampleName()); + remindMessage.setBusinessCode(customerSampleInfo.getSampleNo()); + } + remindMessage.setBusinessId(labExecutiveInfo.getSampleId()); + remindMessage.setRelationBusinessId(labExecutiveInfo.getOrderId()); + AuthUser authUser = ShiroKit.getUser(); + remindMessage.setCreateUser(authUser.getId()); + remindMessage.setCreateUserName(authUser.getName()); + return remindMessage; + } + private Integer getAlreadyCertificateNum(DeviceDispatchVO dispatchVO, Long measureDeptId) { Long aLong = certificateReportMapper.selectCount(getCertificateReportWrapper(dispatchVO, measureDeptId)); return aLong.intValue(); @@ -240,7 +304,7 @@ queryWrapper.eq("sample_id", statusChangeDTO.getSampleId()); if (terminateFlag) { //若是终止,需要对应待分发、检测中、检测完三个状态的变更 - queryWrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE); + queryWrapper.and(wrapper -> wrapper.eq("sample_status", TO_HANDOUT).or().eq("sample_status", IN_MEASURE).or().eq("sample_status", MEASURE_COMPLETE)); } BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); @@ -291,7 +355,7 @@ return false; } - private boolean beforeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + private boolean incomeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { if (statusChangeDTO.getStatus().equals(TO_INCOME)) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("order_id", statusChangeDTO.getOrderId()); @@ -311,4 +375,11 @@ return true; } + private void completeStatusChange(DeviceStatusChangeDTO statusChangeDTO) { + if (statusChangeDTO.getStatus().equals(COMPLETE)) { + this.updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.MEASURE_COMPLETE); + } + } + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index f9747dd..9fa94f8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -76,7 +76,8 @@ */ @Override @Transactional - public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) { + public ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) throws Exception{ + DictCodeUtils.validDictCode(customerSampleInfo); initSample(customerSampleInfo); int addFlag = this.baseMapper.insert(customerSampleInfo); if (addFlag > 0) { @@ -164,6 +165,8 @@ } + + @Override public Page samplesByOderId(Page page, Long orderId, String sampleNo, String sampleName) { return this.baseMapper.samplesByOderId(page, orderId, sampleNo, sampleName); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java index f6e1f8a..8277712 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.service.customer.CustomerService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import liquibase.pro.packaged.E; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -66,7 +67,8 @@ @Override @Transactional - public ReturnDTO addCustomer(CustomerInfo customerInfo) { + public ReturnDTO addCustomer(CustomerInfo customerInfo) throws Exception { + DictCodeUtils.validDictCode(customerInfo); initCustomerInfo(customerInfo); int addFlag = this.baseMapper.insert(customerInfo); Boolean userAddFlag = userInfoListCreator(customerInfo.getCustomerUserList(), customerInfo.getId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java index 485287a..47c5adc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/flowable/ApprovalOperateServiceImpl.java @@ -135,7 +135,7 @@ approvalLog.setDeptName(dept.getSimpleName()); } } else if (Objects.isNull(approvalLog.getFinishTime())) { - approvalLog.setApprovalStatus(ApprovalStatusEnum.IN_APPROVED); + approvalLog.setApprovalStatus("审批中"); } else if (!Objects.isNull(approvalLog.getFinishTime())) { approvalLog.setApprovalStatus("审批完成");//可能是通过/拒绝/驳回,审批意见中可见 } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java index 3bc7d81..53c2c51 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java @@ -1,14 +1,19 @@ package com.casic.missiles.service.Impl.system; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.system.SignAddRequest; import com.casic.missiles.dto.system.SignDetailResponse; import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.system.SystemSignMapper; import com.casic.missiles.mapper.system.SystemSignUserRelationMapper; import com.casic.missiles.model.system.SystemSign; @@ -125,6 +130,15 @@ return ReturnUtil.failed("删除失败"); } + @Override + public List usableSign() { + AuthUser user = ShiroKit.getUser(); + Assert.isFalse(Objects.isNull(user), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + return signMapper.selectUsableSignList(user.getId()); + } + private List getUserRelations(List userIdList, Long signId) { List bsRelations = new ArrayList<>(); userIdList.forEach(id -> { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java index 8e91c42..81cb155 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificateReportService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.business.certificate.CertificateMonitorResponse; import com.casic.missiles.dto.business.certificate.CertificateReportApprovalRequest; import com.casic.missiles.dto.business.certificate.CertificateReportResponse; import com.casic.missiles.dto.customer.CertificationResponse; @@ -42,6 +43,9 @@ void originExport(CertificateReportApprovalRequest request, HttpServletResponse response); - Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; + boolean updateCertificateReportState(Long id); + Page certificateMonitorsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; + + Page certificateRecordsById(CustomerSampleIdRequest customerSampleIdRequest) throws Exception; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java index 0c2aeb2..cbf2cf5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java @@ -21,5 +21,5 @@ ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO); - ReturnDTO rushDoProcess(DeviceStatusChangeDTO deviceStatusChangeDTO); + ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java index dea393f..fb58702 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java @@ -26,9 +26,9 @@ BusinessOrder orderDetail(Long id); - ReturnDTO updateOrder(BusinessOrder businessOrder); + ReturnDTO updateOrder(BusinessOrder businessOrder) throws Exception; - ReturnDTO addOrder(BusinessOrder businessOrder); + ReturnDTO addOrder(BusinessOrder businessOrder)throws Exception; void orderExport(OrderListRequest request, HttpServletResponse response); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerSampleService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerSampleService.java index fd4be1d..d5d00ee 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerSampleService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerSampleService.java @@ -18,7 +18,7 @@ Page listPage(Page page, CustomerSampleListRequest request) throws Exception; - ReturnDTO addSample(CustomerSampleInfo customerSampleInfo); + ReturnDTO addSample(CustomerSampleInfo customerSampleInfo) throws Exception; ReturnDTO updateSample(CustomerSampleInfo customerSampleInfo); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerService.java index 3bcb80c..bef03f0 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerService.java @@ -16,7 +16,7 @@ List customerList(CustomerListRequest request) throws Exception; - ReturnDTO addCustomer(CustomerInfo customerInfo); + ReturnDTO addCustomer(CustomerInfo customerInfo) throws Exception; ReturnDTO updateCustomer(CustomerInfo customerInfo); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemSignService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemSignService.java index c83b68c..b5867a9 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemSignService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemSignService.java @@ -30,6 +30,8 @@ ReturnDTO deleteBatchSign(List ids); + List usableSign(); + List list(SignListRequest request); ReturnDTO signDetail(Long id);