From 1b64a6ab31dd34565ad813208dd345ef268e5cc8 Mon Sep 17 00:00:00 2001 From: caoyizhong <1270296080> Date: Mon, 15 Jan 2024 19:55:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=A5=E5=8D=95=E5=AE=8C?= =?UTF-8?q?=E7=BB=93=E6=9F=A5=E8=AF=A2=EF=BC=8C=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/AftersalesProcessingResultsDTO.java | 3 +- .../dto/AftersalesWorkOrderDTO.java | 9 +++ .../mapper/AftersalesAppealMapper.xml | 2 +- .../mapper/AftersalesWorkOrderMapper.xml | 14 ++-- ...ftersalesProcessingResultsServiceImpl.java | 6 +- .../impl/AftersalesWorkOrderServiceImpl.java | 68 ++++++++++++------- 6 files changed, 68 insertions(+), 34 deletions(-) diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesProcessingResultsDTO.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesProcessingResultsDTO.java index 96147afb7..54dc6a74b 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesProcessingResultsDTO.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesProcessingResultsDTO.java @@ -37,6 +37,7 @@ public class AftersalesProcessingResultsDTO extends AftersalesProcessingResult * 处理结果类型 */ private List<AftersalesProcessingMoneyEntity> processingMoneyEntityList; - + //删除ID + private List<Long> assignList; } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesWorkOrderDTO.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesWorkOrderDTO.java index 8c58f1471..3939110b6 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesWorkOrderDTO.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesWorkOrderDTO.java @@ -81,6 +81,15 @@ public class AftersalesWorkOrderDTO extends AftersalesWorkOrderEntity { * 工单指派 ID */ private List<Long> assignList; + /** + * 赔款方删除集合 + */ + private List<Long> assignListRecord; + /** + * 受款方删除集合 + */ + private List<Long> assignListRecipient; + /** * 处理结果 diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAppealMapper.xml b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAppealMapper.xml index b548e3029..7d35a05b6 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAppealMapper.xml +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAppealMapper.xml @@ -40,7 +40,7 @@ SELECT * FROM logpm_aftersales_appeal ${ew.customSqlSegment} </select> <select id="getListAppeal" resultType="com.logpm.aftersales.vo.AftersalesAppealVO"> - SELECT + SELECT DISTINCT laa.id , laa.appeal_people_name appealPeopleName, laa.claimant, diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml index 999c41613..f71a1c364 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml @@ -57,6 +57,7 @@ lawo.customer_service_name customerServiceName,lawo.warehouse_id warehouseId,lawo.brand_name brandName from logpm_aftersales_work_order lawo LEFT JOIN logpm_aftersales_processor lap on lawo.id = lap.work_order_id and lap.types_of = '2' and lap.conditions in (1,2) + LEFT JOIN logpm_aftersales_completion_record lacr on lacr.work_order_id = lawo.id and lacr.is_deleted = '0' <where> lawo.is_deleted = 0 <if test="param.id != null and param.id != '' ">and lawo.id = #{param.id } </if> @@ -83,12 +84,13 @@ date_format(from_unixtime(create_time),'%Y-%m-%d') = date_format(now(),'%Y-%m-%d <if test="param.waybillMall != null and param.waybillMall != '' ">and lawo.waybill_mall = #{param.waybillMall } </if> <if test="param.deliveryDriver != null and param.deliveryDriver != '' ">and lawo.delivery_driver = #{param.deliveryDriver } </if> <if test="param.customerServiceState != null and param.customerServiceState == 30 "> and lawo.work_order_status in ('30','40') </if> - + <if test="param.customerServiceState != null and param.customerServiceState == 20 "> and lawo.work_order_status in ('30') </if> + <if test="param.customerServiceState != null and param.customerServiceState == 10 "> and lawo.work_order_status in ('80','100') </if> <if test="param.customerServiceId != null and param.customerServiceId != '' ">and lawo.customer_service_id = #{param.customerServiceId } </if> <if test="param.customerServiceName != null and param.customerServiceName != '' ">and lawo.customer_service_name = #{param.customerServiceName } </if> <if test="param.waybillMallId != null and param.waybillMallId != '' ">and lawo.waybill_mall_id = #{param.waybillMallId } </if> <if test="param.problemDescription != null and param.problemDescription != '' ">and lawo.problem_description = #{param.problemDescription} </if> - <if test="param.warehouseId != null and param.warehouseId != '' ">and lawo.warehouse_id = #{param.warehouseId} </if> + <if test="param.warehouseId != null and param.warehouseId != '' and param.handleStatus != 20">and lawo.warehouse_id = #{param.warehouseId} </if> <if test="param.personResponsible != null and param.personResponsible != '' ">and lawo.person_responsible = #{param.personResponsible } </if> <if test="param.processNumber != null and param.processNumber != '' ">and lawo.process_number = #{param.processNumber } </if> <if test="param.reviewedBy != null and param.reviewedBy != '' ">and lawo.reviewed_by = #{param.reviewedBy } </if> @@ -103,15 +105,15 @@ date_format(from_unixtime(create_time),'%Y-%m-%d') = date_format(now(),'%Y-%m-%d </if> <if test="param.handleStatus!= null and param.handleStatus == 30">and lawo.work_order_status in (21,30) and lap.processing_status = '4' and lap.business_id = #{param.warehouseId} </if> <!-- <if test="param.handleStatus!= null and param.handleStatus == 10 ">and lawo.warehouse_id = #{param.warehouseId} </if>--> - <if test="param.handleStatus!= null and param.handleStatus == 20 ">and lawo.work_order_status in (80,100) and lap.processing_status = '4' </if> + <if test="param.handleStatus!= null and param.handleStatus == 20 ">and lawo.work_order_status in (80,100) and lacr.warehouse_id=#{param.warehouseId} </if> <if test="param.handleStatus != null "> or 1=1 </if> - <if test="param.warehouseId != null and param.warehouseId != '' "> and lap.business_id = #{param.warehouseId} </if> + <if test="param.warehouseId != null and param.warehouseId != '' and param.handleStatus != 20 "> and lap.business_id = #{param.warehouseId} </if> <if test="param.workOrderStatus != null and param.workOrderStatus != '' and param.handleStatus != 40 "> and lawo.work_order_status in ( #{param.workOrderStatus }) </if> <!-- <if test="param.workOrderStatus != null and param.workOrderStatus != '' and param.customerServiceState == null "> and lawo.work_order_status in ( #{param.workOrderStatus }) and lap.types_of = '2' </if>--> <if test="param.handleStatus != null and param.handleStatus == 40 "> and lawo.work_order_status in ('10','20' ) and lap.types_of = '2' and lap.processing_status in ('1') </if> <if test="param.handleStatus!= null and param.handleStatus == 10 ">and lap.types_of = '2' </if> - <if test="param.handleStatus!= null and param.handleStatus == 30">and lawo.work_order_status in (21,30) and lap.processing_status = '4' </if> - <if test="param.handleStatus!= null and param.handleStatus == 20 ">and lawo.work_order_status in (80,100) and lap.processing_status = '4' </if> + <if test="param.handleStatus!= null and param.handleStatus == 30">and lawo.work_order_status in (21,30,40) and lap.processing_status = '4' </if> + <if test="param.handleStatus!= null and param.handleStatus == 20 ">and lawo.work_order_status in (80,100) and lacr.warehouse_id=#{param.warehouseId} </if> ORDER BY lawo.create_time DESC </where> diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesProcessingResultsServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesProcessingResultsServiceImpl.java index b36448f8d..311d2ff7a 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesProcessingResultsServiceImpl.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesProcessingResultsServiceImpl.java @@ -121,8 +121,10 @@ public class AftersalesProcessingResultsServiceImpl extends BaseServiceImpl<Afte } }); } - - + if(ObjectUtil.isNotNull(aftersalesProcessingResults.getAssignList()) && ObjectUtil.isNotNull( aftersalesProcessingResults.getAssignList().get(0)) ){ + //删除 + aftersalesProcessingMoneyService.deleteLogic(aftersalesProcessingResults.getAssignList()); + } } return true; diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java index 7ea1865f5..351dea2b1 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java @@ -577,7 +577,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo aftersalesWorkOrder.remove("workOrderStatus"); aftersalesWorkOrder.put("customerServiceState","30"); }else if(ObjectUtils.isNotNull( workOrderStatus ) && WorkOrderStatusConstant.yiwanjei.getValue().equals(workOrderStatus)) { - + aftersalesWorkOrder.remove("workOrderStatus"); aftersalesWorkOrder.put("customerServiceState","10"); }else if( ObjectUtils.isNull( workOrderStatus ) ){ aftersalesWorkOrder.put("customerIdentification", "1"); @@ -621,11 +621,14 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo case "3": //职能客服 查询自己的待处理工单 if( ObjectUtils.isNotNull( workOrderStatus ) && "500".equals(workOrderStatus)){ aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("customerServiceState","30"); + aftersalesWorkOrder.put("customerServiceState","20"); aftersalesWorkOrder.put("customerServiceId",user.getUserId()); - }else{ + }else if(ObjectUtils.isNull(workOrderStatus)){ aftersalesWorkOrder.put("customerIdentification", "1"); - } + }else if( ObjectUtils.isNotNull( workOrderStatus ) && WorkOrderStatusConstant.yiwanjei.getValue().equals(workOrderStatus) ){ + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("customerServiceState","10"); + } break; } }else{ @@ -938,7 +941,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo ); //需要待回复的处理方 List<AftersalesProcessorVO> processorVOS = list.stream().map( i ->{ - if(i.getProcessingStatus().equals(ProcessorProcessingStatusStatusConstant.daichuli.getValue())){ + if(i.getProcessingStatus().equals(ProcessorProcessingStatusStatusConstant.daichuli.getValue()) || i.getProcessingStatus().equals(ProcessorProcessingStatusStatusConstant.yichuli.getValue())){ AftersalesProcessorVO processorVO = new AftersalesProcessorVO(); BeanUtil.copyProperties(i,processorVO); return processorVO; @@ -1494,11 +1497,23 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo }); }else{ Optional<AftersalesProcessorEntity> first = list.stream().filter(i -> i.getBusinessId().equals(myCurrentWarehouse.getId()) && i.getBusinessName().equals(myCurrentWarehouse.getName())).findFirst(); + //有包含的处理方 if(first.isPresent()){ AftersalesProcessorEntity processor = new AftersalesProcessorEntity(); processor.setProcessingStatus(ProcessorProcessingStatusStatusConstant.tijiaofang.getValue()); processor.setId(first.get().getId()); aftersalesProcessorService.updateById(processor); + }else{ + //没有 修改为回复的状态 + list.stream().forEach( i ->{ + AftersalesProcessorEntity processor = new AftersalesProcessorEntity(); + processor.setId(i.getId()); + if(i.getProcessingStatus().equals(ProcessorProcessingStatusStatusConstant.daichuli.getValue())){ + processor.setProcessingStatus(ProcessorProcessingStatusStatusConstant.weihuifuyichuli.getValue()); + aftersalesProcessorService.updateById(processor); + } + + }); } @@ -1682,42 +1697,47 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo //异常工单完结处理结果赔款方 if(!aftersalesWorkOrder.getCompletionRecordEntities().isEmpty()){ - //删除全部赔付方信息 - List<AftersalesCompletionRecordEntity> list = completionRecordService.list(Wrappers.<AftersalesCompletionRecordEntity>query().lambda() - .eq(AftersalesCompletionRecordEntity::getWorkOrderId, aftersalesWorkOrder.getId()) - ); - List<Long> collect = list.stream().map(AftersalesCompletionRecordEntity::getId).collect(Collectors.toList()); - if(!collect.isEmpty()){ - completionRecordService.deleteLogic(collect); + aftersalesWorkOrder.getCompletionRecordEntities().forEach(r ->{ + if(ObjectUtils.isNotNull(r.getId())){ + completionRecordService.updateById(r); + }else{ + completionRecordService.save(r); + } + }); + if(ObjectUtils.isNotNull( aftersalesWorkOrder.getAssignListRecord()) ){ + completionRecordService.deleteLogic(aftersalesWorkOrder.getAssignListRecord()); } - completionRecordService.saveBatch(aftersalesWorkOrder.getCompletionRecordEntities()); } //异常工单完结处理结果受款方 if(!aftersalesWorkOrder.getCompletionRecipientEntities().isEmpty()){ - List<AftersalesCompletionRecipientEntity> list = completionRecipientService.list(Wrappers.<AftersalesCompletionRecipientEntity>query().lambda() - .eq(AftersalesCompletionRecipientEntity::getWorkOrderId, aftersalesWorkOrder.getId()) - ); - List<Long> collect = list.stream().map(AftersalesCompletionRecipientEntity::getId).collect(Collectors.toList()); - if(!collect.isEmpty()){ - completionRecipientService.deleteLogic(collect); + aftersalesWorkOrder.getCompletionRecipientEntities().forEach(r ->{ + if(ObjectUtils.isNotNull( r.getId()) ){ + //修改 + completionRecipientService.updateById(r); + }else{ + //新增 + completionRecipientService.save(r); + } + }); + if(ObjectUtils.isNotNull(aftersalesWorkOrder.getAssignListRecipient())){ + //删除 + completionRecipientService.deleteLogic(aftersalesWorkOrder.getAssignListRecipient()); } - completionRecipientService.saveBatch(aftersalesWorkOrder.getCompletionRecipientEntities()); + } AftersalesWorkOrderEntity workOrderEntity = new AftersalesWorkOrderEntity(); if(ObjectUtils.isNotNull(aftersalesWorkOrder.getReasonArbitration())){ workOrderEntity.setId(aftersalesWorkOrder.getId()); workOrderEntity.setReasonArbitration(aftersalesWorkOrder.getReasonArbitration()); - } //修改工单状态 if(ObjectUtils.isNotNull(aftersalesWorkOrder.getTypesOf())){ workOrderEntity.setWorkOrderStatus(WorkOrderStatusConstant.yiwanjei.getValue()); - return baseMapper.updateById(workOrderEntity) > 0; - } else { - return true; } + return baseMapper.updateById(workOrderEntity) > 0; + } /**