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/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/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/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/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/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-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/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-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-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/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-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-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/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/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-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-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/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/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-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-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/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..506885b 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) { 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/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-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-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/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..506885b 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) { 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/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-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-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/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..506885b 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) { 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/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/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-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-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/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..506885b 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) { 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/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/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-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-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/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..506885b 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) { 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/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/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-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-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/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..506885b 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) { 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/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);