From 8e14b053948c2cbdbe90c4e5d45fe296ea4daee3 Mon Sep 17 00:00:00 2001 From: caoyizhong <1270296080> Date: Mon, 11 Dec 2023 16:05:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=9E=E5=A4=8D=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/AftersaleSurveyRecordEntity.java | 7 +- .../AftersalesWorkOrderController.java | 23 ++++ .../service/IAftersalesWorkOrderService.java | 8 ++ .../AftersaleSurveyRecordServiceImpl.java | 2 +- .../impl/AftersalesWorkOrderServiceImpl.java | 117 +++++++++++++++--- 5 files changed, 138 insertions(+), 19 deletions(-) diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersaleSurveyRecordEntity.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersaleSurveyRecordEntity.java index 8b61fd6a1..92aec21c9 100644 --- a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersaleSurveyRecordEntity.java +++ b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersaleSurveyRecordEntity.java @@ -82,7 +82,7 @@ public class AftersaleSurveyRecordEntity extends TenantEntity { @ApiModelProperty(value = "类型") private String typesOf; /** - * 区别 + * 区别 1 调查记录 2 指定记录 3 操作记录 */ @ApiModelProperty(value = "区别") private String difference; @@ -117,6 +117,11 @@ public class AftersaleSurveyRecordEntity extends TenantEntity { */ @ApiModelProperty(value = "备注") private String remark; + /** + * 图片路径 + */ + @ApiModelProperty(value = "图片路径") + private String pictureUrl; diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java index fcacd9be9..41966aee3 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java @@ -18,6 +18,7 @@ package com.logpm.aftersales.controller; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.logpm.aftersales.dto.AftersalesWorkOrderDTO; +import com.logpm.aftersales.entity.AftersaleSurveyRecordEntity; import com.logpm.aftersales.excel.AftersalesWorkOrderImporter; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; import com.logpm.basicdata.feign.IBasicdataWarehouseClient; @@ -129,6 +130,28 @@ public class AftersalesWorkOrderController extends BladeController { return R.data(list); } + /** + * 工单调查记录表 新增调查记录 + */ + @PostMapping("/savaSurveyRecord") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增调查记录", notes = "传入aftersaleSurveyRecord") + public R savaSurveyRecord(@Valid @RequestBody AftersalesWorkOrderDTO aftersalesWorkOrderDTO) { + log.info("回复添加接口》》》{}", aftersalesWorkOrderDTO); + if(ObjectUtils.isNull(aftersalesWorkOrderDTO.getSurveyRecordDTO())){ + throw new ServiceException("调查数据不能为空"); + } + if(ObjectUtils.isNull(aftersalesWorkOrderDTO.getId())){ + throw new ServiceException("异常工单ID不能为空"); + } + if(ObjectUtils.isNull(aftersalesWorkOrderDTO.getProcessorEntityList())){ + throw new ServiceException("处理方信息不能为空"); + } + + return R.status(aftersalesWorkOrderService.savaSurveyRecord(aftersalesWorkOrderDTO)); + } + + /** * 客服异常工单 查询营业部责任人人员信息 */ diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesWorkOrderService.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesWorkOrderService.java index d2557d027..a7dcb37cf 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesWorkOrderService.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesWorkOrderService.java @@ -18,6 +18,7 @@ package com.logpm.aftersales.service; import com.logpm.aftersales.dto.AftersalesPackageScanDTO; import com.logpm.aftersales.dto.AftersalesWorkOrderDTO; +import com.logpm.aftersales.entity.AftersaleSurveyRecordEntity; import com.logpm.aftersales.entity.AftersalesWorkOrderEntity; import com.logpm.aftersales.vo.AftersalesAbnormalPackageVO; import com.logpm.aftersales.vo.AftersalesWorkOrderVO; @@ -178,4 +179,11 @@ public interface IAftersalesWorkOrderService extends BaseService getBusinessDepartmentUser(Long warehouseId); + + /** + * 添加调查结果 + * @param aftersalesWorkOrderDTO + * @return + */ + boolean savaSurveyRecord(AftersalesWorkOrderDTO aftersalesWorkOrderDTO); } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersaleSurveyRecordServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersaleSurveyRecordServiceImpl.java index d9c1540de..419c5e494 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersaleSurveyRecordServiceImpl.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersaleSurveyRecordServiceImpl.java @@ -68,7 +68,7 @@ public class AftersaleSurveyRecordServiceImpl extends BaseServiceImpl list = new ArrayList<>(); aftersalesWorkOrder.getProcessorEntityList().forEach(i ->{ - AftersalesProcessorEntity packageEntity = new AftersalesProcessorEntity(); - BeanUtil.copyProperties(i,packageEntity); - packageEntity.setWorkOrderId(aftersalesWorkOrder.getId()); - packageEntity.setConditions("1");//正常 - packageEntity.setProcessingStatus("1");//待处理 - packageEntity.setWarehouseId(myCurrentWarehouse.getId()); - list.add(packageEntity); + AftersalesProcessorEntity processor = addProcessor(aftersalesWorkOrder, myCurrentWarehouse, i); + list.add(processor); //添加记录 - if(ProcessorTypesOfStatusConstant.chulifang.getValue().equals(i.getProcessingStatus())){ + if(ProcessorTypesOfStatusConstant.chulifang.getValue().equals(i.getTypesOf())){ //处理方 - AftersaleSurveyRecordDTO surveyRecordDTO = changName(aftersalesWorkOrder, user); - surveyRecordDTO.setWorkOrderId(aftersalesWorkOrder.getId()); - surveyRecordDTO.setContent(aftersalesWorkOrder.getSurveyRecordDTO().getContent());//内容 - surveyRecordDTO.setTypesOf("1"); - surveyRecordDTO.setDifference("2"); - surveyRecordDTO.setFollowWarehouseName(i.getBusinessName()); - surveyRecordDTO.setFollowWarehouseId(i.getBusinessId()); - - aftersaleSurveyRecordService.saveOrUpdateOwn(surveyRecordDTO); + addSurveRecord(aftersalesWorkOrder, user, i); } }); @@ -886,4 +874,99 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl list = aftersalesProcessorService.list(Wrappers.query().lambda() + .eq(AftersalesProcessorEntity::getWorkOrderId, aftersalesWorkOrderDTO.getId()) + .eq(AftersalesProcessorEntity::getTypesOf,ProcessorTypesOfStatusConstant.chulifang.getValue()) + ); + //添加或修改新的处理方 + List processorEntityList = new ArrayList<>(); + aftersalesWorkOrderDTO.getProcessorEntityList().forEach( i ->{ + Optional first = list.stream().filter(a -> a.getBusinessId().equals(i.getBusinessId())).findFirst(); + + if(first.isPresent()){ + //修改处理方 处理状态 + updateProcessor(myCurrentWarehouse); + }else{ + //不存在 添加处理方信息 + AftersalesProcessorEntity processor = addProcessor(aftersalesWorkOrderDTO, myCurrentWarehouse, i); + processorEntityList.add(processor); + } + //添加指定处理结果 + //处理方 + addSurveRecord(aftersalesWorkOrderDTO, user, i); + }); + //添加处理方 + if(!processorEntityList.isEmpty()){ + aftersalesProcessorService.saveBatch(processorEntityList); + } + //添加回复信息 + AftersaleSurveyRecordDTO surveyRecordDTO = aftersalesWorkOrderDTO.getSurveyRecordDTO(); + + AftersaleSurveyRecordEntity surveyRecordEntity = new AftersaleSurveyRecordEntity(); + aftersaleSurveyRecordService.save(surveyRecordEntity); + + return true; + } + + /** + * 添加处理处理方信息 + * @param aftersalesWorkOrderDTO + * @param myCurrentWarehouse + * @param i + */ + private AftersalesProcessorEntity addProcessor(AftersalesWorkOrderDTO aftersalesWorkOrderDTO, BasicdataWarehouseEntity myCurrentWarehouse, AftersalesProcessorEntity i) { + AftersalesProcessorEntity packageEntity = new AftersalesProcessorEntity(); + BeanUtil.copyProperties(i,packageEntity); + packageEntity.setWorkOrderId(aftersalesWorkOrderDTO.getId()); + packageEntity.setConditions("1");//正常 + packageEntity.setProcessingStatus("1");//待处理 + packageEntity.setWarehouseId(myCurrentWarehouse.getId()); + return packageEntity; + } + + /** + * 添加操作记录 + * @param aftersalesWorkOrderDTO + * @param user + * @param i + * @return + */ + private Boolean addSurveRecord(AftersalesWorkOrderDTO aftersalesWorkOrderDTO, BladeUser user, AftersalesProcessorEntity i) { + AftersaleSurveyRecordDTO surveyRecordDTO = changName(aftersalesWorkOrderDTO, user); + surveyRecordDTO.setWorkOrderId(aftersalesWorkOrderDTO.getId()); + surveyRecordDTO.setContent(aftersalesWorkOrderDTO.getSurveyRecordDTO().getContent());//内容 + surveyRecordDTO.setTypesOf("1"); + surveyRecordDTO.setDifference("2"); + surveyRecordDTO.setFollowWarehouseName(i.getBusinessName()); + surveyRecordDTO.setFollowWarehouseId(i.getBusinessId()); + return aftersaleSurveyRecordService.saveOrUpdateOwn(surveyRecordDTO); + } + + /** + * 修改处理方状态 + * @param myCurrentWarehouse + * @return + */ + private Boolean updateProcessor(BasicdataWarehouseEntity myCurrentWarehouse) { + LambdaUpdateWrapper q = new LambdaUpdateWrapper<>(); + q.eq(AftersalesProcessorEntity::getBusinessName,myCurrentWarehouse.getName()); + q.eq(AftersalesProcessorEntity::getBusinessId,myCurrentWarehouse.getId()); + q.eq(AftersalesProcessorEntity::getTypesOf,ProcessorTypesOfStatusConstant.chulifang.getValue()); + q.set(AftersalesProcessorEntity::getProcessingStatus, ProcessorProcessingStatusStatusConstant.yichuli.getValue()); + return aftersalesProcessorService.update(q); + } + }