Browse Source

Merge branch 'dev' into pre-production

single_db
pref_mail@163.com 1 year ago
parent
commit
a73d217a9e
  1. 8
      blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesArbitrationOrderEntity.java
  2. 39
      blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesCustomerMallEntity.java
  3. 13
      blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesWorkOrderEntity.java
  4. 49
      blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesCustomerMallClient.java
  5. 35
      blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesCustomerMallVO.java
  6. 151
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesCustomerMallController.java
  7. 22
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java
  8. 34
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesCustomerMallDTO.java
  9. 44
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesCustomerMallExcel.java
  10. 53
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesCustomerMallClient.java
  11. 54
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesCustomerMallMapper.java
  12. 19
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesCustomerMallMapper.xml
  13. 52
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesCustomerMallService.java
  14. 7
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesWorkOrderService.java
  15. 57
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesCustomerMallServiceImpl.java
  16. 36
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java
  17. 50
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/wrapper/AftersalesCustomerMallWrapper.java
  18. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  19. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

8
blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesArbitrationOrderEntity.java

@ -76,5 +76,13 @@ public class AftersalesArbitrationOrderEntity extends TenantEntity {
*/
@ApiModelProperty(value = "操作 正常完结 客服完结 ")
private String operateType;
/**
* 归属客服ID
*/
private String customerServiceId;
/**
* 归属客服名称
*/
private String customerServiceName;
}

39
blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesCustomerMallEntity.java

@ -0,0 +1,39 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.aftersales.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
/**
* 异常工单商场对应客服 实体类
*
* @author cyz
* @since 2023-12-23
*/
@Data
@TableName("logpm_aftersales_customer_mall")
@ApiModel(value = "AftersalesCustomerMall对象", description = "异常工单商场对应客服")
@EqualsAndHashCode(callSuper = true)
public class AftersalesCustomerMallEntity extends TenantEntity {
}

13
blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesWorkOrderEntity.java

@ -264,5 +264,18 @@ public class AftersalesWorkOrderEntity extends TenantEntity {
@ApiModelProperty(value = "标识 1订单 2 零担 3库存品 ")
@TableField(exist = false)
private String identifying;
/**
* 处理仓库ID
*/
private Long completionId;
/**
* 处理仓库名称
*/
private String completionName;
}

49
blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesCustomerMallClient.java

@ -0,0 +1,49 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.aftersales.feign;
import org.springblade.core.mp.support.BladePage;
import com.logpm.aftersales.entity.AftersalesCustomerMallEntity;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* 异常工单商场对应客服 Feign接口类
*
* @author cyz
* @since 2023-12-23
*/
@FeignClient(
value = "blade-aftersales"
)
public interface IAftersalesCustomerMallClient {
String API_PREFIX = "/client";
String TOP = API_PREFIX + "/top";
/**
* 获取异常工单商场对应客服列表
*
* @param current 页号
* @param size 页数
* @return BladePage
*/
@GetMapping(TOP)
BladePage<AftersalesCustomerMallEntity> top(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
}

35
blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesCustomerMallVO.java

@ -0,0 +1,35 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.aftersales.vo;
import com.logpm.aftersales.entity.AftersalesCustomerMallEntity;
import org.springblade.core.tool.node.INode;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 异常工单商场对应客服 视图实体类
*
* @author cyz
* @since 2023-12-23
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class AftersalesCustomerMallVO extends AftersalesCustomerMallEntity {
private static final long serialVersionUID = 1L;
}

151
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesCustomerMallController.java

@ -0,0 +1,151 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.aftersales.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.aftersales.entity.AftersalesCustomerMallEntity;
import com.logpm.aftersales.vo.AftersalesCustomerMallVO;
import com.logpm.aftersales.excel.AftersalesCustomerMallExcel;
import com.logpm.aftersales.wrapper.AftersalesCustomerMallWrapper;
import com.logpm.aftersales.service.IAftersalesCustomerMallService;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Map;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
/**
* 异常工单商场对应客服 控制器
*
* @author cyz
* @since 2023-12-23
*/
@RestController
@AllArgsConstructor
@RequestMapping("blade-aftersales/aftersalesCustomerMall")
@Api(value = "异常工单商场对应客服", tags = "异常工单商场对应客服接口")
public class AftersalesCustomerMallController extends BladeController {
private final IAftersalesCustomerMallService aftersalesCustomerMallService;
/**
* 异常工单商场对应客服 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "详情", notes = "传入aftersalesCustomerMall")
public R<AftersalesCustomerMallVO> detail(AftersalesCustomerMallEntity aftersalesCustomerMall) {
AftersalesCustomerMallEntity detail = aftersalesCustomerMallService.getOne(Condition.getQueryWrapper(aftersalesCustomerMall));
return R.data(AftersalesCustomerMallWrapper.build().entityVO(detail));
}
/**
* 异常工单商场对应客服 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入aftersalesCustomerMall")
public R<IPage<AftersalesCustomerMallVO>> list(@ApiIgnore @RequestParam Map<String, Object> aftersalesCustomerMall, Query query) {
IPage<AftersalesCustomerMallEntity> pages = aftersalesCustomerMallService.page(Condition.getPage(query), Condition.getQueryWrapper(aftersalesCustomerMall, AftersalesCustomerMallEntity.class));
return R.data(AftersalesCustomerMallWrapper.build().pageVO(pages));
}
/**
* 异常工单商场对应客服 自定义分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "分页", notes = "传入aftersalesCustomerMall")
public R<IPage<AftersalesCustomerMallVO>> page(AftersalesCustomerMallVO aftersalesCustomerMall, Query query) {
IPage<AftersalesCustomerMallVO> pages = aftersalesCustomerMallService.selectAftersalesCustomerMallPage(Condition.getPage(query), aftersalesCustomerMall);
return R.data(pages);
}
/**
* 异常工单商场对应客服 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "新增", notes = "传入aftersalesCustomerMall")
public R save(@Valid @RequestBody AftersalesCustomerMallEntity aftersalesCustomerMall) {
return R.status(aftersalesCustomerMallService.save(aftersalesCustomerMall));
}
/**
* 异常工单商场对应客服 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入aftersalesCustomerMall")
public R update(@Valid @RequestBody AftersalesCustomerMallEntity aftersalesCustomerMall) {
return R.status(aftersalesCustomerMallService.updateById(aftersalesCustomerMall));
}
/**
* 异常工单商场对应客服 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "新增或修改", notes = "传入aftersalesCustomerMall")
public R submit(@Valid @RequestBody AftersalesCustomerMallEntity aftersalesCustomerMall) {
return R.status(aftersalesCustomerMallService.saveOrUpdate(aftersalesCustomerMall));
}
/**
* 异常工单商场对应客服 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@ApiOperation(value = "逻辑删除", notes = "传入ids")
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
return R.status(aftersalesCustomerMallService.deleteLogic(Func.toLongList(ids)));
}
/**
* 导出数据
*/
@GetMapping("/export-aftersalesCustomerMall")
@ApiOperationSupport(order = 9)
@ApiOperation(value = "导出数据", notes = "传入aftersalesCustomerMall")
public void exportAftersalesCustomerMall(@ApiIgnore @RequestParam Map<String, Object> aftersalesCustomerMall, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<AftersalesCustomerMallEntity> queryWrapper = Condition.getQueryWrapper(aftersalesCustomerMall, AftersalesCustomerMallEntity.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(AftersalesCustomerMall::getTenantId, bladeUser.getTenantId());
//}
queryWrapper.lambda().eq(AftersalesCustomerMallEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<AftersalesCustomerMallExcel> list = aftersalesCustomerMallService.exportAftersalesCustomerMall(queryWrapper);
ExcelUtil.export(response, "异常工单商场对应客服数据" + DateUtil.time(), "异常工单商场对应客服数据表", list, AftersalesCustomerMallExcel.class);
}
}

22
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java

@ -257,6 +257,7 @@ public class AftersalesWorkOrderController extends BladeController {
@ApiOperationSupport(order = 2)
@ApiOperation(value = "客服异常工单 异常工单分配处理客服信息", notes = "传入aftersalesWorkOrder")
public R updateAssignCustomerService(@RequestBody AftersalesWorkOrderDTO aftersalesWorkOrderDTO) {
log.info("异常工单分配处理客服信息>>>{}",aftersalesWorkOrderDTO.toString());
if(ObjectUtils.isNull( aftersalesWorkOrderDTO.getAssignList() )){
return R.fail("请选择指派的工单 !");
}
@ -268,6 +269,24 @@ public class AftersalesWorkOrderController extends BladeController {
}
/**
* 客服异常工单 异常工单仲裁 分配处理客服信息
*/
@PostMapping("/assignArbitrateService")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "客服异常工单 异常工单仲裁 分配处理客服信息", notes = "传入aftersalesWorkOrder")
public R updateAssignArbitrateService(@RequestBody AftersalesWorkOrderDTO aftersalesWorkOrderDTO) {
log.info("异常工单仲裁 分配处理客服信息>>>{}",aftersalesWorkOrderDTO.toString());
if(ObjectUtils.isNull( aftersalesWorkOrderDTO.getAssignList() )){
return R.fail("请选择指派的工单 !");
}
if(ObjectUtils.isNull( aftersalesWorkOrderDTO.getCustomerServiceId() ) || ObjectUtils.isNull( aftersalesWorkOrderDTO.getCustomerServiceName() )){
return R.fail("请填写客服信息 !");
}
R r = aftersalesWorkOrderService.updateAssignArbitrateService(aftersalesWorkOrderDTO);
return R.success("提交成功!");
}
/**
@ -310,6 +329,7 @@ public class AftersalesWorkOrderController extends BladeController {
@ApiOperationSupport(order = 4)
@ApiOperation(value = "异常工单 修改完结处理", notes = "传入aftersalesWorkOrder")
public R updateCompletionEnd(@Valid @RequestBody AftersalesWorkOrderDTO aftersalesWorkOrder) {
log.info("修改完结处理>>>{}",aftersalesWorkOrder.toString());
if(ObjectUtils.isNull(aftersalesWorkOrder.getId())){
throw new ServiceException("异常工单ID不能为空!");
}
@ -406,7 +426,7 @@ public class AftersalesWorkOrderController extends BladeController {
@ApiOperationSupport(order = 6)
@ApiOperation(value = "处理方 仓库查询待处理的异常工单", notes = "传入aftersalesWorkOrder")
public R getPendingWorkOrder(AftersalesWorkOrderDTO aftersalesWorkOrder,Query query) {
log.info("工单创建的数据{}",aftersalesWorkOrder.toString());
log.info("工单创建或修改的数据{}",aftersalesWorkOrder.toString());
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(ObjectUtils.isNotNull(myCurrentWarehouse)){
aftersalesWorkOrder.setWarehouseId(myCurrentWarehouse.getId());

34
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesCustomerMallDTO.java

@ -0,0 +1,34 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.aftersales.dto;
import com.logpm.aftersales.entity.AftersalesCustomerMallEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 异常工单商场对应客服 数据传输对象实体类
*
* @author cyz
* @since 2023-12-23
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class AftersalesCustomerMallDTO extends AftersalesCustomerMallEntity {
private static final long serialVersionUID = 1L;
}

44
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/excel/AftersalesCustomerMallExcel.java

@ -0,0 +1,44 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.aftersales.excel;
import lombok.Data;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import java.io.Serializable;
/**
* 异常工单商场对应客服 Excel实体类
*
* @author cyz
* @since 2023-12-23
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class AftersalesCustomerMallExcel implements Serializable {
private static final long serialVersionUID = 1L;
}

53
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesCustomerMallClient.java

@ -0,0 +1,53 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.aftersales.feign;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import com.logpm.aftersales.entity.AftersalesCustomerMallEntity;
import com.logpm.aftersales.service.IAftersalesCustomerMallService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
/**
* 异常工单商场对应客服 Feign实现类
*
* @author cyz
* @since 2023-12-23
*/
@ApiIgnore()
@RestController
@AllArgsConstructor
public class AftersalesCustomerMallClient implements IAftersalesCustomerMallClient {
private final IAftersalesCustomerMallService aftersalesCustomerMallService;
@Override
@GetMapping(TOP)
public BladePage<AftersalesCustomerMallEntity> top(Integer current, Integer size) {
Query query = new Query();
query.setCurrent(current);
query.setSize(size);
IPage<AftersalesCustomerMallEntity> page = aftersalesCustomerMallService.page(Condition.getPage(query));
return BladePage.of(page);
}
}

54
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesCustomerMallMapper.java

@ -0,0 +1,54 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.aftersales.mapper;
import com.logpm.aftersales.entity.AftersalesCustomerMallEntity;
import com.logpm.aftersales.vo.AftersalesCustomerMallVO;
import com.logpm.aftersales.excel.AftersalesCustomerMallExcel;
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.List;
/**
* 异常工单商场对应客服 Mapper 接口
*
* @author cyz
* @since 2023-12-23
*/
public interface AftersalesCustomerMallMapper extends BaseMapper<AftersalesCustomerMallEntity> {
/**
* 自定义分页
*
* @param page
* @param aftersalesCustomerMall
* @return
*/
List<AftersalesCustomerMallVO> selectAftersalesCustomerMallPage(IPage page, AftersalesCustomerMallVO aftersalesCustomerMall);
/**
* 获取导出数据
*
* @param queryWrapper
* @return
*/
List<AftersalesCustomerMallExcel> exportAftersalesCustomerMall(@Param("ew") Wrapper<AftersalesCustomerMallEntity> queryWrapper);
}

19
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesCustomerMallMapper.xml

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.logpm.aftersales.mapper.AftersalesCustomerMallMapper">
<!-- 通用查询映射结果 -->
<resultMap id="aftersalesCustomerMallResultMap" type="com.logpm.aftersales.entity.AftersalesCustomerMallEntity">
</resultMap>
<select id="selectAftersalesCustomerMallPage" resultMap="aftersalesCustomerMallResultMap">
select * from logpm_aftersales_customer_mall where is_deleted = 0
</select>
<select id="exportAftersalesCustomerMall" resultType="com.logpm.aftersales.excel.AftersalesCustomerMallExcel">
SELECT * FROM logpm_aftersales_customer_mall ${ew.customSqlSegment}
</select>
</mapper>

52
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesCustomerMallService.java

@ -0,0 +1,52 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.aftersales.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.logpm.aftersales.entity.AftersalesCustomerMallEntity;
import com.logpm.aftersales.vo.AftersalesCustomerMallVO;
import com.logpm.aftersales.excel.AftersalesCustomerMallExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
/**
* 异常工单商场对应客服 服务类
*
* @author cyz
* @since 2023-12-23
*/
public interface IAftersalesCustomerMallService extends BaseService<AftersalesCustomerMallEntity> {
/**
* 自定义分页
*
* @param page
* @param aftersalesCustomerMall
* @return
*/
IPage<AftersalesCustomerMallVO> selectAftersalesCustomerMallPage(IPage<AftersalesCustomerMallVO> page, AftersalesCustomerMallVO aftersalesCustomerMall);
/**
* 导出数据
*
* @param queryWrapper
* @return
*/
List<AftersalesCustomerMallExcel> exportAftersalesCustomerMall(Wrapper<AftersalesCustomerMallEntity> queryWrapper);
}

7
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesWorkOrderService.java

@ -234,4 +234,11 @@ public interface IAftersalesWorkOrderService extends BaseService<AftersalesWorkO
* 修改是否可以申述
*/
void updateModifyClaimStatus();
/**
* 客服异常工单 异常工单仲裁 分配处理客服信息
* @param aftersalesWorkOrderDTO
* @return
*/
R updateAssignArbitrateService(AftersalesWorkOrderDTO aftersalesWorkOrderDTO);
}

57
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesCustomerMallServiceImpl.java

@ -0,0 +1,57 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.aftersales.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.aftersales.entity.AftersalesCustomerMallEntity;
import com.logpm.aftersales.excel.AftersalesCustomerMallExcel;
import com.logpm.aftersales.mapper.AftersalesCustomerMallMapper;
import com.logpm.aftersales.service.IAftersalesCustomerMallService;
import com.logpm.aftersales.vo.AftersalesCustomerMallVO;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 异常工单商场对应客服 服务实现类
*
* @author cyz
* @since 2023-12-23
*/
@Service
public class AftersalesCustomerMallServiceImpl extends BaseServiceImpl<AftersalesCustomerMallMapper, AftersalesCustomerMallEntity> implements IAftersalesCustomerMallService {
@Override
public IPage<AftersalesCustomerMallVO> selectAftersalesCustomerMallPage(IPage<AftersalesCustomerMallVO> page, AftersalesCustomerMallVO aftersalesCustomerMall) {
return page.setRecords(baseMapper.selectAftersalesCustomerMallPage(page, aftersalesCustomerMall));
}
@Override
public List<AftersalesCustomerMallExcel> exportAftersalesCustomerMall(Wrapper<AftersalesCustomerMallEntity> queryWrapper) {
List<AftersalesCustomerMallExcel> aftersalesCustomerMallList = baseMapper.exportAftersalesCustomerMall(queryWrapper);
//aftersalesCustomerMallList.forEach(aftersalesCustomerMall -> {
// aftersalesCustomerMall.setTypeName(DictCache.getValue(DictEnum.YES_NO, AftersalesCustomerMall.getType()));
//});
return aftersalesCustomerMallList;
}
}

36
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java

@ -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.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@ -196,7 +197,6 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
}
baseMapper.insert(aftersalesWorkOrder);
}else{
//修改
if(ObjectUtil.isNotNull(aftersalesWorkOrder.getUnPpackageEntityList())){
@ -473,7 +473,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
surveyRecordEntity.setDifference("3");
surveyRecordEntity.setWorkOrderId(v.getId());
String collect = v.getCompletionRecordEntities().stream().map(AftersalesCompletionRecordEntity::getIndemnitor).collect(Collectors.joining(","));
surveyRecordEntity.setProcessingResults(collect);
surveyRecordEntity.setProcessingResults(user.getUserName()+"提交了完结信息—》"+collect);
aftersaleSurveyRecordService.save(surveyRecordEntity);
});
return true;
@ -789,7 +789,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
surveyRecordEntity.setDifference("3");
surveyRecordEntity.setTypesOf("1");
surveyRecordEntity.setWorkOrderId(i);
surveyRecordEntity.setProcessingResults("指派客服");
surveyRecordEntity.setProcessingResults("指派客服"+aftersalesWorkOrderDTO.getCustomerServiceName());
aftersaleSurveyRecordService.save(surveyRecordEntity);
}
@ -1039,7 +1039,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
surveyRecordEntity.setDifference("3");
surveyRecordEntity.setTypesOf("1");
surveyRecordEntity.setWorkOrderId(i);
surveyRecordEntity.setProcessingResults("申请仲裁");
surveyRecordEntity.setProcessingResults(user.getUserName()+"提交申请仲裁");
aftersaleSurveyRecordService.save(surveyRecordEntity);
});
if(!arbitrationOrderList.isEmpty()){
@ -1210,6 +1210,8 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
AftersalesWorkOrderEntity workOrderEntity = new AftersalesWorkOrderEntity();
workOrderEntity.setId(aftersalesWorkOrderDTO.getId());
workOrderEntity.setWorkOrderStatus(WorkOrderStatusConstant.yichuli.getValue());
workOrderEntity.setCompletionName(myCurrentWarehouse.getName());
workOrderEntity.setCompletionId(myCurrentWarehouse.getId());
baseMapper.updateById(workOrderEntity);
//修改处理方提交结果
AftersalesProcessorEntity one = aftersalesProcessorService.getOne(Wrappers.<AftersalesProcessorEntity>query().lambda()
@ -1230,8 +1232,13 @@ 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.setCreateTime(new Date());
aftersaleSurveyRecordDTO.setStatus(1);
aftersaleSurveyRecordDTO.setIsDeleted(0);
aftersaleSurveyRecordDTO.setTypesOf("1");
aftersaleSurveyRecordDTO.setProcessingResults(aftersalesProcessingResultsDTO.getResultType());
aftersaleSurveyRecordDTO.setProcessingResults(aftersaleSurveyRecordDTO.getAddDepartment()+"提交了处理结果"+aftersalesProcessingResultsDTO.getResultType());
aftersaleSurveyRecordDTO.setDifference("3");
aftersaleSurveyRecordDTO.setWorkOrderId(aftersalesWorkOrderDTO.getId());
aftersaleSurveyRecordDTO.setFollowWarehouseId(myCurrentWarehouse.getId());
@ -1435,6 +1442,24 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
}
}
/**
* 客服异常工单 异常工单仲裁 分配处理客服信息
* @param aftersalesWorkOrderDTO
* @return
*/
@Override
public R updateAssignArbitrateService(AftersalesWorkOrderDTO aftersalesWorkOrderDTO) {
aftersalesWorkOrderDTO.getAssignList().forEach( i ->{
UpdateWrapper<AftersalesArbitrationOrderEntity> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("work_order_id",aftersalesWorkOrderDTO.getId());
updateWrapper.eq("types_of","1");
updateWrapper.set("customer_service_id",aftersalesWorkOrderDTO.getCustomerServiceId());
updateWrapper.set("customer_service_name",aftersalesWorkOrderDTO.getCustomerServiceName());
aftersalesArbitrationOrderService.update(updateWrapper);
});
return R.status(true);
}
/**
* 添加处理处理方信息
* @param aftersalesWorkOrderDTO
@ -1476,6 +1501,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
if(ObjectUtil.isNotNull(i)){
surveyRecordDTO.setFollowWarehouseName(i.getBusinessName());
surveyRecordDTO.setFollowWarehouseId(i.getBusinessId());
surveyRecordDTO.setProcessingResults(surveyRecordDTO.getAddDepartment()+" 指定处理方信息-> "+i.getBusinessName());
}
return aftersaleSurveyRecordService.saveOrUpdateOwn(surveyRecordDTO);
}

50
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/wrapper/AftersalesCustomerMallWrapper.java

@ -0,0 +1,50 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.aftersales.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import com.logpm.aftersales.entity.AftersalesCustomerMallEntity;
import com.logpm.aftersales.vo.AftersalesCustomerMallVO;
import java.util.Objects;
/**
* 异常工单商场对应客服 包装类,返回视图层所需的字段
*
* @author cyz
* @since 2023-12-23
*/
public class AftersalesCustomerMallWrapper extends BaseEntityWrapper<AftersalesCustomerMallEntity, AftersalesCustomerMallVO> {
public static AftersalesCustomerMallWrapper build() {
return new AftersalesCustomerMallWrapper();
}
@Override
public AftersalesCustomerMallVO entityVO(AftersalesCustomerMallEntity aftersalesCustomerMall) {
AftersalesCustomerMallVO aftersalesCustomerMallVO = Objects.requireNonNull(BeanUtil.copy(aftersalesCustomerMall, AftersalesCustomerMallVO.class));
//User createUser = UserCache.getUser(aftersalesCustomerMall.getCreateUser());
//User updateUser = UserCache.getUser(aftersalesCustomerMall.getUpdateUser());
//aftersalesCustomerMallVO.setCreateUserName(createUser.getName());
//aftersalesCustomerMallVO.setUpdateUserName(updateUser.getName());
return aftersalesCustomerMallVO;
}
}

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java

@ -1386,6 +1386,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
}
@Override
@Async
public void sendFactory(DistributionParcelListEntity distributionParcelListEntity,String signingTime,Long reservationId,String reservationCode,Long warehouseId) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(distributionParcelListEntity.getStockArticleId());
log.info(">>>>>>>>>>> 签收推送 对象 {}",distributionParcelListEntity);
@ -1408,6 +1409,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
@Override
@Transactional
@Async
public void sendReviewFactory(Long signingId,Long warehouseId) {
String brands= "梦天";//可追加

5
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

@ -62,6 +62,7 @@ import org.springblade.common.constant.loading.LoadingStatusConstant;
import org.springblade.common.constant.orderpackage.*;
import org.springblade.common.constant.reservation.*;
import org.springblade.common.constant.signing.SignforDriverSigningStatusConstant;
import org.springblade.common.constant.signing.SignforStatusConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.common.serviceConstant.ServiceConstant;
import org.springblade.common.utils.CommonUtil;
@ -309,6 +310,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
DistributionSignforEntity distributionSignfor = this.getById(id);
BladeUser user = AuthUtil.getUser();
distributionSignfor.setExamineUserId(user.getUserId());
distributionSignfor.setSigningStatus(SignforStatusConstant.yiqianshou.getValue());
distributionSignfor.setExamineUserName(user.getNickName());
this.updateById(distributionSignfor);
distributionAsyncService.sendReviewFactory(id,myCurrentWarehouse.getId());
@ -831,7 +833,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
switch (distributionReservationEntity.getDeliveryType()){
case "1":
//商配
if (stockArticleEntity.getConsigneeUnit().equals(distributionReservationEntity.getReceivingUnit()) && stockArticleEntity.getConsigneePerson().equals(distributionReservationEntity.getConsignee()) && stockArticleEntity.getMallName().equals(distributionReservationEntity.getMallName())){
// if (stockArticleEntity.getConsigneeUnit().equals(distributionReservationEntity.getReceivingUnit()) && stockArticleEntity.getConsigneePerson().equals(distributionReservationEntity.getConsignee()) && stockArticleEntity.getMallName().equals(distributionReservationEntity.getMallName())){
if (stockArticleEntity.getConsigneeUnit().equals(distributionReservationEntity.getReceivingUnit()) && stockArticleEntity.getMallName().equals(distributionReservationEntity.getMallName())){
return true;
}else {
return false;

Loading…
Cancel
Save