From c8d3e557037ba42efda92f64a57aca9ecb38b5e2 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Mon, 20 Jan 2025 10:11:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E9=83=A8=E5=88=86=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E3=80=81=E5=A4=87=E8=B4=A7BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vo/AftersalesWorkOrderAllPageVO.java | 0 .../vo/AftersalesWorkOrderAppealPageVO.java | 0 ...AftersalesWorkOrderCompensationPageVO.java | 0 .../vo/AftersalesWorkOrderEndPageVO.java | 0 .../vo/AftersalesWorkOrderExaminePageVO.java | 0 ...AftersalesWorkOrderInterventionPageVO.java | 0 .../vo/AftersalesWorkOrderProcessPageVO.java | 0 .../vo/AftersalesWorkOrderReplyPageVO.java | 0 .../vo/AftersalesWorkOrderTimeOutPageVO.java | 0 .../AftersalesWorkOrderController.java | 77 +- .../excel/AftersalesWorkOrderAllExcel.java | 0 .../excel/AftersalesWorkOrderAppealExcel.java | 0 ...ersalesWorkOrderCompensationPageExcel.java | 0 .../AftersalesWorkOrderCompleteExcel.java | 0 .../excel/AftersalesWorkOrderEndExcel.java | 0 .../AftersalesWorkOrderExamineExcel.java | 0 .../AftersalesWorkOrderInterventionExcel.java | 0 .../AftersalesWorkOrderProcessExcel.java | 0 .../excel/AftersalesWorkOrderReplyExcel.java | 0 .../AftersalesWorkOrderTimeOutExcel.java | 0 .../mapper/AftersalesWorkOrderMapper.java | 133 +- .../mapper/AftersalesWorkOrderMapper.xml | 3556 ++++++++++++++++- .../service/IAftersalesWorkOrderService.java | 41 +- .../impl/AftersalesWorkOrderServiceImpl.java | 1192 ++++-- .../mapper/DistributionStockupMapper.xml | 3 +- .../impl/DistributionStockupServiceImpl.java | 10 + 26 files changed, 4409 insertions(+), 603 deletions(-) create mode 100644 blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderAllPageVO.java create mode 100644 blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderAppealPageVO.java create mode 100644 blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderCompensationPageVO.java create mode 100644 blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderEndPageVO.java create mode 100644 blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderExaminePageVO.java create mode 100644 blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderInterventionPageVO.java create mode 100644 blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderProcessPageVO.java create mode 100644 blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderReplyPageVO.java create mode 100644 blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderTimeOutPageVO.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderAllExcel.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderAppealExcel.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderCompensationPageExcel.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderCompleteExcel.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderEndExcel.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderExamineExcel.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderInterventionExcel.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderProcessExcel.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderReplyExcel.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderTimeOutExcel.java diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderAllPageVO.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderAllPageVO.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderAppealPageVO.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderAppealPageVO.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderCompensationPageVO.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderCompensationPageVO.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderEndPageVO.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderEndPageVO.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderExaminePageVO.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderExaminePageVO.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderInterventionPageVO.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderInterventionPageVO.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderProcessPageVO.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderProcessPageVO.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderReplyPageVO.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderReplyPageVO.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderTimeOutPageVO.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderTimeOutPageVO.java new file mode 100644 index 000000000..e69de29bb 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 94c76b04d..6251bfe3d 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 @@ -41,6 +41,7 @@ import com.logpm.aftersales.service.IAftersalesCompletionRecipientService; import com.logpm.aftersales.service.IAftersalesCompletionRecordService; import com.logpm.aftersales.service.IAftersalesPersonResponsibleService; import com.logpm.aftersales.service.IAftersalesWorkOrderService; +import com.logpm.aftersales.vo.AftersalesPersonResponsibleVO; import com.logpm.aftersales.vo.AftersalesWorkOrderVO; import com.logpm.aftersales.wrapper.AftersalesWorkOrderWrapper; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; @@ -160,21 +161,7 @@ public class AftersalesWorkOrderController extends BladeController { } - /** - * 客服异常工单 查询异常工单完整数据集合 - */ - @PostMapping("/pageAllList") - @ApiOperationSupport(order = 2) - @ApiOperation(value = "查询异常工单完整数据集合", notes = "传入aftersalesWorkOrder") - public R ageAllList(@ApiIgnore @RequestBody AftersalesWorkOrderQueryDTO workOrderQueryDTO, Query query) { - try { - R r = aftersalesWorkOrderService.ageAllList(workOrderQueryDTO, Condition.getPage(query)); - return r; - } catch (Exception e) { - log.error("工单查询系统异常》》》{}", e.getMessage()); - return R.fail("系统异常!"); - } - } + @@ -297,7 +284,7 @@ public class AftersalesWorkOrderController extends BladeController { if (ObjectUtils.isNull(aftersalesWorkOrderDTO.getSurveyRecordDTO().getContent())) { throw new ServiceException("内容不能为空!!"); } - return R.status(aftersalesWorkOrderService.savaSurveyRecord(aftersalesWorkOrderDTO)); + return aftersalesWorkOrderService.savaSurveyRecord(aftersalesWorkOrderDTO); } catch (ServiceException s) { return R.fail(s.getMessage()); } catch (Exception e) { @@ -676,7 +663,6 @@ public class AftersalesWorkOrderController extends BladeController { log.error("填写钉钉流程号异常》》{}", e.getMessage()); return R.fail("系统异常!!!"); } - } /** @@ -695,14 +681,13 @@ public class AftersalesWorkOrderController extends BladeController { } try { aftersalesWorkOrder.setInitiationIdentification("PC"); - return R.status(aftersalesWorkOrderService.saveOrUpdateOwn(aftersalesWorkOrder)); + return aftersalesWorkOrderService.saveOrUpdateOwn(aftersalesWorkOrder); } catch (ServiceException s) { return R.fail(s.getMessage()); } catch (Exception e) { log.error("工单提交异常》》》{}", e.getMessage()); return R.fail(e.getMessage()); } - } @@ -1413,6 +1398,26 @@ public class AftersalesWorkOrderController extends BladeController { return R.success("操作成功"); } + /** + * 修改内部责任信息 + */ + @PostMapping("/updatePersonResponsible") + @ApiOperationSupport(order = 13) + @ApiOperation(value = "写入财务入账时间", notes = "传入aftersalesWorkOrder") + public R updatePersonResponsible(@Valid @RequestBody AftersalesWorkOrderVO aftersalesWorkOrderVO) { + + if (Objects.isNull(aftersalesWorkOrderVO.getPersonResponsibleVOS())){ + return R.fail("参数缺失,请联系管理员"); + } + if (Objects.isNull(aftersalesWorkOrderVO.getId())){ + return R.fail("参数缺失,请联系管理员"); + } + List personResponsibleVOS = aftersalesWorkOrderVO.getPersonResponsibleVOS(); + Long id = aftersalesWorkOrderVO.getId(); + return aftersalesWorkOrderService.updatePersonResponsible(id, personResponsibleVOS); + } + + /** * 写入财务入账时间 */ @@ -1431,4 +1436,38 @@ public class AftersalesWorkOrderController extends BladeController { } + + + + /** + * 客服异常工单 查询异常工单完整数据集合 + */ + @PostMapping("/newPage") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "查询", notes = "传入aftersalesWorkOrder") + public R newPage(@ApiIgnore @RequestBody AftersalesWorkOrderQueryDTO workOrderQueryDTO, Query query,@RequestParam Integer pageType) { + try { + R r = aftersalesWorkOrderService.newPage(workOrderQueryDTO,query,pageType); + return r; + } catch (Exception e) { + log.error("工单查询系统异常》》》{}", e.getMessage()); + return R.fail("系统异常!"); + } + } + + + + /** + * 客服异常工单 查询异常工单完整数据集合 + */ + @PostMapping("/newExport") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "查询", notes = "传入aftersalesWorkOrder") + public void newExport(@ApiIgnore @RequestBody AftersalesWorkOrderQueryDTO workOrderQueryDTO, Query query,@RequestParam Integer pageType,HttpServletResponse response) { + try { + aftersalesWorkOrderService.newExport(workOrderQueryDTO,query,pageType,response); + } catch (Exception e) { + log.error("工单查询系统异常》》》{}", e.getMessage()); + } + } } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderAllExcel.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderAllExcel.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderAppealExcel.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderAppealExcel.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderCompensationPageExcel.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderCompensationPageExcel.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderCompleteExcel.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderCompleteExcel.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderEndExcel.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderEndExcel.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderExamineExcel.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderExamineExcel.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderInterventionExcel.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderInterventionExcel.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderProcessExcel.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderProcessExcel.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderReplyExcel.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderReplyExcel.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderTimeOutExcel.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesWorkOrderTimeOutExcel.java new file mode 100644 index 000000000..e69de29bb diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.java index 91e8b8901..f904c81b6 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.java @@ -21,17 +21,14 @@ import com.logpm.aftersales.dto.AftersalesWorkOrderQueryDTO; import com.logpm.aftersales.entity.AftersalesProcessorEntity; import com.logpm.aftersales.entity.AftersalesSettlementEntity; import com.logpm.aftersales.entity.AftersalesWorkOrderEntity; -import com.logpm.aftersales.vo.AftersalesAbnormalPackageVO; -import com.logpm.aftersales.vo.AftersalesWorkOrderVO; -import com.logpm.aftersales.excel.AftersalesWorkOrderExcel; +import com.logpm.aftersales.excel.*; +import com.logpm.aftersales.vo.*; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Param; import java.util.Date; import java.util.List; -import java.util.Map; /** * 客服异常工单 Mapper 接口 @@ -135,12 +132,134 @@ public interface AftersalesWorkOrderMapper extends BaseMapper overTimeAfterSalesList(); + /** - * 工单查询列表 + * 查询工单全部列表 * @param page * @param workOrderQueryDTO + * @return + */ + IPage selectAllWorkOrderPage(IPage page, @Param("param") AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + IPage selectReplyWorkOrderPage(IPage page2,@Param("param") AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + /** + * 查询处理中工单 + * @param page3 + * @param workOrderQueryDTO + * @param warehouseIds + * @return + */ + IPage selectProcessWorkOrderPage(IPage page3,@Param("param") AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds,@Param("isWait") Integer isWait); + + /** + * 查询理赔金未出 + * @param page5 + * @param workOrderQueryDTO + * @param warehouseIds + * @return + */ + IPage selectCompensationWorkOrderPage(IPage page5,@Param("param") AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + IPage selectCompleteWorkOrderPage(IPage page6,@Param("param") AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + /** + * 查询客服介入列表 + * @param page7 + * @param workOrderQueryDTO + * @param warehouseIds + * @return + */ + IPage selectInterventioWorkOrderPage(IPage page7,@Param("param") AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds")List warehouseIds); + + IPage selectExamineWorkOrderPage(IPage page7,@Param("param") AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + IPage selectEndWorkOrderPage(IPage page8,@Param("param") AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + + IPage selectAppealWorkOrderPage(IPage page9, @Param("param")AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + IPage selectTimeOutWorkOrderPage(IPage page10,@Param("param") AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + /** + * 查询所有列表导出数据 + * @param workOrderQueryDTO + * @param warehouseIds + * @return + */ + List selectAllWorkOrderExcelData(@Param("param")AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + /** + * 待回复导出 + * @param workOrderQueryDTO + * @param warehouseIds + * @return + */ + List selectReplyWorkOrderExcelData(@Param("param")AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + /** + * 查询待处理和处理中的导出数据 + * @param workOrderQueryDTO + * @param warehouseIds + * @param i + * @return + */ + List selectProcessWorkOrderExcelData(@Param("param")AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds,@Param("isWait") int isWait); + + /** + * 查询理赔金未出导出数据 + * @param workOrderQueryDTO + * @param warehouseIds + * @return + */ + List selectCompensationWorkOrderExcelData(@Param("param")AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + /** + * 处理完毕导出数据 + * @param workOrderQueryDTO + * @param warehouseIds + * @return + */ + List selectCompleteWorkOrderExcelData(@Param("param")AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + /** + * 查询待审核导出数据 + * @param workOrderQueryDTO + * @param warehouseIds + * @return + */ + List selectExamineWorkOrderExcelData(@Param("param")AftersalesWorkOrderQueryDTO workOrderQueryDTO, @Param("warehouseIds")List warehouseIds); + + /** + * 查询完结导出数据 + * @param workOrderQueryDTO + * @param warehouseIds + * @return + */ + List selectEndWorkOrderExcelData(@Param("param")AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + /** + * 查询申述列表导出数据 + * @param workOrderQueryDTO + * @param warehouseIds + * @return + */ + List selectAppealWorkOrderExcelData(@Param("param")AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + /** + * 查询超时导出数据 + * @param workOrderQueryDTO + * @param warehouseIds + * @return + */ + List selectTimeOutWorkOrderExcelData(@Param("param")AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); + + + /** + * 客服介入导出 + * @param workOrderQueryDTO * @param warehouseIds * @return */ - IPage pageAllList(IPage page,@Param("param") AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseId") List warehouseIds); + List selectInterventioWorkOrderExcelDta(@Param("param")AftersalesWorkOrderQueryDTO workOrderQueryDTO,@Param("warehouseIds") List warehouseIds); } 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 4e6eff028..c77671792 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 @@ -90,7 +90,7 @@ lawo.person_responsible, lawo.process_number, lawo.customer_service_name customerServiceName, - lawo.warehouse_id warehouseId, + lap.business_id warehouseId, lawo.investigation_process investigationProcess, lawo.customer_service_id customerServiceId, lawo.compensation_money totalAmountNum, @@ -295,8 +295,8 @@ 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 ) + AND lap.is_deleted = 0 + AND lap.conditions IN ( 1, 3 ) LEFT JOIN logpm_aftersales_completion_record lacr ON lacr.work_order_id = lawo.id AND lacr.is_deleted = '0' LEFT JOIN (SELECT @@ -442,13 +442,12 @@ FROM logpm_aftersales_work_order lawo LEFT JOIN logpm_aftersales_processor lap ON lawo.id = lap.work_order_id - LEFT JOIN logpm_aftersales_completion_record lacr ON lacr.work_order_id = lawo.id + AND lap.is_deleted = 0 + AND lap.conditions IN ( 1, 3 ) + LEFT JOIN logpm_aftersales_completion_record lacr ON lacr.work_order_id = lawo.id AND lacr.is_deleted = '0' LEFT JOIN logpm_aftersales_abnormal_package AS laap ON laap.work_order_id = lawo.id lawo.is_deleted = 0 - AND lap.types_of = '2' - AND lap.conditions IN ( 1, 2 ) - AND lacr.is_deleted = '0' and lawo.id IN @@ -803,14 +802,15 @@ 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 ) + AND lacr.is_deleted = 0 + AND lap.conditions IN ( 1, 3 ) LEFT JOIN logpm_aftersales_completion_record lacr ON lacr.work_order_id = lawo.id AND lacr.is_deleted = '0' left join logpm_aftersales_abnormal_package laap on lawo.id = laap.work_order_id + lawo.is_deleted = 0 - lawo.warehouse_id in + lap.business_id in #{item} @@ -956,8 +956,8 @@ 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 ) + AND lap.is_deleted = 0 + AND lap.conditions IN ( 1, 3 ) LEFT JOIN logpm_aftersales_completion_record lacr ON lacr.work_order_id = lawo.id AND lacr.is_deleted = '0' LEFT JOIN (SELECT @@ -1131,8 +1131,7 @@ 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 ) + AND lap.conditions IN ( 1, 3) AND lap.is_deleted = 0 LEFT JOIN logpm_aftersales_completion_record lacr ON lacr.work_order_id = lawo.id AND lacr.is_deleted = 0 @@ -1249,158 +1248,3447 @@ FROM logpm_aftersales_processor AS lbp WHERE - lbp.types_of != 3 - AND lbp.processing_status = 1 + lbp.types_of = 2 + AND lbp.processing_status IN ('1','3') AND lbp.is_deleted = 0 - AND DATEDIFF(DATE_FORMAT(lbp.create_time,'%y%m%d'), DATE_FORMAT('2025-01-01','%y%m%d')) <= -3 - AND DATE_FORMAT(lbp.create_time,'%y%m%d') >= DATE_FORMAT( '2025-01-01', '%y%m%d' ) + AND DATEDIFF(DATE_FORMAT(lbp.create_time,'%y%m%d'), DATE_FORMAT(now(),'%y%m%d')) <= -3 + - + SELECT + t.* FROM - logpm_aftersales_work_order lawo - LEFT JOIN logpm_aftersales_completion_record lacr ON lacr.work_order_id = lawo.id - AND lacr.is_deleted = '0' - LEFT JOIN ( + ( SELECT - a.id, - group_concat( DISTINCT b.`first` SEPARATOR ',' ) AS `first`, - group_concat( DISTINCT b.secondary SEPARATOR ',' ) AS secondary, - group_concat( DISTINCT b.brand_name SEPARATOR ',' ) AS brand_name, - group_concat( DISTINCT b.package_code SEPARATOR ',' ) AS package_code, - group_concat( DISTINCT b.waybill_number SEPARATOR ',' ) AS waybill_number + lawo.id AS id, + lawo.work_order_type AS workOrderType, + CASE + lawo.work_order_type + WHEN 1 THEN + '货损' + WHEN 2 THEN + '少货' + WHEN 3 THEN + '窜货' + WHEN 4 THEN + '加急' + WHEN 5 THEN + '其他' ELSE '未知类型' + END workOrderTypeName, + lawo.discovery_node AS discoveryNode, + CASE + lawo.discovery_node + WHEN 1 THEN + '提货环节' + WHEN 2 THEN + '发货环节' + WHEN 3 THEN + '干线卸车环节' + WHEN 4 THEN + '库内作业环节' + WHEN 5 THEN + '配送装车环节' + WHEN 6 THEN + '配送签收环节' + WHEN 7 THEN + '安装环节' + WHEN 7 THEN + '其他' ELSE '未知节点' + END discoveryNodeName, + lawo.warehouse_name AS warehouseName, + lawo.work_order_number AS workOrderNumber, + GROUP_CONCAT( DISTINCT laap.waybill_number ) AS waybillNumber, + GROUP_CONCAT( DISTINCT laap.order_code ) AS orderCode, + GROUP_CONCAT( DISTINCT laap.package_code ) AS packageCode , + GROUP_CONCAT( DISTINCT laap.brand_name ) AS brandName , + lawo.waybill_mall AS waybillMall, + GROUP_CONCAT( DISTINCT laap.`first` ) AS first, + GROUP_CONCAT( DISTINCT laap.secondary ) AS secondary, + GROUP_CONCAT( DISTINCT laap.third_product ) AS thirdProduct, + lawo.work_order_status AS workOrderStatus, + CASE + lawo.work_order_status + WHEN '10' THEN + '待处理' + WHEN '20' THEN + '处理中' + WHEN '30' THEN + '已处理' + WHEN '40' THEN + '待审核' + WHEN '50' THEN + '已审核' + WHEN '60' THEN + '超时未处理' + WHEN '70' THEN + '客服介入中' + WHEN '80' THEN + '仲裁中' + WHEN '90' THEN + '理赔金额未出' + WHEN '21' THEN + '处理结果已提交' + WHEN '100' THEN + '申述中' + WHEN '110' THEN + '已结束' ELSE '未知状态' + END workOrderStatusName, + lawo.processed_by AS processedBy, + lawo.responsible_person AS responsiblePerson, + lawo.create_time AS createTime , + ( lawo.create_time + INTERVAL 3 DAY ) AS endCreateTime, + lawo.update_time AS updateTime, + GROUP_CONCAT( lapr.result_type ) AS resultType, + IFNULL( SUM( lapr.money ), 0 ) AS money, + lawo.warehouse_service_name AS warehouseServiceName, + lawo.headquarters_name AS headquartersName, + lawo.over_time AS overTime, + IF + ( + count( laa.id ) > 1, + '是', + IF + ( count( laa.id ) IS NOT NULL, '', '否' )) AS isAppeal, + laa.types_of AS appealStatus, + CASE + laa.types_of + WHEN 0 THEN '待处理' + WHEN 1 THEN '成立' + WHEN 2 THEN '驳回' ELSE NULL + END AS appealStatusName, + lawo.process_number AS processNumber, + lawo.entry_time AS entryTime, + DATE_FORMAT( lawo.entry_time, '%Y-%m' ) AS entryMonthTime FROM - logpm_aftersales_work_order AS a - LEFT JOIN logpm_aftersales_abnormal_package AS b ON a.id = b.work_order_id - WHERE - a.is_deleted = 0 - AND b.is_deleted = 0 - GROUP BY - a.id - ) AS t ON t.id = lawo.id - LEFT JOIN logpm_aftersales_processor AS lap ON lawo.id = lap.work_order_id - AND lap.is_deleted = 0 + logpm_aftersales_work_order AS lawo + LEFT JOIN logpm_aftersales_processor lap ON lawo.id = lap.work_order_id + AND lap.conditions IN ( 1, 3 ) + LEFT JOIN logpm_aftersales_abnormal_package AS laap ON laap.work_order_id = lawo.id + AND laap.is_deleted = 0 LEFT JOIN logpm_aftersales_processing_results AS lapr ON lapr.work_order_id = lawo.id AND lapr.is_deleted = 0 - AND lap.types_of != '3' - AND lap.types_of != '3' + LEFT JOIN logpm_aftersales_appeal AS laa ON laa.work_order_id = lawo.id + AND laa.is_deleted = 0 + AND laa.types_of != 2 + WHERE + lawo.is_deleted = 0 + + AND lap.business_id IN + + #{warehouseId} + + + + AND lawo.work_order_number in + + #{workOrderNumber} + + + + AND laap.order_code in + + #{orderCode} + + + + AND DATE_FORMAT(lawo.create_time,'%y%m%d') between DATE_FORMAT(#{param.startCreateTime},'%y%m%d') and DATE_FORMAT(#{param.endCreateTime},'%y%m%d') + + + AND DATE_FORMAT(lawo.create_time,'%y%m%d') = DATE_FORMAT(#{param.createTime},'%y%m%d') + + + AND DATE_FORMAT(lawo.update_time,'%y%m%d') = DATE_FORMAT(#{param.updateTime},'%y%m%d') + + GROUP BY + lawo.id + ORDER BY + lawo.create_time DESC + ) AS t - lawo.is_deleted = 0 - - and lawo.work_order_number in - - #{workOrderNumber} - + + t.workOrderType = #{param.workOrderType} - - and lawo.order_code in - - #{orderCode} - + + AND t.discoveryNode = #{param.discoveryNode} - - and lawo.create_time between #{param.startCreateTime} and #{param.endCreateTime} + + AND t.workOrderNumber LIKE CONCAT('%',#{param.workOrderNumber},'%') - - and lawo.ceator like concat('%', #{param.ceator },'%') + + AND t.waybillNumber LIKE CONCAT('%',#{param.waybillNumber},'%') - - and lap.business_id IN - - #{warehouseId} - + + AND t.orderCode LIKE CONCAT('%',#{param.orderCode},'%') - - and lawo.workOrder_type = #{param.ceator } + + AND t.packageCode LIKE CONCAT('%',#{param.packageCode},'%') - - and lawo.discovery_node = #{param.discoveryNode } + + AND t.brandName LIKE CONCAT('%',#{param.brandName},'%') - - and lawo.work_order_number like concat('%',#{param.workOrderNumber },'%') + + AND t.waybillMall LIKE CONCAT('%',#{param.waybillMall},'%') - - and lawo.waybill_number like concat('%',#{param.waybillNumber },'%') + + AND t.waybillMall LIKE CONCAT('%',#{param.first},'%') - - and lawo.order_code like concat('%',#{param.orderCode },'%') + + + AND t.workOrderStatus =#{param.workOrderStatus} - - and lawo.order_code like concat('%',#{param.orderCode },'%') + + AND t.processedBy LIKE CONCAT('%',#{param.processedBy},'%') - - and lawo.package_code like concat('%',#{param.packageCode },'%') + + AND t.responsiblePerson LIKE CONCAT('%',#{param.responsiblePerson},'%') - - and lawo.brand_name like concat('%',#{param.brandName },'%') + + AND t.resultType LIKE CONCAT('%',#{param.resultType},'%') - - and lawo.waybill_mall like concat('%',#{param.waybillMall },'%') + + AND t.warehouseServiceName LIKE CONCAT('%',#{param.warehouseServiceName},'%') - - and lawo.first like concat('%',#{param.first },'%') + + AND t.headquartersName LIKE CONCAT('%',#{param.headquartersName},'%') - - and lawo.work_order_status = #{param.workOrderStatus } + + AND t.first LIKE CONCAT('%',#{param.first},'%') - - and lawo.processed_by like concat('%',#{param.processedBy },'%') + + + + + + + + + + + + + + + + + + + + + + + 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 f58fb41f2..7ac2418de 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 @@ -24,15 +24,18 @@ import com.logpm.aftersales.entity.AftersalesAppealEntity; import com.logpm.aftersales.entity.AftersalesSettlementEntity; import com.logpm.aftersales.entity.AftersalesWorkOrderEntity; import com.logpm.aftersales.vo.AftersalesAbnormalPackageVO; +import com.logpm.aftersales.vo.AftersalesPersonResponsibleVO; import com.logpm.aftersales.vo.AftersalesWorkOrderVO; import com.logpm.aftersales.excel.AftersalesWorkOrderExcel; import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; import org.springblade.core.mp.base.BaseService; +import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.tool.api.R; import org.springblade.system.entity.User; +import javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.List; import java.util.Map; @@ -66,9 +69,9 @@ public interface IAftersalesWorkOrderService extends BaseService page); + R newPage(AftersalesWorkOrderQueryDTO workOrderQueryDTO, Query query,Integer pageType); + + + /** + * 导出 + * @param workOrderQueryDTO + * @param query + * @param pageType + * @param response + */ + void newExport(AftersalesWorkOrderQueryDTO workOrderQueryDTO, Query query, Integer pageType, HttpServletResponse response); + + + R updatePersonResponsible(Long id, List personResponsibleVOS); + } 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 1fb826a4f..53c90c3da 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 @@ -29,7 +29,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.logpm.aftersales.bean.Resp; import com.logpm.aftersales.dto.*; import com.logpm.aftersales.entity.*; -import com.logpm.aftersales.excel.AftersalesWorkOrderExcel; +import com.logpm.aftersales.excel.*; import com.logpm.aftersales.mapper.AftersalesAbnormalPackageMapper; import com.logpm.aftersales.mapper.AftersalesAppealMapper; import com.logpm.aftersales.mapper.AftersalesCustomerMallMapper; @@ -53,9 +53,13 @@ import org.springblade.common.constant.DictTimeoutEnum; import org.springblade.common.constant.aftersales.*; import org.springblade.common.constant.basiccode.BasicCodeShowConstant; import org.springblade.common.constant.basiccode.BasicCodeTypeConstant; +import org.springblade.common.constant.common.RoleConstant; import org.springblade.common.exception.CustomerException; +import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; @@ -66,10 +70,12 @@ import org.springblade.system.cache.DictBizCache; import org.springblade.system.entity.DictBiz; import org.springblade.system.entity.User; import org.springblade.system.feign.ISysClient; +import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserSearchClient; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.Duration; @@ -110,7 +116,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl { - if ("1".equals(k)) { - //责任人 - String collect = v.stream().map(AftersalesProcessorEntity::getBusinessName).collect(Collectors.joining(",")); - aftersalesWorkOrder.setResponsiblePerson(collect); - } else { - String collect = v.stream().map(AftersalesProcessorEntity::getBusinessName).collect(Collectors.joining(",")); - aftersalesWorkOrder.setProcessedBy(collect); - } - - }); - } - - if (!Func.isEmpty(aftersalesWorkOrder.getVehicleRoute())) { - if (aftersalesWorkOrder.getVehicleRoute().indexOf(">") > 0) { - String string = aftersalesWorkOrder.getVehicleRoute().replaceAll(">", ">"); - aftersalesWorkOrder.setVehicleRoute(string); + public R extractedSaveAndUpdate(AftersalesWorkOrderDTO aftersalesWorkOrder, BladeUser user, BasicdataWarehouseEntity myCurrentWarehouse) { + + String method = "#########################AftersalesWorkOrderServiceImpl.newAftersalesWorkOrderSave"; + //根据工单类型进行参数校验 + if (Objects.isNull(aftersalesWorkOrder.getDiscoveryNode())) { + log.info(method + "aftersalesWorkOrder.getDiscoveryNode()参数缺失"); + return R.fail("参数缺失,请联系管理"); + } + if (Objects.isNull(aftersalesWorkOrder.getWorkOrderType())) { + log.info(method + "aftersalesWorkOrder.getWorkOrderType()参数缺失"); + return R.fail("参数缺失,请联系管理"); + } + if (Objects.isNull(aftersalesWorkOrder.getPackageEntityList())) { + log.info(method + "aftersalesWorkOrder.getPackageEntityList()参数缺失"); + return R.fail("参数缺失,请联系管理"); + } + if (Objects.isNull(aftersalesWorkOrder.getProcessorEntityList())) { + log.info(method + "aftersalesWorkOrder.getProcessorEntityList()参数缺失"); + return R.fail("请选择工单处理方"); + } + //基础信息数据校验 + //运单商场 + if (Objects.isNull(aftersalesWorkOrder.getWaybillMall())) { + log.info(method + "aftersalesWorkOrder.getWaybillMall()参数缺失"); + return R.fail("请填写运单商场信息"); + } + //调查经过 + if (Objects.isNull(aftersalesWorkOrder.getInvestigationProcess())) { + log.info(method + "aftersalesWorkOrder.getInvestigationProcess()参数缺失"); + return R.fail("请填写调查经过"); + } + if (Objects.isNull(AuthUtil.getUser())) { + log.info(method + "AuthUtil.getUser()获取当前登录人信息错误"); + return R.fail("当前登录人信息错误,请重新登陆"); + } + //判断是否为仓库客服 + boolean isWarehouseCustomerService = judgeIsWarehouseCustomerService(user); + if (!isWarehouseCustomerService) { + return R.fail("当前登录人无此操作权限"); + } + String discoveryNode = aftersalesWorkOrder.getDiscoveryNode(); + String workOrderType = aftersalesWorkOrder.getWorkOrderType(); + String investigationProcess = aftersalesWorkOrder.getInvestigationProcess(); + //进行处理结果处理 + List processorEntityList = aftersalesWorkOrder.getProcessorEntityList(); + //进行处理方的保存 + //公共参数校验 + String waybillMall = aftersalesWorkOrder.getWaybillMall(); + AftersalesWorkOrderEntity workOrderEntity = generateBasicAftersalesWorkOrderEntity(myCurrentWarehouse, + user, + discoveryNode, + workOrderType, + investigationProcess); + workOrderEntity.setWaybillMall(waybillMall); + switch (discoveryNode) { + //指定参数校验 + case "1": + case "6": + break; + case "2": + //需要校验发货时间 + if (Objects.isNull(aftersalesWorkOrder.getDeliverGoodsTime())) { + return R.fail("请选择发货时间"); } - } - baseMapper.insert(aftersalesWorkOrder); - //保存一个自己的处理方数据 - AftersalesProcessorEntity aftersalesProcessorEntity = new AftersalesProcessorEntity(); - aftersalesProcessorEntity.setConditions("1"); - aftersalesProcessorEntity.setTypesOf("3"); - aftersalesProcessorEntity.setBusinessId(myCurrentWarehouse.getId()); - aftersalesProcessorEntity.setBusinessName(myCurrentWarehouse.getName()); - aftersalesProcessorEntity.setWarehouseId(myCurrentWarehouse.getId()); - aftersalesProcessorEntity.setWorkOrderId(aftersalesWorkOrder.getId()); - aftersalesProcessorEntity.setProcessingStatus("5"); - aftersalesProcessorService.save(aftersalesProcessorEntity); - } else { - //修改 -// if (ObjectUtil.isNotNull(aftersalesWorkOrder.getUnPpackageEntityList())) { - //删除修改包件 -// aftersalesAbnormalPackageService.deleteLogic(aftersalesWorkOrder.getUnPpackageEntityList()); -// } - LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate() - .set(AftersalesAbnormalPackageEntity::getIsDeleted, 1) - .eq(AftersalesAbnormalPackageEntity::getWorkOrderId, aftersalesWorkOrder.getId()); - aftersalesAbnormalPackageService.update(updateWrapper); -// if (ObjectUtil.isNotNull(aftersalesWorkOrder.getUnProcessorEntityList())) { -// //责任方 处理方 -//// List list = new ArrayList<>(); -// aftersalesWorkOrder.getUnProcessorEntityList().forEach(i -> { -// AftersalesProcessorEntity processorEntity = new AftersalesProcessorEntity(); -// processorEntity.setId(i); -// processorEntity.setConditions("3"); -// if (ObjectUtils.isNotNull(aftersalesWorkOrder.getProcessorEntityList())) { -// aftersalesWorkOrder.getProcessorEntityList().stream().collect(Collectors.groupingBy(AftersalesProcessorEntity::getTypesOf)) -// .forEach((k, v) -> { -// if ("1".equals(k)) { -// //责任人 -// String collect = v.stream().map(AftersalesProcessorEntity::getBusinessName).collect(Collectors.joining(",")); -// aftersalesWorkOrder.setResponsiblePerson(collect); -// } else { -// String collect = v.stream().map(AftersalesProcessorEntity::getBusinessName).collect(Collectors.joining(",")); -// aftersalesWorkOrder.setProcessedBy(collect); -// } -// -// }); -// } -// aftersalesProcessorService.updateById(processorEntity); -//// list.add(processorEntity); -// }); -//// if(!list.isEmpty()){ -//// aftersalesProcessorService.saveOrUpdateBatch(list); -//// } -// } - LambdaUpdateWrapper processorEntityLambdaUpdateWrapper = Wrappers.lambdaUpdate() - .set(AftersalesProcessorEntity::getIsDeleted, 1) - .eq(AftersalesProcessorEntity::getWorkOrderId, aftersalesWorkOrder.getId()); - aftersalesProcessorService.update(processorEntityLambdaUpdateWrapper); -// if (ObjectUtil.isNotNull(aftersalesWorkOrder.getUnDecreaseImageEntityList()) && !aftersalesWorkOrder.getUnDecreaseImageEntityList().isEmpty()) { -// //图片修改 -// aftersalesDecreaseImageService.deleteLogic(aftersalesWorkOrder.getUnDecreaseImageEntityList()); -// } - LambdaUpdateWrapper imageEntityLambdaUpdateWrapper = Wrappers.lambdaUpdate() - .set(AftersalesDecreaseImageEntity::getIsDeleted, 1) - .eq(AftersalesDecreaseImageEntity::getWorkOrderId, aftersalesWorkOrder.getId()); - aftersalesDecreaseImageService.update(imageEntityLambdaUpdateWrapper); - //修改调查经过 - if (ObjectUtils.isNotNull(aftersalesWorkOrder.getSurveyRecordDTO())) { - aftersalesWorkOrder.setInvestigationProcess(aftersalesWorkOrder.getSurveyRecordDTO().getContent()); - } - //修改责任方 -// if (ObjectUtils.isNotNull(aftersalesWorkOrder.getUnPersonResponsibleDTO())) { -// aftersalesPersonResponsibleService.deleteLogic(aftersalesWorkOrder.getUnPersonResponsibleDTO()); -// } - LambdaUpdateWrapper personResponsibleEntityLambdaUpdateWrapper = Wrappers.lambdaUpdate() - .set(AftersalesPersonResponsibleEntity::getIsDeleted, 1) - .eq(AftersalesPersonResponsibleEntity::getWordOrderId, aftersalesWorkOrder.getId()); - aftersalesPersonResponsibleService.update(personResponsibleEntityLambdaUpdateWrapper); - //修改赔款方 -// if (ObjectUtils.isNotNull(aftersalesWorkOrder.getUnCompletionRecordEntities())) { -// completionRecordService.deleteLogic(aftersalesWorkOrder.getUnCompletionRecordEntities()); -// } - LambdaUpdateWrapper completionRecordEntityLambdaUpdateWrapper = Wrappers.lambdaUpdate() - .set(AftersalesCompletionRecordEntity::getIsDeleted, 1) - .eq(AftersalesCompletionRecordEntity::getWorkOrderId, aftersalesWorkOrder.getId()); - completionRecordService.update(completionRecordEntityLambdaUpdateWrapper); - //修改收款方 -// if (ObjectUtils.isNotNull(aftersalesWorkOrder.getUnCompletionRecipientEntities())) { -// completionRecipientService.deleteLogic(aftersalesWorkOrder.getUnCompletionRecipientEntities()); -// } - LambdaUpdateWrapper completionRecipientEntityLambdaUpdateWrapper = Wrappers.lambdaUpdate() - .set(AftersalesCompletionRecipientEntity::getIsDeleted, 1) - .eq(AftersalesCompletionRecipientEntity::getWorkOrderId, aftersalesWorkOrder.getId()); - completionRecipientService.update(completionRecipientEntityLambdaUpdateWrapper); - // - baseMapper.updateById(aftersalesWorkOrder); - } - //添加包件信息 - if (ObjectUtils.isNotNull(aftersalesWorkOrder.getPackageEntityList())) { - List packageEntityList = aftersalesWorkOrder.getPackageEntityList(); - if (!packageEntityList.isEmpty()) { - List collect = packageEntityList.stream().filter(f -> Objects.isNull(f.getFirst())).map(AftersalesAbnormalPackageEntity::getPackageCode).collect(Collectors.toList()); - if (!collect.isEmpty()) { - throw new RuntimeException(collect.stream().collect(Collectors.joining(",")) + "无一级品信息"); + workOrderEntity.setDeliverGoodsTime(aftersalesWorkOrder.getDeliverGoodsTime()); + break; + case "3": + //车次号、车辆线路、责任方 + if (Objects.isNull(aftersalesWorkOrder.getTrainNumber())) { + return R.fail("请填写车次信息"); } - } - //包件信息 - List list = new ArrayList<>(); - aftersalesWorkOrder.getPackageEntityList().forEach(i -> { - if (ObjectUtils.isNotNull(i.getId())) { - //修改包件信息 -// AftersalesAbnormalPackageEntity abnormalPackage = new AftersalesAbnormalPackageEntity(); - aftersalesAbnormalPackageService.updateById(i); - } else { - //添加 - AftersalesAbnormalPackageEntity packageEntity = new AftersalesAbnormalPackageEntity(); - BeanUtil.copyProperties(i, packageEntity); - packageEntity.setWorkOrderId(aftersalesWorkOrder.getId()); - packageEntity.setWarehouseId(myCurrentWarehouse.getId()); - list.add(packageEntity); + if (Objects.isNull(aftersalesWorkOrder.getVehicleRoute())) { + return R.fail("请填写线路信息"); } - }); - if (!list.isEmpty()) { - aftersalesAbnormalPackageService.saveBatch(list); - } - } - AftersaleSurveyRecordEntity aftersaleSurveyRecord = new AftersaleSurveyRecordEntity(); - //添加调查记录 - if (ObjectUtils.isNotNull(aftersalesWorkOrder.getSurveyRecordDTO())) { - AftersaleSurveyRecordDTO surveyRecordDTO = changName(aftersalesWorkOrder, user); - BeanUtil.copyProperties(surveyRecordDTO, aftersaleSurveyRecord); - aftersaleSurveyRecord.setTypesOf("1"); - aftersaleSurveyRecord.setDifference("1"); - aftersaleSurveyRecord.setWorkOrderId(aftersalesWorkOrder.getId()); - aftersaleSurveyRecord.setProcessingResults(surveyRecordDTO.getContent()); - aftersaleSurveyRecordService.save(aftersaleSurveyRecord); - } - //添加责任方 处理方 - if (ObjectUtils.isNotNull(aftersalesWorkOrder.getProcessorEntityList())) { - //责任方 处理方 - List list = new ArrayList<>(); - aftersalesWorkOrder.getProcessorEntityList().forEach(i -> { - AftersalesProcessorEntity processor = addProcessor(aftersalesWorkOrder, myCurrentWarehouse, i); -// list.add(processor); - //添加指派记录 - if (ProcessorTypesOfStatusConstant.chulifang.getValue().equals(i.getTypesOf())) { - //处理方 - addSurveRecord(aftersalesWorkOrder, user, i); - processor.setAssignTime(new Date()); - list.add(processor); - } else { - list.add(processor); + workOrderEntity.setTrainNumber(aftersalesWorkOrder.getTrainNumber()); + if (!Func.isEmpty(aftersalesWorkOrder.getVehicleRoute())) { + if (aftersalesWorkOrder.getVehicleRoute().indexOf(">") > 0) { + String string = aftersalesWorkOrder.getVehicleRoute().replaceAll(">", ">"); + workOrderEntity.setVehicleRoute(string); + } } - aftersalesProcessorService.save(processor); - if (ProcessorTypesOfStatusConstant.chulifang.getValue().equals(i.getTypesOf())) { - AftersalesReplyingPartyEntity replyingPartyEntity = getPartyEntity(aftersalesWorkOrder, processor, aftersaleSurveyRecord); - //添加待回复信息 - aftersalesReplyingPartyService.save(replyingPartyEntity); + break; + case "4": + //入库时间、发现时间 + if (Objects.isNull(aftersalesWorkOrder.getDiscoveryTime())) { + return R.fail("请填写发现时间"); } - }); - - } - //添加图片信息 - if (ObjectUtils.isNotNull(aftersalesWorkOrder.getDecreaseImageEntityList())) { - //货损图片 - List list = new ArrayList<>(); - aftersalesWorkOrder.getDecreaseImageEntityList().forEach(i -> { - AftersalesDecreaseImageEntity packageEntity = new AftersalesDecreaseImageEntity(); - BeanUtil.copyProperties(i, packageEntity); - packageEntity.setWorkOrderId(aftersalesWorkOrder.getId()); - packageEntity.setWarehouseId(myCurrentWarehouse.getId()); - list.add(packageEntity); - }); - if (!list.isEmpty()) { - aftersalesDecreaseImageService.saveBatch(list); + if (Objects.isNull(aftersalesWorkOrder.getWarehousingTime())) { + return R.fail("请填写入库时间"); + } + workOrderEntity.setDiscoveryTime(aftersalesWorkOrder.getDiscoveryTime()); + workOrderEntity.setWarehousingTime(aftersalesWorkOrder.getWarehousingTime()); + break; + case "5": + //车次号、配送时间、配送司机、发现时间 + if (Objects.isNull(aftersalesWorkOrder.getTrainNumber())) { + return R.fail("请填写车次信息"); + } + if (Objects.isNull(aftersalesWorkOrder.getDeliveryTime())) { + return R.fail("请填写配送时间"); + } + if (Objects.isNull(aftersalesWorkOrder.getDeliveryDriver())) { + return R.fail("请填写司机信息"); + } + if (Objects.isNull(aftersalesWorkOrder.getDiscoveryTime())) { + return R.fail("请填写发现时间"); + } + workOrderEntity.setTrainNumber(aftersalesWorkOrder.getTrainNumber()); + workOrderEntity.setDeliveryTime(aftersalesWorkOrder.getDeliveryTime()); + workOrderEntity.setDeliveryDriver(aftersalesWorkOrder.getDeliveryDriver()); + workOrderEntity.setDiscoveryTime(aftersalesWorkOrder.getDiscoveryTime()); + break; + case "7": + case "8": + break; + default: + log.info("未知的发现节点>>>>>>>>>>>>>>discoveryNode:{}", discoveryNode); + return R.fail("未知的发现节点"); + } + Map> processorEntityMap = processorEntityList.stream().collect(Collectors.groupingBy(AftersalesProcessorEntity::getTypesOf)); + if (!processorEntityMap.isEmpty()) { + if (!Objects.isNull(processorEntityMap.get("1"))) { + List processorEntityList1 = processorEntityMap.get("1"); + String businessName1 = processorEntityList1.stream().map(AftersalesProcessorEntity::getBusinessName).collect(Collectors.joining(",")); + workOrderEntity.setResponsiblePerson(businessName1); } - - } - //添加责任人信息 - if (ObjectUtils.isNotNull(aftersalesWorkOrder.getPersonResponsibleDTO()) && !aftersalesWorkOrder.getPersonResponsibleDTO().isEmpty()) { - List personResponsibleList = getAftersalesPersonResponsibleEntities(aftersalesWorkOrder); - if (!personResponsibleList.isEmpty()) { - aftersalesPersonResponsibleService.saveBatch(personResponsibleList); + if (!Objects.isNull(processorEntityMap.get("2"))) { + List processorEntityList2 = processorEntityMap.get("2"); + String businessName2 = processorEntityList2.stream().map(AftersalesProcessorEntity::getBusinessName).collect(Collectors.joining(",")); + workOrderEntity.setProcessedBy(businessName2); } } - //添加完结受款方数据 - if (ObjectUtils.isNotNull(aftersalesWorkOrder.getCompletionRecipientEntities())) { - List collect = aftersalesWorkOrder.getCompletionRecipientEntities().stream().filter(i -> ObjectUtils.isNotNull(i.getId())).collect(Collectors.toList()); - List collect1 = aftersalesWorkOrder.getCompletionRecipientEntities().stream().filter(i -> ObjectUtils.isNull(i.getId())).collect(Collectors.toList()); - if (!collect.isEmpty()) { - //修改 - collect.forEach(i -> { - completionRecipientService.updateById(i); - }); + workOrderEntity.setWarehouseServiceName(user.getNickName()); + this.save(workOrderEntity); + //添加提交记录 + AftersaleSurveyRecordEntity aftersaleSurveyRecord = new AftersaleSurveyRecordEntity(); + aftersaleSurveyRecord.setTypesOf("1"); + aftersaleSurveyRecord.setDifference("3"); + aftersaleSurveyRecord.setWorkOrderId(workOrderEntity.getId()); + aftersaleSurveyRecord.setAddPeople(user.getAccount()); + aftersaleSurveyRecord.setProcessorName(user.getNickName()); + aftersaleSurveyRecord.setProcessorId(user.getUserId()); + aftersaleSurveyRecord.setAddDepartment(myCurrentWarehouse.getDepartmentName()); + aftersaleSurveyRecord.setContent("提交工单,处理方:" + workOrderEntity.getProcessedBy()); + aftersaleSurveyRecord.setProcessingResults("提交工单,处理方:" + workOrderEntity.getProcessedBy()); + aftersaleSurveyRecordService.save(aftersaleSurveyRecord); + + //进行工单包件保存 + List packageEntityList = aftersalesWorkOrder.getPackageEntityList(); + packageEntityList.stream().forEach(p -> p.setWorkOrderId(workOrderEntity.getId())); + aftersalesAbnormalPackageService.saveBatch(packageEntityList); + if (!Objects.isNull(aftersalesWorkOrder.getPersonResponsibleDTO())) { + //进行内部责任处理 + List personResponsibleDTO = aftersalesWorkOrder.getPersonResponsibleDTO(); + List aftersalesPersonResponsibleEntityList = handleAftersalesPersonResponsibleDTO(personResponsibleDTO, workOrderEntity); + if (!aftersalesPersonResponsibleEntityList.isEmpty()) { + String personResponsibleName = aftersalesPersonResponsibleEntityList.stream().map(AftersalesPersonResponsibleEntity::getPersonResponsibleName).collect(Collectors.joining(",")); + aftersalesPersonResponsibleService.saveBatch(aftersalesPersonResponsibleEntityList); + workOrderEntity.setPersonResponsible(personResponsibleName); } - if (!collect1.isEmpty()) { - //添加 - completionRecipientService.saveBatch(collect1); - } - } - //添加完结赔款方数据 - if (ObjectUtils.isNotNull(aftersalesWorkOrder.getCompletionRecordEntities())) { - - List collect = aftersalesWorkOrder.getCompletionRecordEntities().stream().filter(i -> ObjectUtils.isNotNull(i.getId())).collect(Collectors.toList()); - List collect1 = aftersalesWorkOrder.getCompletionRecordEntities().stream().filter(i -> ObjectUtils.isNull(i.getId())).collect(Collectors.toList()); - if (!collect.isEmpty()) { - //修改 - collect.forEach(i -> { - completionRecordService.updateById(i); - }); + //是否需要进行标记处理方的处理结果提交 + boolean isResult; + if (!Objects.isNull(aftersalesWorkOrder.getAftersalesProcessingResultsDTO())) { + //进行处理结果处理 + AftersalesProcessingResultsDTO aftersalesProcessingResultsDTO = aftersalesWorkOrder.getAftersalesProcessingResultsDTO(); + List processingMoneyEntityList = aftersalesProcessingResultsDTO.getProcessingMoneyEntityList(); + workOrderEntity.setWorkOrderStatus(WorkOrderStatusConstant.yichuli.getValue()); + AftersalesProcessingResultsEntity aftersalesProcessingResults = generateAftersalesProcessingResultsEntity(processingMoneyEntityList, workOrderEntity, aftersalesProcessingResultsDTO.getResultDescription()); + AftersaleSurveyRecordEntity aftersaleSurveyRecord1 = new AftersaleSurveyRecordEntity(); + aftersaleSurveyRecord1.setTypesOf("1"); + aftersaleSurveyRecord1.setDifference("3"); + aftersaleSurveyRecord1.setWorkOrderId(workOrderEntity.getId()); + aftersaleSurveyRecord1.setAddPeople(user.getAccount()); + aftersaleSurveyRecord1.setProcessorName(user.getNickName()); + aftersaleSurveyRecord.setProcessorId(user.getUserId()); + aftersaleSurveyRecord1.setAddDepartment(myCurrentWarehouse.getDepartmentName()); + aftersaleSurveyRecord1.setContent("提交处理结果,提交方式:创建工单提交;处理结果:" + aftersalesProcessingResults.getResultType() + ";金额:" + aftersalesProcessingResults.getMoney()); + aftersaleSurveyRecord1.setProcessingResults("提交处理结果,提交方式:创建工单提交;处理结果:" + aftersalesProcessingResults.getResultType() + ";金额:" + aftersalesProcessingResults.getMoney()); + aftersaleSurveyRecordService.save(aftersaleSurveyRecord1); + workOrderEntity.setCompensationMoney(aftersalesProcessingResults.getMoney()); + aftersalesProcessingResultsService.save(aftersalesProcessingResults); + processingMoneyEntityList.stream().forEach(p -> { + p.setWorkOrderId(workOrderEntity.getId()); + p.setProcessingResultsId(aftersalesProcessingResults.getId()); + }); + aftersalesProcessingMoneyService.saveBatch(processingMoneyEntityList); + workOrderEntity.setWorkOrderStatus(WorkOrderStatusConstant.chulijeiguoyitianxei.getValue()); + if (!Objects.isNull(aftersalesProcessingResultsDTO.getResultType())) { + workOrderEntity.setWorkOrderStatus(WorkOrderStatusConstant.lipeijineweichu.getValue()); } - if (!collect1.isEmpty()) { - //添加 - completionRecordService.saveBatch(collect1); + workOrderEntity.setWarehouseServiceName(user.getNickName()); + isResult = true; + } else { + isResult = false; + } + //对处理方和责任方进行记录 + processorEntityList.stream().forEach(p -> { + p.setWorkOrderId(workOrderEntity.getId()); + p.setWarehouseId(workOrderEntity.getWarehouseId()); + p.setProcessingStatus(ProcessorProcessingStatusStatusConstant.daichuli.getValue()); + if (isResult) { + //存在处理结果提交方 + if (p.getBusinessId().equals(myCurrentWarehouse.getId()) && "2".equals(p.getTypesOf())) { + p.setProcessingStatus(ProcessorProcessingStatusStatusConstant.tijiaofang.getValue()); + } } -// completionRecordService.saveBatch(aftersalesWorkOrder.getCompletionRecordEntities()); + }); + //添加创建方 + AftersalesProcessorEntity aftersalesProcessorEntity = new AftersalesProcessorEntity(); + aftersalesProcessorEntity.setWorkOrderId(workOrderEntity.getId()); + aftersalesProcessorEntity.setWarehouseId(workOrderEntity.getWarehouseId()); + aftersalesProcessorEntity.setProcessingStatus(ProcessorProcessingStatusStatusConstant.qitachuli.getValue()); + aftersalesProcessorEntity.setTypesOf(ProcessorTypesOfStatusConstant.ziji.getValue()); + aftersalesProcessorEntity.setBusinessName(myCurrentWarehouse.getName()); + aftersalesProcessorEntity.setBusinessId(myCurrentWarehouse.getId()); + aftersalesProcessorService.saveBatch(processorEntityList); + + switch (workOrderType) { + case "1": + case "3": + //需要校验图片decreaseImageEntityList + if (Objects.isNull(aftersalesWorkOrder.getDecreaseImageEntityList())) { + log.info(method + "aftersalesWorkOrder.getProcessorEntityList()参数缺失"); + return R.fail("参数缺失,请联系管理"); + //对图片进行保存 + } + List decreaseImageEntityList = aftersalesWorkOrder.getDecreaseImageEntityList(); + decreaseImageEntityList.stream().forEach(d -> { + d.setWorkOrderId(workOrderEntity.getId()); + d.setWarehouseId(myCurrentWarehouse.getId()); + }); + aftersalesDecreaseImageService.saveBatch(decreaseImageEntityList); + break; + case "2": + case "4": + case "5": + //公共参数无需校验 + break; + default: + log.info("未知的异常类型>>>>>>>>>>>>>>workOrderType:{}", workOrderType); + return R.fail("未知的异常类型"); } - //添加处理结果 - if (ObjectUtils.isNotNull(aftersalesWorkOrder.getAftersalesProcessingResultsDTO())) { - addProcessingResults(aftersalesWorkOrder); + //判断是否进行处理结果提交 如果存在则需要对工单进行状态变更并保存处理结果 + return R.status(this.updateById(workOrderEntity)); + + } + + private boolean judgeIsWarehouseCustomerService(BladeUser user) { + R> roleNames = sysClient.getRoleNames(user.getRoleId()); + if (!roleNames.isSuccess()) { + return false; } + return roleNames.getData().contains(RoleConstant.WAREHOUSE_CUSTOMER_SERVICE.getName()); + } - return true; + private AftersalesProcessingResultsEntity generateAftersalesProcessingResultsEntity(List processingMoneyEntityList, AftersalesWorkOrderEntity workOrderEntity, String resultDescription) { + AftersalesProcessingResultsEntity aftersalesProcessingResultsEntity = new AftersalesProcessingResultsEntity(); + aftersalesProcessingResultsEntity.setWorkOrderId(workOrderEntity.getId()); + aftersalesProcessingResultsEntity.setWarehouseId(workOrderEntity.getWarehouseId()); + aftersalesProcessingResultsEntity.setResultDescription(resultDescription); + String resultType = processingMoneyEntityList.stream().map(AftersalesProcessingMoneyEntity::getResultName).collect(Collectors.joining(",")); + aftersalesProcessingResultsEntity.setResultType(resultType); + String compensationMethod = processingMoneyEntityList.stream().map(AftersalesProcessingMoneyEntity::getCompensationMethodName).collect(Collectors.joining(",")); + aftersalesProcessingResultsEntity.setCompensationMethod(compensationMethod); + String paymentUnit = processingMoneyEntityList.stream().map(AftersalesProcessingMoneyEntity::getPaymentUnit).collect(Collectors.joining(",")); + aftersalesProcessingResultsEntity.setPaymentUnit(paymentUnit); + BigDecimal totalMoney = processingMoneyEntityList.stream().map(AftersalesProcessingMoneyEntity::getMoney).collect(Collectors.toList()).stream().reduce(BigDecimal.ZERO, BigDecimal::add); + aftersalesProcessingResultsEntity.setMoney(totalMoney); + return aftersalesProcessingResultsEntity; } /** @@ -755,10 +769,16 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl aftersalesWorkOrder) { +// BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); +// if (ObjectUtils.isNull(myCurrentWarehouse)) { +// throw new ServiceException("请选择仓库!!"); +// } BladeUser user = AuthUtil.getUser(); if (ObjectUtil.isNull(aftersalesWorkOrder)) { return false; } + R deptName = sysClient.getDeptName(Func.firstLong(user.getDeptId())); + aftersalesWorkOrder.forEach(v -> { if (ObjectUtils.isNull(v.getId())) { throw new ServiceException("异常工单ID不能为空!"); @@ -783,6 +803,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl>>>myCurrentWarehouse {}", myCurrentWarehouse); } @@ -1486,7 +1501,6 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl list4 = completionRecordService.list(Wrappers.query().lambda() .eq(AftersalesCompletionRecordEntity::getWorkOrderId, aftersalesWorkOrder.getId()) ); @@ -1544,17 +1556,6 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl packageList = aftersalesWorkOrderDTO.getPackageList(); - if (Func.isEmpty(packageList)) { - return Resp.scanFail("请扫描包件信息", "请扫描包件信息"); - } - List aftersalesAbnormalPackageEntities = new ArrayList<>(); - for (AftersalesAbnormalPackageVO abnormalPackageVO : packageList) { - AftersalesAbnormalPackageEntity aftersalesAbnormalPackageEntity = Func.copy(abnormalPackageVO, AftersalesAbnormalPackageEntity.class); - aftersalesAbnormalPackageEntities.add(aftersalesAbnormalPackageEntity); - } - //工单关联包件信息 - saveAftersalesWorkOrderDTO.setPackageEntityList(aftersalesAbnormalPackageEntities); - //保存工单所需责任人 - saveAftersalesWorkOrderDTO.setProcessorEntityList(aftersalesWorkOrderDTO.getProcessorEntityList()); - //工单图片 - saveAftersalesWorkOrderDTO.setDecreaseImageEntityList(aftersalesWorkOrderDTO.getDecreaseImageEntityList()); - //设置工单提交标识 - saveAftersalesWorkOrderDTO.setInitiationIdentification("PDA"); - //保存工单 - boolean b = saveOrUpdateOwn(saveAftersalesWorkOrderDTO); - - return Resp.scanSuccess("提交成功", "提交成功"); - } - /** * 查询客服信息 * @@ -1705,7 +1674,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl list = aftersalesProcessorService.list(Wrappers.query().lambda() .eq(AftersalesProcessorEntity::getWorkOrderId, aftersalesWorkOrderDTO.getId()) .eq(AftersalesProcessorEntity::getTypesOf, ProcessorTypesOfStatusConstant.chulifang.getValue()) ); - Optional one = null; - //判断是不是客服 - AftersaleSurveyRecordEntity surveyRecordEntity = new AftersaleSurveyRecordEntity(); + List processorList = null; + if (!list.isEmpty()) { + processorList = list.stream().map(AftersalesProcessorEntity::getBusinessId).collect(Collectors.toList()); + } + if (processorList.isEmpty()) { + return R.fail("工单处理方查询错误"); + } + + StringBuffer stringBuffer = new StringBuffer(); AftersaleSurveyRecordDTO surveyRecordDTO = aftersalesWorkOrderDTO.getSurveyRecordDTO(); - BeanUtil.copyProperties(surveyRecordDTO, surveyRecordEntity); + //添加回复信息 + AftersaleSurveyRecordEntity surveyRecordEntity1 = new AftersaleSurveyRecordEntity(); + AftersaleSurveyRecordEntity surveyRecordEntity2 = new AftersaleSurveyRecordEntity(); + surveyRecordEntity1.setProcessorId(user.getUserId()); + surveyRecordEntity1.setProcessorName(user.getNickName()); + surveyRecordEntity1.setDifference("1"); + surveyRecordEntity1.setTypesOf("1"); + surveyRecordEntity1.setContent(surveyRecordDTO.getContent()); + surveyRecordEntity1.setWorkOrderId(workOrderEntity.getId()); + surveyRecordEntity1.setAddPeople(user.getUserName()); + surveyRecordEntity2.setProcessorId(user.getUserId()); + surveyRecordEntity2.setProcessorName(user.getNickName()); + surveyRecordEntity2.setDifference("1"); + surveyRecordEntity2.setTypesOf("1"); + surveyRecordEntity2.setContent(surveyRecordDTO.getContent()); + surveyRecordEntity2.setWorkOrderId(workOrderEntity.getId()); + surveyRecordEntity2.setAddPeople(user.getUserName()); + List processorEntityList = aftersalesWorkOrderDTO.getProcessorEntityList(); + boolean flag = false; if (ObjectUtils.isNotNull(myCurrentWarehouse)) { - one = list.stream().filter(i -> i.getBusinessId().equals(myCurrentWarehouse.getId()) && i.getBusinessName().equals(myCurrentWarehouse.getName())).findFirst(); - one.ifPresent(aftersalesProcessorEntity -> surveyRecordEntity.setProcessorId(aftersalesProcessorEntity.getId())); - surveyRecordEntity.setAddDepartment(myCurrentWarehouse.getDepartmentName()); - surveyRecordEntity.setProcessingResults(surveyRecordEntity.getContent()); + surveyRecordEntity1.setAddDepartment(myCurrentWarehouse.getDepartmentName()); + surveyRecordEntity2.setAddDepartment(myCurrentWarehouse.getDepartmentName()); if (!Objects.isNull(surveyRecordDTO.getPictureUrl())) { - surveyRecordEntity.setPictureUrl(surveyRecordDTO.getPictureUrl()); + surveyRecordEntity1.setPictureUrl(surveyRecordDTO.getPictureUrl()); } + flag = processorEntityList.stream().anyMatch(a -> a.getBusinessId().equals(myCurrentWarehouse.getId())); } else { log.info("客服回复!!!{}", user.getUserName()); R deptName = sysClient.getDeptName(Func.firstLong(user.getDeptId())); - surveyRecordEntity.setAddDepartment(deptName.getData()); - surveyRecordEntity.setProcessingResults(surveyRecordEntity.getContent()); + surveyRecordEntity1.setAddDepartment(deptName.getData()); + surveyRecordEntity2.setAddDepartment(deptName.getData()); + } + + if (flag) { + //进行处理标记 + aftersalesProcessorService.update(Wrappers.update().lambda() + .eq(AftersalesProcessorEntity::getBusinessId, myCurrentWarehouse.getId()) + .eq(AftersalesProcessorEntity::getWorkOrderId, workOrderEntity.getId()) + .eq(AftersalesProcessorEntity::getTypesOf, ProcessorTypesOfStatusConstant.chulifang.getValue()) + .eq(AftersalesProcessorEntity::getProcessingStatus, ProcessorProcessingStatusStatusConstant.daichuli.getValue()) + .set(AftersalesProcessorEntity::getProcessingStatus, ProcessorProcessingStatusStatusConstant.yichuli.getValue()) + ); } - //添加回复信息 - surveyRecordEntity.setProcessorId(user.getUserId()); - surveyRecordEntity.setProcessorName(user.getNickName()); - surveyRecordEntity.setDifference("1"); - surveyRecordEntity.setTypesOf("1"); - surveyRecordEntity.setAddPeople(user.getUserName()); - aftersaleSurveyRecordService.save(surveyRecordEntity); - //是否处理 - if (ObjectUtils.isNull(one) || !one.isPresent()) { - - //不是处理方 - if (aftersalesWorkOrderDTO.getProcessorEntityList().isEmpty()) { - //没有 全部 -// List collect = list.stream().filter(i -> "1".equals(i.getProcessingStatus())).collect(Collectors.toList()); - //添加待回复信息 - list.forEach(i -> { - //没有处理方,修改已回复的处理方为待回复 - if (ProcessorProcessingStatusStatusConstant.yichuli.getValue().equals(i.getProcessingStatus())) { - //已处理 - AftersalesProcessorEntity processor = new AftersalesProcessorEntity(); - processor.setId(i.getId()); - processor.setProcessingStatus(ProcessorProcessingStatusStatusConstant.daichuli.getValue()); - aftersalesProcessorService.updateById(processor); - } - if (ProcessorProcessingStatusStatusConstant.daichuli.getValue().equals(i.getProcessingStatus())) { - AftersalesReplyingPartyEntity replyingPartyEntity = getPartyEntity(aftersalesWorkOrderDTO, i, surveyRecordEntity); - //添加待回复信息 - aftersalesReplyingPartyService.save(replyingPartyEntity); - } - }); - } else { - //添加或修改新的处理方 - surveyRecordDTO.setId(surveyRecordEntity.getId()); - surveyRecordDTO.setFollowWarehouseName(surveyRecordEntity.getFollowWarehouseName()); - surveyRecordDTO.setFollowWarehouseId(surveyRecordEntity.getFollowWarehouseId()); - chuLiFang(aftersalesWorkOrderDTO, myCurrentWarehouse, user, list, surveyRecordDTO); + //进行比对是否存在有新增处理方 + List aaa = new ArrayList<>(); + for (int i = 0; i < processorEntityList.size(); i++) { + if (!processorList.contains(processorEntityList.get(i).getBusinessId())) { + //进行新增 + AftersalesProcessorEntity aftersalesProcessorEntity = processorEntityList.get(i); + aftersalesProcessorEntity.setWarehouseId(workOrderEntity.getWarehouseId()); + aftersalesProcessorEntity.setProcessingStatus(ProcessorProcessingStatusStatusConstant.daichuli.getValue()); + aftersalesProcessorService.save(aftersalesProcessorEntity); + aaa.add(aftersalesProcessorEntity.getBusinessName()); + } + if (processorList.indexOf(processorEntityList.get(i).getBusinessId()) >= 0){ + processorList.remove(processorList.indexOf(processorEntityList.get(i).getBusinessId())); } - } else { - AftersalesProcessorEntity processor1 = one.get(); - //修改处理方 处理状态 - updateProcessor(ProcessorProcessingStatusStatusConstant.yichuli.getValue(), processor1); - //修改回复信息 - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("work_order_id", aftersalesWorkOrderDTO.getId()); - updateWrapper.eq("processor_id", processor1.getId()); - updateWrapper.eq("difference", "1"); - updateWrapper.set("difference", "2"); - updateWrapper.set("processed_by_id", user.getUserId()); - updateWrapper.set("processed_by_name", user.getUserName()); - aftersalesReplyingPartyService.update(updateWrapper); - //修改工单状态 - AftersalesWorkOrderEntity workOrderEntity1 = baseMapper.selectById(aftersalesWorkOrderDTO.getId()); - AftersalesWorkOrderEntity workOrderEntity = new AftersalesWorkOrderEntity(); - workOrderEntity.setId(aftersalesWorkOrderDTO.getId()); - workOrderEntity.setUpdateTime(new Date()); - workOrderEntity.setWarehouseServiceName(AuthUtil.getNickName()); - workOrderEntity.setWorkOrderStatus(WorkOrderStatusConstant.chulizhong.getValue()); - baseMapper.updateById(workOrderEntity); - //添加或修改新的处理方 - chuLiFang(aftersalesWorkOrderDTO, myCurrentWarehouse, user, list, surveyRecordDTO); - //修改处理方待回复信息 - List list1 = aftersalesReplyingPartyService.list(Wrappers.query().lambda() - .eq(AftersalesReplyingPartyEntity::getWorkOrderId, aftersalesWorkOrderDTO.getId()) - .eq(AftersalesReplyingPartyEntity::getFollowWarehouseId, myCurrentWarehouse.getId()) - .eq(AftersalesReplyingPartyEntity::getDifference, '1') + } + if (!aaa.isEmpty()) { + stringBuffer.append("增加处理方-->[" + aaa.stream().collect(Collectors.joining(","))+"]").append(","); + } + if (!processorList.isEmpty()) { + //进行删除处理方 + aftersalesProcessorService.remove(Wrappers.query().lambda() + .eq(AftersalesProcessorEntity::getWorkOrderId, workOrderEntity.getId()) + .eq(AftersalesProcessorEntity::getTypesOf, ProcessorTypesOfStatusConstant.chulifang.getValue()) + .in(AftersalesProcessorEntity::getBusinessId, processorList) ); - list1.forEach(i -> { - AftersalesReplyingPartyEntity replyingPartyEntity = new AftersalesReplyingPartyEntity(); - replyingPartyEntity.setId(i.getId()); - replyingPartyEntity.setDifference("2"); - replyingPartyEntity.setProcessedById(user.getUserId()); - replyingPartyEntity.setProcessedByName(user.getUserName()); - aftersalesReplyingPartyService.updateById(replyingPartyEntity); - }); + List warehousesByIds = warehouseClient.findWarehousesByIds(processorList); + if (!warehousesByIds.isEmpty()) { + //增加操作日志 + stringBuffer.append("取消处理方-->[" + warehousesByIds.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(","))+"]").append(","); + } } - return true; + AftersalesWorkOrderEntity aftersalesWorkOrderEntity = new AftersalesWorkOrderEntity(); + aftersalesWorkOrderEntity.setId(workOrderEntity.getId()); + //维护工单状态和处理方信息 + if (WorkOrderStatusConstant.daichuli.getValue().equals(workOrderEntity.getWorkOrderStatus())){ + aftersalesWorkOrderEntity.setWorkOrderStatus(WorkOrderStatusConstant.chulizhong.getValue()); + } + String processedBy = processorEntityList.stream().map(AftersalesProcessorEntity::getBusinessName).collect(Collectors.joining(",")); + aftersalesWorkOrderEntity.setProcessedBy(processedBy); + this.updateById(aftersalesWorkOrderEntity); + if (!Objects.isNull(stringBuffer)){ + String string = stringBuffer.deleteCharAt(stringBuffer.lastIndexOf(",")).toString(); + surveyRecordEntity2.setContent(string); + surveyRecordEntity2.setProcessingResults(string); + aftersaleSurveyRecordService.save(surveyRecordEntity2); + } + surveyRecordEntity1.setContent(surveyRecordDTO.getContent()); + surveyRecordEntity1.setProcessingResults(surveyRecordDTO.getContent()); + aftersaleSurveyRecordService.save(surveyRecordEntity1); + return R.success("操作成功"); + + +// Optional one = null; +// //判断是不是客服 +// AftersaleSurveyRecordDTO surveyRecordDTO = aftersalesWorkOrderDTO.getSurveyRecordDTO(); +// BeanUtil.copyProperties(surveyRecordDTO, surveyRecordEntity); +// if (ObjectUtils.isNotNull(myCurrentWarehouse)) { +// one = list.stream().filter(i -> i.getBusinessId().equals(myCurrentWarehouse.getId()) && i.getBusinessName().equals(myCurrentWarehouse.getName())).findFirst(); +// one.ifPresent(aftersalesProcessorEntity -> surveyRecordEntity.setProcessorId(aftersalesProcessorEntity.getId())); +// surveyRecordEntity.setAddDepartment(myCurrentWarehouse.getDepartmentName()); +// surveyRecordEntity.setProcessingResults(surveyRecordEntity.getContent()); +// if (!Objects.isNull(surveyRecordDTO.getPictureUrl())) { +// surveyRecordEntity.setPictureUrl(surveyRecordDTO.getPictureUrl()); +// } +// } else { +// log.info("客服回复!!!{}", user.getUserName()); +// R deptName = sysClient.getDeptName(Func.firstLong(user.getDeptId())); +// surveyRecordEntity.setAddDepartment(deptName.getData()); +// surveyRecordEntity.setProcessingResults(surveyRecordEntity.getContent()); +// } +// //添加回复信息 +// surveyRecordEntity.setProcessorId(user.getUserId()); +// surveyRecordEntity.setProcessorName(user.getNickName()); +// surveyRecordEntity.setDifference("1"); +// surveyRecordEntity.setTypesOf("1"); +// surveyRecordEntity.setAddPeople(user.getUserName()); +// aftersaleSurveyRecordService.save(surveyRecordEntity); +// //是否处理 +// if (ObjectUtils.isNull(one) || !one.isPresent()) { +// +// //不是处理方 +// if (aftersalesWorkOrderDTO.getProcessorEntityList().isEmpty()) { +// //没有 全部 +//// List collect = list.stream().filter(i -> "1".equals(i.getProcessingStatus())).collect(Collectors.toList()); +// //添加待回复信息 +// list.forEach(i -> { +// //没有处理方,修改已回复的处理方为待回复 +// if (ProcessorProcessingStatusStatusConstant.yichuli.getValue().equals(i.getProcessingStatus())) { +// //已处理 +// AftersalesProcessorEntity processor = new AftersalesProcessorEntity(); +// processor.setId(i.getId()); +// processor.setProcessingStatus(ProcessorProcessingStatusStatusConstant.daichuli.getValue()); +// aftersalesProcessorService.updateById(processor); +// } +// if (ProcessorProcessingStatusStatusConstant.daichuli.getValue().equals(i.getProcessingStatus())) { +// AftersalesReplyingPartyEntity replyingPartyEntity = getPartyEntity(aftersalesWorkOrderDTO, i, surveyRecordEntity); +// //添加待回复信息 +// aftersalesReplyingPartyService.save(replyingPartyEntity); +// } +// }); +// } else { +// //添加或修改新的处理方 +// surveyRecordDTO.setId(surveyRecordEntity.getId()); +// surveyRecordDTO.setFollowWarehouseName(surveyRecordEntity.getFollowWarehouseName()); +// surveyRecordDTO.setFollowWarehouseId(surveyRecordEntity.getFollowWarehouseId()); +// chuLiFang(aftersalesWorkOrderDTO, myCurrentWarehouse, user, list, surveyRecordDTO); +// } +// } else { +// AftersalesProcessorEntity processor1 = one.get(); +// //修改处理方 处理状态 +// updateProcessor(ProcessorProcessingStatusStatusConstant.yichuli.getValue(), processor1); +// //修改回复信息 +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("work_order_id", aftersalesWorkOrderDTO.getId()); +// updateWrapper.eq("processor_id", processor1.getId()); +// updateWrapper.eq("difference", "1"); +// updateWrapper.set("difference", "2"); +// updateWrapper.set("processed_by_id", user.getUserId()); +// updateWrapper.set("processed_by_name", user.getUserName()); +// aftersalesReplyingPartyService.update(updateWrapper); +// //修改工单状态 +// AftersalesWorkOrderEntity workOrderEntity1 = baseMapper.selectById(aftersalesWorkOrderDTO.getId()); +// +// AftersalesWorkOrderEntity workOrderEntity = new AftersalesWorkOrderEntity(); +// workOrderEntity.setId(aftersalesWorkOrderDTO.getId()); +// workOrderEntity.setWarehouseServiceName(AuthUtil.getNickName()); +// if (WorkOrderStatusConstant.daichuli.getValue().equals(workOrderEntity1.getWorkOrderStatus())){ +// workOrderEntity.setWorkOrderStatus(WorkOrderStatusConstant.chulizhong.getValue()); +// } +// this.updateById(workOrderEntity); +// //添加或修改新的处理方 +// chuLiFang(aftersalesWorkOrderDTO, myCurrentWarehouse, user, list, surveyRecordDTO); +// //修改处理方待回复信息 +// List list1 = aftersalesReplyingPartyService.list(Wrappers.query().lambda() +// .eq(AftersalesReplyingPartyEntity::getWorkOrderId, aftersalesWorkOrderDTO.getId()) +// .eq(AftersalesReplyingPartyEntity::getFollowWarehouseId, myCurrentWarehouse.getId()) +// .eq(AftersalesReplyingPartyEntity::getDifference, '1') +// ); +// list1.forEach(i -> { +// AftersalesReplyingPartyEntity replyingPartyEntity = new AftersalesReplyingPartyEntity(); +// replyingPartyEntity.setId(i.getId()); +// replyingPartyEntity.setDifference("2"); +// replyingPartyEntity.setProcessedById(user.getUserId()); +// replyingPartyEntity.setProcessedByName(user.getUserName()); +// aftersalesReplyingPartyService.updateById(replyingPartyEntity); +// }); +// +// } +// return true; } /** @@ -2025,9 +2118,12 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl { AftersalesWorkOrderEntity workOrderEntity = new AftersalesWorkOrderEntity(); workOrderEntity.setId(i); @@ -2471,6 +2585,17 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl" + "确认处理结果:"); + aftersaleSurveyRecord1.setProcessingResults("确认处理结果:" + list.stream().map(AftersalesProcessingResultsEntity::getResultType).collect(Collectors.joining(","))); + aftersaleSurveyRecordService.save(aftersaleSurveyRecord1); }); return true; } @@ -2530,6 +2655,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl exportData = baseMapper.getBasicExportData(workOrderDTO, ids, warehouseIds); return exportData; @@ -2904,7 +3032,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl list1 = Arrays.asList(strings); //查询所有的超时列表,包括已经超时的 List processorEntityList = baseMapper.overTimeAfterSalesList(); @@ -2913,17 +3041,17 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl list = aftersalesOvertimeFineService.list(Wrappers.query().lambda() .eq(AftersalesOvertimeFineEntity::getBusinessId, processorEntity.getBusinessId()) @@ -2933,7 +3061,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl page) { + public R newPage(AftersalesWorkOrderQueryDTO workOrderQueryDTO, Query query, Integer pageType) { if (ObjectUtil.isNotEmpty(workOrderQueryDTO.getStartCreateTime()) || ObjectUtil.isNotEmpty(workOrderQueryDTO.getEndCreateTime())) { boolean withinOneMonth = DateUtil.between(workOrderQueryDTO.getStartCreateTime(), workOrderQueryDTO.getEndCreateTime(), DateUnit.DAY) <= 60; if (!withinOneMonth) { throw new ServiceException("日期范伟不能超过两个月"); } - } else { - throw new ServiceException("导出时日期必填"); } - //查询当前登录人 - List warehouseList = warehouseClient.getMyWatchWarehouse(); - List warehouseIds = new ArrayList<>(); - if (!warehouseList.isEmpty()) { - warehouseIds.addAll(warehouseList.stream().map(BasicdataWarehouseEntity::getId).collect(Collectors.toList())) ; +// else { +// throw new ServiceException("搜索日期必填"); +// } + List myWatchWarehouse = warehouseClient.getMyWatchWarehouse(); + if (myWatchWarehouse.isEmpty()) { + return R.fail("当前登录人仓库信息获取错误"); + } + List warehouseIds = myWatchWarehouse.stream().map(BasicdataWarehouseEntity::getId).collect(Collectors.toList()); + switch (pageType) { + case 1: + //全部 + IPage page1 = Condition.getPage(query); + IPage aftersalesWorkOrderAllPageVOIPage = baseMapper.selectAllWorkOrderPage(page1, workOrderQueryDTO, warehouseIds); + return R.data(aftersalesWorkOrderAllPageVOIPage); + case 2: + //待回复 + if (warehouseIds.size() != 1) { + return R.fail("待回复列表需选择仓库进行查看"); + } + IPage page2 = Condition.getPage(query); + IPage aftersalesWorkOrderReplyPageVOIPage = baseMapper.selectReplyWorkOrderPage(page2, workOrderQueryDTO, warehouseIds); + return R.data(aftersalesWorkOrderReplyPageVOIPage); + case 3: + //待处理 + IPage page3 = Condition.getPage(query); + IPage aftersalesWorkOrderWaitProcessPageVOIPage = baseMapper.selectProcessWorkOrderPage(page3, workOrderQueryDTO, warehouseIds, 0); + return R.data(aftersalesWorkOrderWaitProcessPageVOIPage); + case 4: + //处理中 + IPage page4 = Condition.getPage(query); + IPage aftersalesWorkOrderProcessPageVOIPage = baseMapper.selectProcessWorkOrderPage(page4, workOrderQueryDTO, warehouseIds, 1); + return R.data(aftersalesWorkOrderProcessPageVOIPage); + case 5: + //理赔金未出 + IPage page5 = Condition.getPage(query); + IPage aftersalesWorkOrderCompensationPageVOIPage = baseMapper.selectCompensationWorkOrderPage(page5, workOrderQueryDTO, warehouseIds); + return R.data(aftersalesWorkOrderCompensationPageVOIPage); + case 6: + //处理完毕 + IPage page6 = Condition.getPage(query); + IPage aftersalesWorkOrderCompletePageVOIPage = baseMapper.selectCompleteWorkOrderPage(page6, workOrderQueryDTO, warehouseIds); + return R.data(aftersalesWorkOrderCompletePageVOIPage); + case 7: + IPage page7 = Condition.getPage(query); + IPage selectCompleteWorkOrderPage = baseMapper.selectInterventioWorkOrderPage(page7, workOrderQueryDTO, warehouseIds); + return R.data(selectCompleteWorkOrderPage); + case 8: + //待审核 + IPage page8 = Condition.getPage(query); + IPage aftersalesWorkOrderExaminePageVOIPage = baseMapper.selectExamineWorkOrderPage(page8, workOrderQueryDTO, warehouseIds); + return R.data(aftersalesWorkOrderExaminePageVOIPage); + case 9: + //完结 + IPage page9 = Condition.getPage(query); + IPage aftersalesWorkOrderEndPageVOIPage = baseMapper.selectEndWorkOrderPage(page9, workOrderQueryDTO, warehouseIds); + return R.data(aftersalesWorkOrderEndPageVOIPage); + case 10: + //申述列表 + IPage page10 = Condition.getPage(query); + IPage aftersalesWorkOrderAppealPageVOIPage = baseMapper.selectAppealWorkOrderPage(page10, workOrderQueryDTO, warehouseIds); + return R.data(aftersalesWorkOrderAppealPageVOIPage); + case 11: + //超时 + IPage page11 = Condition.getPage(query); + IPage aftersalesWorkOrderTimeOutPageVOIPage = baseMapper.selectTimeOutWorkOrderPage(page11, workOrderQueryDTO, warehouseIds); + return R.data(aftersalesWorkOrderTimeOutPageVOIPage); + } + + + return null; + } + + @Override + public void newExport(AftersalesWorkOrderQueryDTO workOrderQueryDTO, Query query, Integer pageType, HttpServletResponse response) { + if (ObjectUtil.isNotEmpty(workOrderQueryDTO.getStartCreateTime()) || ObjectUtil.isNotEmpty(workOrderQueryDTO.getEndCreateTime())) { + boolean withinOneMonth = DateUtil.between(workOrderQueryDTO.getStartCreateTime(), workOrderQueryDTO.getEndCreateTime(), DateUnit.DAY) <= 60; + if (!withinOneMonth) { + throw new ServiceException("日期范伟不能超过两个月"); + } } - IPage iPage = baseMapper.pageAllList(page, workOrderQueryDTO, warehouseIds); - return R.data(iPage); + List myWatchWarehouse = warehouseClient.getMyWatchWarehouse(); + if (myWatchWarehouse.isEmpty()) { + throw new ServiceException("当前登录人仓库信息获取错误"); + } + List warehouseIds = myWatchWarehouse.stream().map(BasicdataWarehouseEntity::getId).collect(Collectors.toList()); + switch (pageType) { + case 1: + //全部 + List aftersalesWorkOrderAllExcelList = baseMapper.selectAllWorkOrderExcelData(workOrderQueryDTO, warehouseIds); + ExcelUtil.export(response, "全部异常工单数据" + org.springblade.core.tool.utils.DateUtil.time(), "全部异常工单数据", aftersalesWorkOrderAllExcelList, AftersalesWorkOrderAllExcel.class); + break; + case 2: + //待回复 + if (warehouseIds.size() != 1) { + throw new ServiceException("待回复列表需选择仓库进行查看"); + } + List aftersalesWorkOrderReplyExcelList = baseMapper.selectReplyWorkOrderExcelData(workOrderQueryDTO, warehouseIds); + ExcelUtil.export(response, "待回复异常工单数据" + org.springblade.core.tool.utils.DateUtil.time(), "待回复异常工单数据", aftersalesWorkOrderReplyExcelList, AftersalesWorkOrderReplyExcel.class); + break; + case 3: + //待处理 + List aftersalesWorkOrderProcessExcelList1 = baseMapper.selectProcessWorkOrderExcelData(workOrderQueryDTO, warehouseIds, 0); + ExcelUtil.export(response, "待处理异常工单数据" + org.springblade.core.tool.utils.DateUtil.time(), "待处理异常工单数据", aftersalesWorkOrderProcessExcelList1, AftersalesWorkOrderProcessExcel.class); + break; + case 4: + //处理中 + List aftersalesWorkOrderProcessExcelList2 = baseMapper.selectProcessWorkOrderExcelData(workOrderQueryDTO, warehouseIds, 1); + ExcelUtil.export(response, "处理中异常工单数据" + org.springblade.core.tool.utils.DateUtil.time(), "处理中异常工单数据", aftersalesWorkOrderProcessExcelList2, AftersalesWorkOrderProcessExcel.class); + break; + case 5: + //理赔金未出 + List aftersalesWorkOrderCompensationPageExcelList = baseMapper.selectCompensationWorkOrderExcelData(workOrderQueryDTO, warehouseIds); + ExcelUtil.export(response, "理赔金未出异常工单数据" + org.springblade.core.tool.utils.DateUtil.time(), "理赔金未出异常工单数据", aftersalesWorkOrderCompensationPageExcelList, AftersalesWorkOrderCompensationPageExcel.class); + break; + case 6: + //处理完毕 + List aftersalesWorkOrderCompleteExcelList = baseMapper.selectCompleteWorkOrderExcelData(workOrderQueryDTO, warehouseIds); + ExcelUtil.export(response, "处理完毕异常工单数据" + org.springblade.core.tool.utils.DateUtil.time(), "处理完毕异常工单数据", aftersalesWorkOrderCompleteExcelList, AftersalesWorkOrderCompleteExcel.class); + break; + case 7: + List aftersalesWorkOrderInterventionExcelList = baseMapper.selectInterventioWorkOrderExcelDta(workOrderQueryDTO, warehouseIds); + ExcelUtil.export(response, "客服介入异常工单数据" + org.springblade.core.tool.utils.DateUtil.time(), "客服介入异常工单数据", aftersalesWorkOrderInterventionExcelList, AftersalesWorkOrderInterventionExcel.class); + break; + case 8: + //待审核 + List aftersalesWorkOrderExamineExcelList = baseMapper.selectExamineWorkOrderExcelData(workOrderQueryDTO, warehouseIds); + ExcelUtil.export(response, "待审核异常工单数据" + org.springblade.core.tool.utils.DateUtil.time(), "待审核异常工单数据", aftersalesWorkOrderExamineExcelList, AftersalesWorkOrderExamineExcel.class); + break; + case 9: + //完结 + List aftersalesWorkOrderEndExcelList = baseMapper.selectEndWorkOrderExcelData(workOrderQueryDTO, warehouseIds); + ExcelUtil.export(response, "完结异常工单数据" + org.springblade.core.tool.utils.DateUtil.time(), "完结异常工单数据", aftersalesWorkOrderEndExcelList, AftersalesWorkOrderEndExcel.class); + break; + case 10: + //申述列表 + List aftersalesWorkOrderAppealExcelList = baseMapper.selectAppealWorkOrderExcelData(workOrderQueryDTO, warehouseIds); + ExcelUtil.export(response, "申述列表异常工单数据" + org.springblade.core.tool.utils.DateUtil.time(), "申述列表异常工单数据", aftersalesWorkOrderAppealExcelList, AftersalesWorkOrderAppealExcel.class); + break; + case 11: + //超时 + List aftersalesWorkOrderTimeOutExcelList = baseMapper.selectTimeOutWorkOrderExcelData(workOrderQueryDTO, warehouseIds); + ExcelUtil.export(response, "超时异常工单数据" + org.springblade.core.tool.utils.DateUtil.time(), "超时异常工单数据", aftersalesWorkOrderTimeOutExcelList, AftersalesWorkOrderTimeOutExcel.class); + break; + } + } + + @Override + public R updatePersonResponsible(Long id, List personResponsibleVOS) { + AftersalesWorkOrderEntity byId = this.getById(id); + if (Objects.isNull(byId)) { + return R.fail("查询异常工单计划错误"); + } + + //查询所有的责任人 + List entityList = aftersalesPersonResponsibleService.list(Wrappers.query().lambda().eq(AftersalesPersonResponsibleEntity::getWordOrderId, id)); + Map map = null; + if (!entityList.isEmpty()) { + map = entityList.stream().collect(Collectors.toMap(AftersalesPersonResponsibleEntity::getId, AftersalesPersonResponsibleEntity::getResponsibilityRatio)); + } + List saveData = personResponsibleVOS.stream().filter(f -> Objects.isNull(f.getId())).collect(Collectors.toList()); + if (!saveData.isEmpty()) { + List aftersalesPersonResponsibleEntityList = new ArrayList<>(); + for (AftersalesPersonResponsibleVO saveDatum : saveData) { + AftersalesPersonResponsibleEntity aftersalesPersonResponsibleEntity = BeanUtil.copyProperties(saveDatum, AftersalesPersonResponsibleEntity.class); + aftersalesPersonResponsibleEntityList.add(aftersalesPersonResponsibleEntity); + } + if (!aftersalesPersonResponsibleEntityList.isEmpty()) { + aftersalesPersonResponsibleService.saveBatch(aftersalesPersonResponsibleEntityList); + } + } + + List updateData = personResponsibleVOS.stream().filter(f -> !Objects.isNull(f.getId())).collect(Collectors.toList()); + if (!updateData.isEmpty()) { + for (AftersalesPersonResponsibleVO updateDatum : updateData) { + if (!Objects.isNull(map.get(updateDatum.getId()))) { + String string = map.get(updateDatum.getId()); + if (!updateDatum.getResponsibilityRatio().equals(string)) { + //需要进行修改 + AftersalesPersonResponsibleEntity aftersalesPersonResponsibleEntity = new AftersalesPersonResponsibleEntity(); + aftersalesPersonResponsibleEntity.setId(updateDatum.getId()); + aftersalesPersonResponsibleEntity.setResponsibilityRatio(updateDatum.getResponsibilityRatio()); + aftersalesPersonResponsibleService.updateById(aftersalesPersonResponsibleEntity); + } + } + } + } + + return R.success("操作成功"); + } + + + private List handleAftersalesPersonResponsibleDTO(List personResponsibleDTO, AftersalesWorkOrderEntity workOrderEntity) { + List aftersalesPersonResponsibleEntityList = new ArrayList<>(); + for (AftersalesPersonResponsibleDTO aftersalesPersonResponsibleDTO : personResponsibleDTO) { + AftersalesPersonResponsibleEntity aftersalesPersonResponsibleEntity = BeanUtil.copyProperties(aftersalesPersonResponsibleDTO, AftersalesPersonResponsibleEntity.class); + aftersalesPersonResponsibleEntity.setWordOrderId(workOrderEntity.getId()); + aftersalesPersonResponsibleEntityList.add(aftersalesPersonResponsibleEntity); + + } + return aftersalesPersonResponsibleEntityList; + } + + + /** + * 生成基础工单信息进行保存 + * + * @param myCurrentWarehouse + * @return + */ + private AftersalesWorkOrderEntity generateBasicAftersalesWorkOrderEntity(BasicdataWarehouseEntity myCurrentWarehouse, + BladeUser user, + String discoveryNode, + String workOrderType, + String investigationProcess) { + AftersalesWorkOrderEntity aftersalesWorkOrderEntity = new AftersalesWorkOrderEntity(); + aftersalesWorkOrderEntity.setWorkOrderNumber(afterMa()); + aftersalesWorkOrderEntity.setWarehouseId(myCurrentWarehouse.getId()); + aftersalesWorkOrderEntity.setWarehouseName(myCurrentWarehouse.getName()); + aftersalesWorkOrderEntity.setCeator(user.getNickName()); + aftersalesWorkOrderEntity.setDiscoveryNode(discoveryNode); + aftersalesWorkOrderEntity.setWorkOrderType(workOrderType); + aftersalesWorkOrderEntity.setInitiationIdentification("PC"); + aftersalesWorkOrderEntity.setInvestigationProcess(investigationProcess); + aftersalesWorkOrderEntity.setWorkOrderStatus(WorkOrderStatusConstant.daichuli.getValue()); + return aftersalesWorkOrderEntity; + } /** diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml index a42b23730..b0845cb23 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml @@ -1412,7 +1412,7 @@ AND ldrs.stock_article_status != 2 ) AS orderNum, SUM(ldr.reservation_num + ldr.reservation_stock_list_num) AS planNum, - (SELECT IFNULL(SUM(ldss.stock_quantity),0) FROM logpm_distribution_stock AS ldss WHERE ldss.is_deleted = 0 AND ldss.stockup_id = lds.id) AS scanNum, + (SELECT IFNULL(SUM(ldss.stock_quantity),0) FROM logpm_distribution_stock AS ldss WHERE ldss.is_deleted = 0 AND ldss.stockup_id = lds.id AND ldss.cancel_status != 1) AS scanNum, IFNULL(SUM(ldr.reservation_stock_list_num),0) AS inventoryNum FROM logpm_distribution_stockup AS lds @@ -1655,6 +1655,7 @@ logpm_distribution_stock AS ldss WHERE ldss.is_deleted = 0 + ldss.cancel_status != 1 AND ldss.reservation_id = ldbl.id ) AS scanNum, ( diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java index 0a29b6279..e4d3d9ded 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java @@ -5985,6 +5985,16 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl "1".equals(a.getType())); + if (anyMatch) { + List packageIds = updateData.stream().filter(a -> "1".equals(a.getType())).map(DistributionStockEntity::getParcelListId).collect(Collectors.toList()); + distributionParcelListService.update(Wrappers.update().lambda() + .in(DistributionParcelListEntity::getId,packageIds) + .set(DistributionParcelListEntity::getOrderPackageStockupStatus,OrderPackageStockupStatusConstant.daibeihuo.getValue()) + ); + } + } }