|
|
|
@ -18,6 +18,7 @@ package com.logpm.aftersales.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
@ -33,6 +34,7 @@ import com.logpm.aftersales.mapper.AftersalesCustomerMallMapper;
|
|
|
|
|
import com.logpm.aftersales.mapper.AftersalesWorkOrderMapper; |
|
|
|
|
import com.logpm.aftersales.service.*; |
|
|
|
|
import com.logpm.aftersales.vo.*; |
|
|
|
|
import com.logpm.aftersales.wrapper.AftersalesWorkOrderWrapper; |
|
|
|
|
import com.logpm.basicdata.entity.BasicdataWarehouseEntity; |
|
|
|
|
import com.logpm.basicdata.feign.IBasicdataStoreBusinessClient; |
|
|
|
|
import com.logpm.basicdata.feign.IBasicdataWarehouseClient; |
|
|
|
@ -97,17 +99,16 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
private final IBasicdataWarehouseClient warehouseClient; |
|
|
|
|
|
|
|
|
|
private final IDistributionDeliveryListClient distributionDeliveryListClient; |
|
|
|
|
private final IAftersalesCustomerMallService aftersalesCustomerMallService; |
|
|
|
|
|
|
|
|
|
private final AftersalesAppealMapper aftersalesAppealService; |
|
|
|
|
|
|
|
|
|
private final ISysClient sysClient; |
|
|
|
|
private final IUserClient userClient; |
|
|
|
|
|
|
|
|
|
private final AftersalesCustomerMallMapper aftersalesCustomerMallMapper; |
|
|
|
|
private final IUserSearchClient userSearchClient; |
|
|
|
|
private final IBasicdataStoreBusinessClient basicdataStoreBusinessClient; |
|
|
|
|
|
|
|
|
|
// private final IAftersalesWorkOrderService aftersalesWorkOrderService;
|
|
|
|
|
@Override |
|
|
|
|
public IPage<AftersalesWorkOrderVO> selectAftersalesWorkOrderPage(IPage<AftersalesWorkOrderVO> page, AftersalesWorkOrderVO aftersalesWorkOrder) { |
|
|
|
|
return page.setRecords(baseMapper.selectAftersalesWorkOrderPage(page, aftersalesWorkOrder)); |
|
|
|
@ -328,7 +329,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
// aftersalesWorkOrder.setInitiationIdentification("PC");
|
|
|
|
|
aftersalesWorkOrder.setCreateUser(user.getUserId()); |
|
|
|
|
aftersalesWorkOrder.setCreateTime(new Date()); |
|
|
|
|
aftersalesWorkOrder.setCreateDept(Long.valueOf(user.getDeptId())); |
|
|
|
|
aftersalesWorkOrder.setCreateDept(Func.firstLong(user.getDeptId())); |
|
|
|
|
aftersalesWorkOrder.setIsDeleted(0); |
|
|
|
|
aftersalesWorkOrder.setWaybillNumber(aftersalesWorkOrder.getWaybillNumber()); |
|
|
|
|
aftersalesWorkOrder.setStatus(1); |
|
|
|
@ -355,8 +356,8 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
if (ObjectUtils.isNotNull(aftersalesWorkOrder.getAftersalesProcessingResultsDTO()) && ObjectUtils.isNotNull(aftersalesWorkOrder.getAftersalesProcessingResultsDTO().getCompensationMethod())) { |
|
|
|
|
aftersalesWorkOrder.setWorkOrderStatus(WorkOrderStatusConstant.chulijeiguoyitianxei.getValue()); |
|
|
|
|
} |
|
|
|
|
if (!Func.isEmpty(aftersalesWorkOrder.getVehicleRoute())){ |
|
|
|
|
if (aftersalesWorkOrder.getVehicleRoute().indexOf(">")>0){ |
|
|
|
|
if (!Func.isEmpty(aftersalesWorkOrder.getVehicleRoute())) { |
|
|
|
|
if (aftersalesWorkOrder.getVehicleRoute().indexOf(">") > 0) { |
|
|
|
|
String string = aftersalesWorkOrder.getVehicleRoute().replaceAll(">", ">"); |
|
|
|
|
aftersalesWorkOrder.setVehicleRoute(string); |
|
|
|
|
} |
|
|
|
@ -366,7 +367,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
} else { |
|
|
|
|
//修改
|
|
|
|
|
// if (ObjectUtil.isNotNull(aftersalesWorkOrder.getUnPpackageEntityList())) {
|
|
|
|
|
//删除修改包件
|
|
|
|
|
//删除修改包件
|
|
|
|
|
// aftersalesAbnormalPackageService.deleteLogic(aftersalesWorkOrder.getUnPpackageEntityList());
|
|
|
|
|
// }
|
|
|
|
|
LambdaUpdateWrapper<AftersalesAbnormalPackageEntity> updateWrapper = Wrappers.<AftersalesAbnormalPackageEntity>lambdaUpdate() |
|
|
|
@ -447,10 +448,10 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
//添加包件信息
|
|
|
|
|
if (ObjectUtils.isNotNull(aftersalesWorkOrder.getPackageEntityList())) { |
|
|
|
|
List<AftersalesAbnormalPackageEntity> packageEntityList = aftersalesWorkOrder.getPackageEntityList(); |
|
|
|
|
if (!packageEntityList.isEmpty()){ |
|
|
|
|
if (!packageEntityList.isEmpty()) { |
|
|
|
|
List<String> 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(","))+"无一级品信息"); |
|
|
|
|
if (!collect.isEmpty()) { |
|
|
|
|
throw new RuntimeException(collect.stream().collect(Collectors.joining(",")) + "无一级品信息"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//包件信息
|
|
|
|
@ -702,7 +703,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
BeanUtil.copyProperties(aftersaleSurveyRecordDTO, surveyRecordEntity); |
|
|
|
|
surveyRecordEntity.setTypesOf("1"); |
|
|
|
|
surveyRecordEntity.setCreateUser(user.getUserId()); |
|
|
|
|
surveyRecordEntity.setCreateDept(Long.valueOf(user.getDeptId())); |
|
|
|
|
surveyRecordEntity.setCreateDept(Func.firstLong(user.getDeptId())); |
|
|
|
|
surveyRecordEntity.setCreateTime(new Date()); |
|
|
|
|
surveyRecordEntity.setStatus(1); |
|
|
|
|
surveyRecordEntity.setIsDeleted(0); |
|
|
|
@ -715,6 +716,171 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 查询异常完整数据集合 |
|
|
|
|
* |
|
|
|
|
* @param aftersalesWorkOrder |
|
|
|
|
* @param page |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
// public IPage<AftersalesWorkOrderEntity> pageListOwn(Map<String, Object> aftersalesWorkOrder, IPage<Object> page) {
|
|
|
|
|
// //查询用户角色信息
|
|
|
|
|
// BladeUser user = AuthUtil.getUser();
|
|
|
|
|
// String roleName = user.getRoleName();
|
|
|
|
|
//
|
|
|
|
|
// String tenantId = user.getTenantId();
|
|
|
|
|
// // 查询 状态条件
|
|
|
|
|
// //查询客服岗位
|
|
|
|
|
// List<DictBiz> warehouseType = DictBizCache.getList("after_sales_visits");
|
|
|
|
|
// if (warehouseType.isEmpty()) {
|
|
|
|
|
// throw new ServiceException("注意,注意!售后访问字典未配置!请配置!");
|
|
|
|
|
// } else {
|
|
|
|
|
// Optional<DictBiz> first = warehouseType.stream().filter(i -> {
|
|
|
|
|
// if (i.getDictValue().equals(roleName)) {
|
|
|
|
|
// return true;
|
|
|
|
|
// }
|
|
|
|
|
// return false;
|
|
|
|
|
// }).findFirst();
|
|
|
|
|
// Object workOrderStatus = aftersalesWorkOrder.get("workOrderStatus");
|
|
|
|
|
// if (first.isPresent()) {
|
|
|
|
|
// //存在
|
|
|
|
|
// String dictValue = first.get().getDictKey();
|
|
|
|
|
//
|
|
|
|
|
// switch (dictValue) {
|
|
|
|
|
// case "1": //客服经理 查询全部待处理工单
|
|
|
|
|
// //待处理
|
|
|
|
|
// if (ObjectUtils.isNotNull(workOrderStatus) && "500".equals(workOrderStatus)) {
|
|
|
|
|
// aftersalesWorkOrder.remove("workOrderStatus");
|
|
|
|
|
// aftersalesWorkOrder.put("customerServiceState", "30");
|
|
|
|
|
// } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daichuli.getValue().equals(workOrderStatus)) {
|
|
|
|
|
// aftersalesWorkOrder.remove("workOrderStatus");
|
|
|
|
|
// aftersalesWorkOrder.put("customerServiceState", "80"); //55的待审核
|
|
|
|
|
// } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yichuli.getValue().equals(workOrderStatus)) {
|
|
|
|
|
// aftersalesWorkOrder.remove("workOrderStatus");
|
|
|
|
|
// aftersalesWorkOrder.put("customerServiceState", "60"); //55的待审核
|
|
|
|
|
// } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yiwanjei.getValue().equals(workOrderStatus)) {
|
|
|
|
|
// aftersalesWorkOrder.remove("workOrderStatus");
|
|
|
|
|
// aftersalesWorkOrder.put("customerServiceState", "10");
|
|
|
|
|
// } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daishenhe.getValue().equals(workOrderStatus)) {
|
|
|
|
|
// aftersalesWorkOrder.remove("workOrderStatus");
|
|
|
|
|
// aftersalesWorkOrder.put("customerServiceState", "40");
|
|
|
|
|
// } else if (ObjectUtils.isNull(workOrderStatus)) {
|
|
|
|
|
// aftersalesWorkOrder.put("customerIdentification", "1");
|
|
|
|
|
// }
|
|
|
|
|
// break;
|
|
|
|
|
// case "2": // 营业部客服
|
|
|
|
|
// BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
|
|
|
|
|
// if (ObjectUtils.isNotNull(myCurrentWarehouse)) {
|
|
|
|
|
// aftersalesWorkOrder.put("warehouseId", myCurrentWarehouse.getId());
|
|
|
|
|
// } else {
|
|
|
|
|
// throw new ServiceException("请选择仓库!");
|
|
|
|
|
// }
|
|
|
|
|
// //已处理
|
|
|
|
|
// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yichuli.getValue())) {
|
|
|
|
|
// aftersalesWorkOrder.remove("workOrderStatus");
|
|
|
|
|
// aftersalesWorkOrder.put("handleStatus", "30");
|
|
|
|
|
// }
|
|
|
|
|
// //待处理
|
|
|
|
|
// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.daichuli.getValue())) {
|
|
|
|
|
// aftersalesWorkOrder.put("handleStatus", "40");
|
|
|
|
|
// }
|
|
|
|
|
// //处理中
|
|
|
|
|
// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.chulizhong.getValue())) {
|
|
|
|
|
// aftersalesWorkOrder.put("handleStatus", "50");
|
|
|
|
|
// }
|
|
|
|
|
// //已完结
|
|
|
|
|
// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yiwanjei.getValue())) {
|
|
|
|
|
// aftersalesWorkOrder.remove("workOrderStatus");
|
|
|
|
|
// aftersalesWorkOrder.put("handleStatus", "20");
|
|
|
|
|
// }
|
|
|
|
|
// //全部
|
|
|
|
|
// if (ObjectUtils.isNotNull(workOrderStatus) && "1000".equals(workOrderStatus)) {
|
|
|
|
|
// aftersalesWorkOrder.remove("workOrderStatus");
|
|
|
|
|
// aftersalesWorkOrder.put("handleStatus", "10");
|
|
|
|
|
// }
|
|
|
|
|
//// if( ObjectUtils.isNull(workOrderStatus)){
|
|
|
|
|
//// aftersalesWorkOrder.put("handleStatus","10");
|
|
|
|
|
//// }
|
|
|
|
|
//
|
|
|
|
|
// break;
|
|
|
|
|
// case "3": //职能客服 查询自己的待处理工单
|
|
|
|
|
// if (ObjectUtils.isNotNull(workOrderStatus) && "500".equals(workOrderStatus)) {
|
|
|
|
|
// aftersalesWorkOrder.remove("workOrderStatus");
|
|
|
|
|
// aftersalesWorkOrder.put("customerServiceState", "20");
|
|
|
|
|
// aftersalesWorkOrder.put("customerServiceId", user.getUserId());
|
|
|
|
|
// } else if (ObjectUtils.isNull(workOrderStatus)) {
|
|
|
|
|
// aftersalesWorkOrder.put("customerIdentification", "1");
|
|
|
|
|
// } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yiwanjei.getValue().equals(workOrderStatus)) {
|
|
|
|
|
// aftersalesWorkOrder.remove("workOrderStatus");
|
|
|
|
|
// aftersalesWorkOrder.put("customerServiceState", "10");
|
|
|
|
|
// } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daichuli.getValue().equals(workOrderStatus)) {
|
|
|
|
|
// aftersalesWorkOrder.remove("workOrderStatus");
|
|
|
|
|
// aftersalesWorkOrder.put("customerServiceState", "31"); // 待处理
|
|
|
|
|
// aftersalesWorkOrder.put("customerServiceId", user.getUserId());
|
|
|
|
|
// }
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// //不存在
|
|
|
|
|
// BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
|
|
|
|
|
// if (ObjectUtils.isNotNull(myCurrentWarehouse)) {
|
|
|
|
|
// aftersalesWorkOrder.put("warehouseId", myCurrentWarehouse.getId());
|
|
|
|
|
// } else {
|
|
|
|
|
// throw new ServiceException("请选择仓库!");
|
|
|
|
|
// }
|
|
|
|
|
// //已处理
|
|
|
|
|
// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yichuli.getValue())) {
|
|
|
|
|
// aftersalesWorkOrder.remove("workOrderStatus");
|
|
|
|
|
// aftersalesWorkOrder.put("handleStatus", "30");
|
|
|
|
|
// }
|
|
|
|
|
// //待处理
|
|
|
|
|
// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.daichuli.getValue())) {
|
|
|
|
|
// aftersalesWorkOrder.put("handleStatus", "40");
|
|
|
|
|
// }
|
|
|
|
|
// //处理中
|
|
|
|
|
// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.chulizhong.getValue())) {
|
|
|
|
|
// aftersalesWorkOrder.put("handleStatus", "50");
|
|
|
|
|
// }
|
|
|
|
|
// //已完结
|
|
|
|
|
// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yiwanjei.getValue())) {
|
|
|
|
|
// aftersalesWorkOrder.remove("workOrderStatus");
|
|
|
|
|
// aftersalesWorkOrder.put("handleStatus", "20");
|
|
|
|
|
// }
|
|
|
|
|
// //全部
|
|
|
|
|
// if (ObjectUtils.isNotNull(workOrderStatus) && "1000".equals(workOrderStatus)) {
|
|
|
|
|
// aftersalesWorkOrder.remove("workOrderStatus");
|
|
|
|
|
// aftersalesWorkOrder.put("handleStatus", "10");
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// AftersalesWorkOrderEntity workOrderEntity = JSONObject.parseObject(JSONObject.toJSONString(aftersalesWorkOrder), AftersalesWorkOrderEntity.class);
|
|
|
|
|
// IPage<AftersalesWorkOrderEntity> iPage = baseMapper.pageListOwn(page, workOrderEntity);
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// iPage.getRecords().forEach(i -> {
|
|
|
|
|
// if (ObjectUtils.isNotNull(i.getCustomerServiceId())) {
|
|
|
|
|
// R<List<User>> listR = userSearchClient.listByUser(String.valueOf(i.getCustomerServiceId()));
|
|
|
|
|
// if (ObjectUtils.isNotNull(listR.getData())) {
|
|
|
|
|
// listR.getData().forEach(a -> {
|
|
|
|
|
// long time = System.currentTimeMillis() / 1000; //当前时间
|
|
|
|
|
// if (ObjectUtils.isNotNull(a.getDownTime())) {
|
|
|
|
|
// long l = a.getDownTime().getTime() / 1000; //停用时间
|
|
|
|
|
// if (l <= time) {
|
|
|
|
|
// // 已停用
|
|
|
|
|
// i.setDepartStatus(true); //已离职
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// });
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// });
|
|
|
|
|
//
|
|
|
|
|
// return iPage;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 查询异常完整数据集合 |
|
|
|
|
* |
|
|
|
@ -723,162 +889,203 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
public IPage<AftersalesWorkOrderEntity> pageListOwn(Map<String, Object> aftersalesWorkOrder, IPage<Object> page) { |
|
|
|
|
//查询用户角色信息
|
|
|
|
|
public IPage<AftersalesWorkOrderVO> pageListOwn(Map<String, Object> aftersalesWorkOrder, IPage<Object> page) { |
|
|
|
|
// 查询用户角色信息
|
|
|
|
|
BladeUser user = AuthUtil.getUser(); |
|
|
|
|
if (user == null) { |
|
|
|
|
throw new ServiceException("用户信息获取失败"); |
|
|
|
|
} |
|
|
|
|
String roleName = user.getRoleName(); |
|
|
|
|
|
|
|
|
|
String tenantId = user.getTenantId(); |
|
|
|
|
// 查询 状态条件
|
|
|
|
|
//查询客服岗位
|
|
|
|
|
|
|
|
|
|
// 查询 状态条件
|
|
|
|
|
List<DictBiz> warehouseType = DictBizCache.getList("after_sales_visits"); |
|
|
|
|
if (warehouseType.isEmpty()) { |
|
|
|
|
throw new ServiceException("注意,注意!售后访问字典未配置!请配置!"); |
|
|
|
|
} else { |
|
|
|
|
Optional<DictBiz> first = warehouseType.stream().filter(i -> { |
|
|
|
|
if (i.getDictValue().equals(roleName)) { |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
return false; |
|
|
|
|
}).findFirst(); |
|
|
|
|
Object workOrderStatus = aftersalesWorkOrder.get("workOrderStatus"); |
|
|
|
|
if (first.isPresent()) { |
|
|
|
|
//存在
|
|
|
|
|
String dictValue = first.get().getDictKey(); |
|
|
|
|
} |
|
|
|
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
|
|
|
|
|
|
|
|
|
switch (dictValue) { |
|
|
|
|
case "1": //客服经理 查询全部待处理工单
|
|
|
|
|
//待处理
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && "500".equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "30"); |
|
|
|
|
} else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daichuli.getValue().equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "80"); //55的待审核
|
|
|
|
|
}else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yichuli.getValue().equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "60"); //55的待审核
|
|
|
|
|
} else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yiwanjei.getValue().equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "10"); |
|
|
|
|
} else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daishenhe.getValue().equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "40"); |
|
|
|
|
} else if (ObjectUtils.isNull(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.put("customerIdentification", "1"); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case "2": // 营业部客服
|
|
|
|
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
|
|
|
|
if (ObjectUtils.isNotNull(myCurrentWarehouse)) { |
|
|
|
|
aftersalesWorkOrder.put("warehouseId", myCurrentWarehouse.getId()); |
|
|
|
|
} else { |
|
|
|
|
throw new ServiceException("请选择仓库!"); |
|
|
|
|
} |
|
|
|
|
//已处理
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yichuli.getValue())) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "30"); |
|
|
|
|
} |
|
|
|
|
//待处理
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.daichuli.getValue())) { |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "40"); |
|
|
|
|
} |
|
|
|
|
//处理中
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.chulizhong.getValue())) { |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "50"); |
|
|
|
|
} |
|
|
|
|
//已完结
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yiwanjei.getValue())) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "20"); |
|
|
|
|
} |
|
|
|
|
//全部
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && "1000".equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "10"); |
|
|
|
|
} |
|
|
|
|
// if( ObjectUtils.isNull(workOrderStatus)){
|
|
|
|
|
// aftersalesWorkOrder.put("handleStatus","10");
|
|
|
|
|
// }
|
|
|
|
|
if (Func.isEmpty(myCurrentWarehouse)) { |
|
|
|
|
log.warn(">>>>myCurrentWarehouse {}",myCurrentWarehouse); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
case "3": //职能客服 查询自己的待处理工单
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && "500".equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "20"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceId", user.getUserId()); |
|
|
|
|
} else if (ObjectUtils.isNull(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.put("customerIdentification", "1"); |
|
|
|
|
} else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yiwanjei.getValue().equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "10"); |
|
|
|
|
} else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daichuli.getValue().equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "31"); // 待处理
|
|
|
|
|
aftersalesWorkOrder.put("customerServiceId", user.getUserId()); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
//不存在
|
|
|
|
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
|
|
|
|
if (ObjectUtils.isNotNull(myCurrentWarehouse)) { |
|
|
|
|
aftersalesWorkOrder.put("warehouseId", myCurrentWarehouse.getId()); |
|
|
|
|
} else { |
|
|
|
|
throw new ServiceException("请选择仓库!"); |
|
|
|
|
} |
|
|
|
|
//已处理
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yichuli.getValue())) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "30"); |
|
|
|
|
} |
|
|
|
|
//待处理
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.daichuli.getValue())) { |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "40"); |
|
|
|
|
} |
|
|
|
|
//处理中
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.chulizhong.getValue())) { |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "50"); |
|
|
|
|
} |
|
|
|
|
//已完结
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yiwanjei.getValue())) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "20"); |
|
|
|
|
} |
|
|
|
|
//全部
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && "1000".equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "10"); |
|
|
|
|
} |
|
|
|
|
Optional<DictBiz> matchingDictBiz = warehouseType.stream() |
|
|
|
|
.filter(i -> i.getDictValue().equals(roleName)) |
|
|
|
|
.findFirst(); |
|
|
|
|
|
|
|
|
|
Object workOrderStatus = aftersalesWorkOrder.get("workOrderStatus"); |
|
|
|
|
if (matchingDictBiz.isPresent()) { |
|
|
|
|
String dictValue = matchingDictBiz.get().getDictKey(); |
|
|
|
|
switch (dictValue) { |
|
|
|
|
case "1": // 客服经理
|
|
|
|
|
updateWorkOrderForManager(aftersalesWorkOrder, workOrderStatus); |
|
|
|
|
break; |
|
|
|
|
case "2": // 营业部客服
|
|
|
|
|
updateWorkOrderForSales(aftersalesWorkOrder, workOrderStatus); |
|
|
|
|
break; |
|
|
|
|
case "3": // 职能客服
|
|
|
|
|
updateWorkOrderForFunctional(aftersalesWorkOrder, workOrderStatus, user.getUserId()); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
updateWorkOrderForOthers(aftersalesWorkOrder, workOrderStatus); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
AftersalesWorkOrderEntity workOrderEntity = JSONObject.parseObject(JSONObject.toJSONString(aftersalesWorkOrder), AftersalesWorkOrderEntity.class); |
|
|
|
|
IPage<AftersalesWorkOrderEntity> iPage = baseMapper.pageListOwn(page, workOrderEntity); |
|
|
|
|
|
|
|
|
|
iPage.getRecords().forEach(i -> { |
|
|
|
|
if (ObjectUtils.isNotNull(i.getCustomerServiceId())) { |
|
|
|
|
R<List<User>> listR = userSearchClient.listByUser(String.valueOf(i.getCustomerServiceId())); |
|
|
|
|
if (ObjectUtils.isNotNull(listR.getData())) { |
|
|
|
|
listR.getData().forEach(a -> { |
|
|
|
|
long time = new Date().getTime() / 1000; //当前时间
|
|
|
|
|
if (ObjectUtils.isNotNull(a.getDownTime())) { |
|
|
|
|
long l = a.getDownTime().getTime() / 1000; //停用时间
|
|
|
|
|
if (l <= time) { |
|
|
|
|
// 已停用
|
|
|
|
|
i.setDepartStatus(true); //已离职
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
iPage.getRecords().forEach(i -> {}); |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
// 需要判断当前作业仓库是否存在于责任方和处理方
|
|
|
|
|
// LambdaQueryWrapper<AftersalesProcessorEntity> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
// queryWrapper.eq(AftersalesProcessorEntity::getWorkOrderId,)
|
|
|
|
|
// aftersalesProcessorService.list()
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
IPage<AftersalesWorkOrderVO> data = AftersalesWorkOrderWrapper.build().pageVO(iPage); |
|
|
|
|
|
|
|
|
|
data.getRecords().forEach(i -> updateDepartStatus(i, user,myCurrentWarehouse)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 需要判断当前作业仓库是否存在于责任方和处理方
|
|
|
|
|
// LambdaQueryWrapper<AftersalesProcessorEntity> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
// queryWrapper.eq(AftersalesProcessorEntity::getWorkOrderId,)
|
|
|
|
|
// aftersalesProcessorService.list()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return data; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void updateWorkOrderForManager(Map<String, Object> aftersalesWorkOrder, Object workOrderStatus) { |
|
|
|
|
// 对客服经理的工单状态更新逻辑
|
|
|
|
|
// 优化后的代码根据实际情况进行填充
|
|
|
|
|
//待处理
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && "500".equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "30"); |
|
|
|
|
} else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daichuli.getValue().equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "80"); //55的待审核
|
|
|
|
|
} else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yichuli.getValue().equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "60"); //55的待审核
|
|
|
|
|
} else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yiwanjei.getValue().equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "10"); |
|
|
|
|
} else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daishenhe.getValue().equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "40"); |
|
|
|
|
} else if (ObjectUtils.isNull(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.put("customerIdentification", "1"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void updateWorkOrderForSales(Map<String, Object> aftersalesWorkOrder, Object workOrderStatus) { |
|
|
|
|
// 对营业部客服的工单状态更新逻辑
|
|
|
|
|
// 优化后的代码根据实际情况进行填充
|
|
|
|
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
|
|
|
|
if (ObjectUtils.isNotNull(myCurrentWarehouse)) { |
|
|
|
|
aftersalesWorkOrder.put("warehouseId", myCurrentWarehouse.getId()); |
|
|
|
|
} else { |
|
|
|
|
throw new ServiceException("请选择仓库!"); |
|
|
|
|
} |
|
|
|
|
//已处理
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yichuli.getValue())) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "30"); |
|
|
|
|
} |
|
|
|
|
//待处理
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.daichuli.getValue())) { |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "40"); |
|
|
|
|
} |
|
|
|
|
//处理中
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.chulizhong.getValue())) { |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "50"); |
|
|
|
|
} |
|
|
|
|
//已完结
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yiwanjei.getValue())) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "20"); |
|
|
|
|
} |
|
|
|
|
//全部
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && "1000".equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "10"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void updateWorkOrderForFunctional(Map<String, Object> aftersalesWorkOrder, Object workOrderStatus, Long userId) { |
|
|
|
|
// 对职能客服的工单状态更新逻辑
|
|
|
|
|
// 优化后的代码根据实际情况进行填充
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && "500".equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "20"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceId", userId); |
|
|
|
|
} else if (ObjectUtils.isNull(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.put("customerIdentification", "1"); |
|
|
|
|
} else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yiwanjei.getValue().equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "10"); |
|
|
|
|
} else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daichuli.getValue().equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("customerServiceState", "31"); // 待处理
|
|
|
|
|
aftersalesWorkOrder.put("customerServiceId", userId); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void updateWorkOrderForOthers(Map<String, Object> aftersalesWorkOrder, Object workOrderStatus) { |
|
|
|
|
// 对其他情况的工单状态更新逻辑
|
|
|
|
|
// 优化后的代码根据实际情况进行填充
|
|
|
|
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
|
|
|
|
if (ObjectUtils.isNotNull(myCurrentWarehouse)) { |
|
|
|
|
aftersalesWorkOrder.put("warehouseId", myCurrentWarehouse.getId()); |
|
|
|
|
} else { |
|
|
|
|
throw new ServiceException("请选择仓库!"); |
|
|
|
|
} |
|
|
|
|
//已处理
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yichuli.getValue())) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "30"); |
|
|
|
|
} |
|
|
|
|
//待处理
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.daichuli.getValue())) { |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "40"); |
|
|
|
|
} |
|
|
|
|
//处理中
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.chulizhong.getValue())) { |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "50"); |
|
|
|
|
} |
|
|
|
|
//已完结
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yiwanjei.getValue())) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "20"); |
|
|
|
|
} |
|
|
|
|
//全部
|
|
|
|
|
if (ObjectUtils.isNotNull(workOrderStatus) && "1000".equals(workOrderStatus)) { |
|
|
|
|
aftersalesWorkOrder.remove("workOrderStatus"); |
|
|
|
|
aftersalesWorkOrder.put("handleStatus", "10"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void updateDepartStatus(AftersalesWorkOrderVO workOrder, BladeUser user, BasicdataWarehouseEntity myCurrentWarehouse) { |
|
|
|
|
if (ObjectUtils.isNotNull(workOrder.getCustomerServiceId())) { |
|
|
|
|
R<List<User>> listR = userSearchClient.listByUser(String.valueOf(workOrder.getCustomerServiceId())); |
|
|
|
|
if (ObjectUtils.isNotNull(listR.getData())) { |
|
|
|
|
long time = System.currentTimeMillis() / 1000; |
|
|
|
|
listR.getData().forEach(a -> { |
|
|
|
|
if (ObjectUtils.isNotNull(a.getDownTime()) && a.getDownTime().getTime() / 1000 <= time) { |
|
|
|
|
workOrder.setDepartStatus(true); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
workOrder.setTotalAmount(completionRecordService.getTotalMoney(workOrder,myCurrentWarehouse.getId())); |
|
|
|
|
|
|
|
|
|
return iPage; |
|
|
|
|
//
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 查询工单超时未处理并添加超时记录 |
|
|
|
|
*/ |
|
|
|
@ -1147,7 +1354,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
public AftersalesWorkOrderVO getProcessingResults(AftersalesWorkOrderDTO aftersalesWorkOrder) { |
|
|
|
|
public AftersalesWorkOrderVO getProcessingResults(AftersalesWorkOrderDTO aftersalesWorkOrder) { |
|
|
|
|
AftersalesWorkOrderVO aftersalesWorkOrderVO = new AftersalesWorkOrderVO(); |
|
|
|
|
|
|
|
|
|
AftersalesWorkOrderEntity workOrderEntity = baseMapper.selectById(aftersalesWorkOrder.getId()); |
|
|
|
@ -1165,14 +1372,14 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
List<AftersalesProcessorVO> processorVOS = new ArrayList<>(); |
|
|
|
|
if (!list.isEmpty()) { |
|
|
|
|
Iterator<AftersalesProcessorEntity> iterator = list.iterator(); |
|
|
|
|
while (iterator.hasNext()){ |
|
|
|
|
while (iterator.hasNext()) { |
|
|
|
|
AftersalesProcessorEntity next = iterator.next(); |
|
|
|
|
if (ProcessorProcessingStatusStatusConstant.daichuli.getValue().equals(next.getProcessingStatus()) |
|
|
|
|
|| ProcessorProcessingStatusStatusConstant.yichuli.getValue().equals(next.getProcessingStatus())){ |
|
|
|
|
|| ProcessorProcessingStatusStatusConstant.yichuli.getValue().equals(next.getProcessingStatus())) { |
|
|
|
|
AftersalesProcessorVO processorVO = new AftersalesProcessorVO(); |
|
|
|
|
BeanUtil.copyProperties(next, processorVO); |
|
|
|
|
processorVOS.add(processorVO); |
|
|
|
|
}else { |
|
|
|
|
} else { |
|
|
|
|
iterator.remove(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -1201,8 +1408,8 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
mailIdStringBuilder.deleteCharAt(mailIdStringBuilder.length() - 1); |
|
|
|
|
} |
|
|
|
|
String modeByClientIdList = basicdataStoreBusinessClient.findModeByClientIdList(mailIdStringBuilder.toString()); |
|
|
|
|
if (modeByClientIdList != null && !modeByClientIdList.isEmpty() ) { |
|
|
|
|
String[] split= modeByClientIdList.split(","); |
|
|
|
|
if (modeByClientIdList != null && !modeByClientIdList.isEmpty()) { |
|
|
|
|
String[] split = modeByClientIdList.split(","); |
|
|
|
|
StringBuilder newString = new StringBuilder(); |
|
|
|
|
for (String s : split) { |
|
|
|
|
newString.append(DictBizCache.getValue(DictBizConstant.BASIC_FREIGHT_TYPE, s)); |
|
|
|
@ -1224,7 +1431,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
// aftersalesWorkOrderVO.setTypeServiceName(stringBu.toString());
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
}else { |
|
|
|
|
} else { |
|
|
|
|
log.info("暂未查询到合作信息"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1263,16 +1470,13 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//todo 查询完结信息
|
|
|
|
|
AftersalesCompletionRecordEntity completionRecordEntity = new AftersalesCompletionRecordEntity(); |
|
|
|
|
AftersalesCompletionRecipientEntity completionRecipientEntity = new AftersalesCompletionRecipientEntity(); |
|
|
|
|
|
|
|
|
|
List<AftersalesCompletionRecordEntity> list4 = completionRecordService.list(Wrappers.<AftersalesCompletionRecordEntity>query().lambda() |
|
|
|
|
.eq(AftersalesCompletionRecordEntity::getWorkOrderId, aftersalesWorkOrder.getId()) |
|
|
|
|
); |
|
|
|
|
if (Func.isNotEmpty(list4)){ |
|
|
|
|
list4.forEach(i->{ |
|
|
|
|
if (Func.isNotEmpty(list4)) { |
|
|
|
|
list4.forEach(i -> { |
|
|
|
|
BigDecimal bigDecimal = i.getMoney().setScale(2, BigDecimal.ROUND_FLOOR); |
|
|
|
|
i.setMoney(bigDecimal); |
|
|
|
|
}); |
|
|
|
@ -1328,7 +1532,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
BladeUser user = AuthUtil.getUser(); |
|
|
|
|
|
|
|
|
|
List<AftersalesWorkOrderEntity> list = new ArrayList<>(); |
|
|
|
|
data.stream().forEach(k -> { |
|
|
|
|
data.forEach(k -> { |
|
|
|
|
//查询工单数据是否存在
|
|
|
|
|
AftersalesWorkOrderEntity workOrder = baseMapper.selectOne(Wrappers.<AftersalesWorkOrderEntity>query().lambda() |
|
|
|
|
.eq(AftersalesWorkOrderEntity::getWorkOrderNumber, k) |
|
|
|
@ -1408,7 +1612,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
throw new ServiceException("注意,注意!客服人员字典未配置!请配置!"); |
|
|
|
|
} else { |
|
|
|
|
List<String> stringList = new ArrayList<>(); |
|
|
|
|
warehouseType.stream().forEach(i -> { |
|
|
|
|
warehouseType.forEach(i -> { |
|
|
|
|
//查询这个角色ID
|
|
|
|
|
R<String> roleId = sysClient.getRoleIds(tenantId, i.getDictValue()); |
|
|
|
|
if (ObjectUtils.isNotNull(roleId.getData())) { |
|
|
|
@ -1752,7 +1956,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
} |
|
|
|
|
//添加处理结果
|
|
|
|
|
AftersalesProcessingResultsDTO aftersalesProcessingResultsDTO = aftersalesWorkOrderDTO.getAftersalesProcessingResultsDTO(); |
|
|
|
|
aftersalesProcessingResultsDTO.setWorkOrderId(aftersalesWorkOrderDTO.getId()); |
|
|
|
|
aftersalesProcessingResultsDTO.setWorkOrderId(aftersalesWorkOrderDTO.getId()); |
|
|
|
|
|
|
|
|
|
aftersalesProcessingResultsService.ownSaveOrUpdate(aftersalesProcessingResultsDTO); |
|
|
|
|
//修改异常工单处理信息!
|
|
|
|
@ -1830,7 +2034,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
// AftersaleSurveyRecordDTO aftersaleSurveyRecordDTO = new AftersaleSurveyRecordDTO();
|
|
|
|
|
AftersaleSurveyRecordDTO aftersaleSurveyRecordDTO = changName(aftersalesWorkOrderDTO, user); |
|
|
|
|
aftersaleSurveyRecordDTO.setCreateUser(user.getUserId()); |
|
|
|
|
aftersaleSurveyRecordDTO.setCreateDept(Long.valueOf(user.getDeptId())); |
|
|
|
|
aftersaleSurveyRecordDTO.setCreateDept(Func.firstLong(user.getDeptId())); |
|
|
|
|
aftersaleSurveyRecordDTO.setCreateTime(new Date()); |
|
|
|
|
aftersaleSurveyRecordDTO.setStatus(1); |
|
|
|
|
aftersaleSurveyRecordDTO.setIsDeleted(0); |
|
|
|
@ -1974,7 +2178,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
} |
|
|
|
|
surveyRecordEntity.setTenantId(user.getTenantId()); |
|
|
|
|
surveyRecordEntity.setCreateUser(user.getUserId()); |
|
|
|
|
surveyRecordEntity.setCreateDept(Long.valueOf(user.getDeptId())); |
|
|
|
|
surveyRecordEntity.setCreateDept(Func.firstLong(user.getDeptId())); |
|
|
|
|
surveyRecordEntity.setDifference(difference); |
|
|
|
|
surveyRecordEntity.setTypesOf("1"); |
|
|
|
|
surveyRecordEntity.setWorkOrderId(workOrderId); |
|
|
|
@ -2162,7 +2366,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
//添加记录
|
|
|
|
|
AftersaleSurveyRecordDTO aftersaleSurveyRecordDTO = changName(aftersalesWorkOrderDTO, user); |
|
|
|
|
aftersaleSurveyRecordDTO.setCreateUser(user.getUserId()); |
|
|
|
|
aftersaleSurveyRecordDTO.setCreateDept(Long.valueOf(user.getDeptId())); |
|
|
|
|
aftersaleSurveyRecordDTO.setCreateDept(Func.firstLong(user.getDeptId())); |
|
|
|
|
aftersaleSurveyRecordDTO.setCreateTime(new Date()); |
|
|
|
|
aftersaleSurveyRecordDTO.setStatus(1); |
|
|
|
|
aftersaleSurveyRecordDTO.setIsDeleted(0); |
|
|
|
@ -2231,6 +2435,35 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 修改申述状态数据 |
|
|
|
|
* |
|
|
|
|
* @param aftersalesAppeal |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
// @Override
|
|
|
|
|
// public boolean updateByIdAppel(AftersalesAppealEntity aftersalesAppeal) {
|
|
|
|
|
//
|
|
|
|
|
// BladeUser user = AuthUtil.getUser();
|
|
|
|
|
// aftersalesAppeal.setProcessedByName(user.getUserName());
|
|
|
|
|
// aftersalesAppeal.setProcessedById(user.getUserId());
|
|
|
|
|
// aftersalesAppeal.setProcessedDate(new Date());
|
|
|
|
|
// if (ObjectUtils.isNotNull(aftersalesAppeal.getTypesOf()) && "3".equals(aftersalesAppeal.getTypesOf()) || ObjectUtils.isNotNull(aftersalesAppeal.getTypesOf()) && "2".equals(aftersalesAppeal.getTypesOf())) {
|
|
|
|
|
// //取消订单申述
|
|
|
|
|
// AftersalesWorkOrderEntity workOrderEntity = new AftersalesWorkOrderEntity();
|
|
|
|
|
// workOrderEntity.setId(aftersalesAppeal.getWorkOrderId());
|
|
|
|
|
// workOrderEntity.setWorkOrderStatus(WorkOrderStatusConstant.yiwanjei.getValue());
|
|
|
|
|
// baseMapper.updateById(workOrderEntity);
|
|
|
|
|
//
|
|
|
|
|
// if("2".equals(aftersalesAppeal.getTypesOf())){
|
|
|
|
|
// // 增加驳回记录信息
|
|
|
|
|
// addSurveyRecord(user,workOrderEntity.getId(),"申述驳回:"+aftersalesAppeal.getHandlingReason(),"3");
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
// return aftersalesAppealService.updateById(aftersalesAppeal) > 0;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 修改申述状态数据 |
|
|
|
|
* |
|
|
|
@ -2239,21 +2472,52 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
public boolean updateByIdAppel(AftersalesAppealEntity aftersalesAppeal) { |
|
|
|
|
|
|
|
|
|
// 安全性校验:确保用户信息不为空
|
|
|
|
|
BladeUser user = AuthUtil.getUser(); |
|
|
|
|
if (user == null) { |
|
|
|
|
throw new RuntimeException("用户信息获取失败"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 参数合法性校验:校验aftersalesAppeal不为空
|
|
|
|
|
if (aftersalesAppeal == null) { |
|
|
|
|
throw new IllegalArgumentException("申诉信息不能为空"); |
|
|
|
|
} |
|
|
|
|
// 参数合法性校验:校验申诉类型不为空且为预期值
|
|
|
|
|
String typesOf = aftersalesAppeal.getTypesOf(); |
|
|
|
|
if (!ObjectUtils.isNotNull(typesOf) || !("2".equals(typesOf) || "3".equals(typesOf))) { |
|
|
|
|
throw new IllegalArgumentException("无效的申诉类型"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 设置处理人信息和处理时间
|
|
|
|
|
aftersalesAppeal.setProcessedByName(user.getUserName()); |
|
|
|
|
aftersalesAppeal.setProcessedById(user.getUserId()); |
|
|
|
|
aftersalesAppeal.setProcessedDate(new Date()); |
|
|
|
|
if (ObjectUtils.isNotNull(aftersalesAppeal.getTypesOf()) && "3".equals(aftersalesAppeal.getTypesOf()) || ObjectUtils.isNotNull(aftersalesAppeal.getTypesOf()) && "2".equals(aftersalesAppeal.getTypesOf())) { |
|
|
|
|
//取消订单申述
|
|
|
|
|
AftersalesWorkOrderEntity workOrderEntity = new AftersalesWorkOrderEntity(); |
|
|
|
|
workOrderEntity.setId(aftersalesAppeal.getWorkOrderId()); |
|
|
|
|
workOrderEntity.setWorkOrderStatus(WorkOrderStatusConstant.yiwanjei.getValue()); |
|
|
|
|
baseMapper.updateById(workOrderEntity); |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
if ("3".equals(typesOf) || "2".equals(typesOf)) { |
|
|
|
|
// 根据不同的申诉类型进行订单状态更新和申述记录添加
|
|
|
|
|
AftersalesWorkOrderEntity workOrderEntity = new AftersalesWorkOrderEntity(); |
|
|
|
|
workOrderEntity.setId(aftersalesAppeal.getWorkOrderId()); |
|
|
|
|
workOrderEntity.setWorkOrderStatus(WorkOrderStatusConstant.yiwanjei.getValue()); |
|
|
|
|
baseMapper.updateById(workOrderEntity); |
|
|
|
|
|
|
|
|
|
if ("2".equals(typesOf)) { |
|
|
|
|
// 添加驳回记录信息
|
|
|
|
|
String recordDesc = "申述驳回:" + aftersalesAppeal.getHandlingReason(); |
|
|
|
|
addSurveyRecord(user, workOrderEntity.getId(), recordDesc, "3"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 更新申诉信息
|
|
|
|
|
return aftersalesAppealService.updateById(aftersalesAppeal) > 0; |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("处理申诉信息时发生异常", e); |
|
|
|
|
// 异常处理:记录日志或抛出自定义异常
|
|
|
|
|
throw new RuntimeException("处理申诉信息时发生异常", e); |
|
|
|
|
} |
|
|
|
|
return aftersalesAppealService.updateById(aftersalesAppeal) > 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 修改结束仲裁 |
|
|
|
|
* |
|
|
|
@ -2306,7 +2570,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
surveyRecordDTO.setTypesOf("1"); |
|
|
|
|
surveyRecordDTO.setDifference("2"); |
|
|
|
|
surveyRecordDTO.setCreateUser(user.getUserId()); |
|
|
|
|
surveyRecordDTO.setCreateDept(Long.valueOf(user.getDeptId())); |
|
|
|
|
surveyRecordDTO.setCreateDept(Func.firstLong(user.getDeptId())); |
|
|
|
|
surveyRecordDTO.setCreateTime(new Date()); |
|
|
|
|
surveyRecordDTO.setStatus(1); |
|
|
|
|
surveyRecordDTO.setIsDeleted(0); |
|
|
|
@ -2353,29 +2617,21 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
|
|
|
|
|
for (AftersalesWorkOrderEntity orderByOrderPackageCodeAndWarehouseIdAndOtherNodex : workOrderByOrderPackageCodeAndWarehouseIdAndOtherNodex) { |
|
|
|
|
// 更新这个异常工单下面的包件
|
|
|
|
|
aftersalesAbnormalPackageMapper.updateAftersalesAbnormalPackageByWorkOrderIdAndPackCodeAndOtherNodex(orderByOrderPackageCodeAndWarehouseIdAndOtherNodex.getId(),orderPackageCode, packageFinish); |
|
|
|
|
aftersalesAbnormalPackageMapper.updateAftersalesAbnormalPackageByWorkOrderIdAndPackCodeAndOtherNodex(orderByOrderPackageCodeAndWarehouseIdAndOtherNodex.getId(), orderPackageCode, packageFinish); |
|
|
|
|
|
|
|
|
|
orderByOrderPackageCodeAndWarehouseIdAndOtherNodex.setPackageFinish(packageFinish); |
|
|
|
|
baseMapper.updateById(orderByOrderPackageCodeAndWarehouseIdAndOtherNodex); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public AftersalesWorkOrderListExcelDTO exportAftersalesWorkOrderList() { |
|
|
|
|
List<BasicdataWarehouseEntity> warehouseList = warehouseClient.getMyWarehouseList(); |
|
|
|
|
List<Long> warehouseListIds = null; |
|
|
|
|
if (!warehouseList.isEmpty()){ |
|
|
|
|
warehouseListIds = warehouseList.stream().map(BasicdataWarehouseEntity::getId).collect(Collectors.toList()); |
|
|
|
|
if (!warehouseList.isEmpty()) { |
|
|
|
|
warehouseListIds = warehouseList.stream().map(BasicdataWarehouseEntity::getId).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
AftersalesWorkOrderListExcelDTO aftersalesWorkOrderListExcelDTO = new AftersalesWorkOrderListExcelDTO(); |
|
|
|
|
List<AftersalesWorkOrderExcel> allAftersalesWorkOrderExcels = baseMapper.selectAllAftersalesWorkOrderList(warehouseListIds); |
|
|
|
|