Ver código fonte

员工交接

yzc 1 ano atrás
pai
commit
8f7db8f9d7

+ 46 - 0
hx-common/src/main/java/com/fjhx/common/controller/employee/EmployeeHandoverController.java

@@ -0,0 +1,46 @@
+package com.fjhx.common.controller.employee;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.common.entity.employee.dto.EmployeeHandoverDto;
+import com.fjhx.common.entity.employee.dto.EmployeeHandoverSelectDto;
+import com.fjhx.common.entity.employee.vo.EmployeeHandoverVo;
+import com.fjhx.common.service.employee.EmployeeHandoverService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 员工交接 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-07-17
+ */
+@RestController
+@RequestMapping("/employeeHandover")
+public class EmployeeHandoverController {
+
+    @Autowired
+    private EmployeeHandoverService employeeHandoverService;
+
+    /**
+     * 员工交接分页
+     */
+    @PostMapping("/page")
+    public Page<EmployeeHandoverVo> page(@RequestBody EmployeeHandoverSelectDto dto) {
+        return employeeHandoverService.getPage(dto);
+    }
+
+    /**
+     * 员工交接新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody EmployeeHandoverDto employeeHandoverDto) {
+        employeeHandoverService.add(employeeHandoverDto);
+    }
+
+}

+ 17 - 0
hx-common/src/main/java/com/fjhx/common/entity/employee/dto/EmployeeHandoverDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.common.entity.employee.dto;
+
+import com.fjhx.common.entity.employee.po.EmployeeHandover;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 员工交接新增编辑入参实体
+ *
+ * @author
+ * @since 2023-07-17
+ */
+@Getter
+@Setter
+public class EmployeeHandoverDto extends EmployeeHandover {
+
+}

+ 17 - 0
hx-common/src/main/java/com/fjhx/common/entity/employee/dto/EmployeeHandoverSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.common.entity.employee.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 员工交接列表查询入参实体
+ *
+ * @author
+ * @since 2023-07-17
+ */
+@Getter
+@Setter
+public class EmployeeHandoverSelectDto extends BaseSelectDto {
+
+}

+ 46 - 0
hx-common/src/main/java/com/fjhx/common/entity/employee/po/EmployeeHandover.java

@@ -0,0 +1,46 @@
+package com.fjhx.common.entity.employee.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 员工交接
+ * </p>
+ *
+ * @author
+ * @since 2023-07-17
+ */
+@Getter
+@Setter
+@TableName("employee_handover")
+public class EmployeeHandover extends BasePo {
+
+    /**
+     * 交接人id
+     */
+    private Long handoverPersonId;
+
+    /**
+     * 接收人id
+     */
+    private Long recipientId;
+
+    /**
+     * 交接原因
+     */
+    private String reason;
+
+    /**
+     * 交接内容(逗号分隔)
+     */
+    private String content;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 27 - 0
hx-common/src/main/java/com/fjhx/common/entity/employee/vo/EmployeeHandoverVo.java

@@ -0,0 +1,27 @@
+package com.fjhx.common.entity.employee.vo;
+
+import com.fjhx.common.entity.employee.po.EmployeeHandover;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 员工交接列表查询返回值实体
+ *
+ * @author
+ * @since 2023-07-17
+ */
+@Getter
+@Setter
+public class EmployeeHandoverVo extends EmployeeHandover {
+
+    /**
+     * 交接人名称
+     */
+    private String handoverPersonName;
+
+    /**
+     * 接收人名称
+     */
+    private String recipientName;
+
+}

+ 26 - 0
hx-common/src/main/java/com/fjhx/common/mapper/employee/EmployeeHandoverMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.common.mapper.employee;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.common.entity.employee.po.EmployeeHandover;
+import com.fjhx.common.entity.employee.vo.EmployeeHandoverVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 员工交接 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-07-17
+ */
+public interface EmployeeHandoverMapper extends BaseMapper<EmployeeHandover> {
+
+    /**
+     * 员工交接分页
+     */
+    Page<EmployeeHandoverVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<EmployeeHandover> wrapper);
+
+}

+ 10 - 0
hx-common/src/main/java/com/fjhx/common/service/CommService.java

@@ -0,0 +1,10 @@
+package com.fjhx.common.service;
+
+public interface CommService {
+
+    /**
+     * 更新客户业务员
+     */
+    void updateCustomerSalesperson(Long handoverPersonId, Long recipientId);
+
+}

+ 31 - 0
hx-common/src/main/java/com/fjhx/common/service/employee/EmployeeHandoverService.java

@@ -0,0 +1,31 @@
+package com.fjhx.common.service.employee;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.common.entity.employee.dto.EmployeeHandoverDto;
+import com.fjhx.common.entity.employee.dto.EmployeeHandoverSelectDto;
+import com.fjhx.common.entity.employee.po.EmployeeHandover;
+import com.fjhx.common.entity.employee.vo.EmployeeHandoverVo;
+import com.ruoyi.common.core.service.BaseService;
+
+
+/**
+ * <p>
+ * 员工交接 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-07-17
+ */
+public interface EmployeeHandoverService extends BaseService<EmployeeHandover> {
+
+    /**
+     * 员工交接分页
+     */
+    Page<EmployeeHandoverVo> getPage(EmployeeHandoverSelectDto dto);
+
+    /**
+     * 员工交接新增
+     */
+    void add(EmployeeHandoverDto employeeHandoverDto);
+
+}

+ 90 - 0
hx-common/src/main/java/com/fjhx/common/service/employee/impl/EmployeeHandoverServiceImpl.java

@@ -0,0 +1,90 @@
+package com.fjhx.common.service.employee.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.common.entity.employee.dto.EmployeeHandoverDto;
+import com.fjhx.common.entity.employee.dto.EmployeeHandoverSelectDto;
+import com.fjhx.common.entity.employee.po.EmployeeHandover;
+import com.fjhx.common.entity.employee.vo.EmployeeHandoverVo;
+import com.fjhx.common.mapper.employee.EmployeeHandoverMapper;
+import com.fjhx.common.service.CommService;
+import com.fjhx.common.service.employee.EmployeeHandoverService;
+import com.fjhx.common.utils.Assert;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.utils.UserUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 员工交接 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-07-17
+ */
+@Service
+public class EmployeeHandoverServiceImpl extends ServiceImpl<EmployeeHandoverMapper, EmployeeHandover> implements EmployeeHandoverService {
+
+    @Autowired
+    private CommService commService;
+    @Autowired
+    private ISysUserService userService;
+
+    @Override
+    public Page<EmployeeHandoverVo> getPage(EmployeeHandoverSelectDto dto) {
+        IWrapper<EmployeeHandover> wrapper = getWrapper();
+        //关键字搜索
+        if (ObjectUtil.isNotEmpty(dto.getKeyword())) {
+            DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+            List<SysUser> userList = userService.list(Wrappers.<SysUser>lambdaQuery().like(SysUser::getNickName, dto.getKeyword()));
+            List<Long> userIds = userList.stream().map(SysUser::getUserId).collect(Collectors.toList());
+            DynamicDataSourceContextHolder.poll();
+            wrapper.and(q -> q
+                    .like(EmployeeHandoverVo::getReason, dto.getKeyword())
+                    .or().like(EmployeeHandoverVo::getRemark, dto.getKeyword())
+                    .or().in(EmployeeHandoverVo::getHandoverPersonId, userIds)
+                    .or().in(EmployeeHandoverVo::getRecipientId, userIds)
+            );
+        }
+        wrapper.orderByDesc("eh", EmployeeHandover::getId);
+        Page<EmployeeHandoverVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<EmployeeHandoverVo> records = page.getRecords();
+        //赋值交接人
+        UserUtil.assignmentNickName(records, EmployeeHandoverVo::getHandoverPersonId, EmployeeHandoverVo::setHandoverPersonName);
+        //赋值接收人
+        UserUtil.assignmentNickName(records, EmployeeHandoverVo::getRecipientId, EmployeeHandoverVo::setRecipientName);
+        return page;
+    }
+
+    @Override
+    @DSTransactional
+    public void add(EmployeeHandoverDto employeeHandoverDto) {
+        String content = employeeHandoverDto.getContent();
+        Assert.notEmpty(content, "交接内容不能为空");
+        String[] split = content.split(",");
+        for (String s : split) {
+            //1客户信息
+            if ("1".equals(s)) {
+                //把交接人的客户信息全部修改至接收人
+                commService.updateCustomerSalesperson(employeeHandoverDto.getHandoverPersonId(), employeeHandoverDto.getRecipientId());
+            } else {
+                throw new ServiceException("未知交接内容:" + s);
+            }
+        }
+        this.save(employeeHandoverDto);
+    }
+
+}

+ 19 - 0
hx-common/src/main/resources/mapper/employee/EmployeeHandoverMapper.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.fjhx.common.mapper.employee.EmployeeHandoverMapper">
+    <select id="getPage" resultType="com.fjhx.common.entity.employee.vo.EmployeeHandoverVo">
+        select eh.id,
+               eh.handover_person_id,
+               eh.recipient_id,
+               eh.reason,
+               eh.content,
+               eh.remark,
+               eh.create_user,
+               eh.create_time,
+               eh.update_user,
+               eh.update_time
+        from employee_handover eh
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 21 - 0
hx-customer/src/main/java/com/fjhx/customer/service/customer/CommServiceImpl.java

@@ -0,0 +1,21 @@
+package com.fjhx.customer.service.customer;
+
+import com.fjhx.common.service.CommService;
+import com.fjhx.customer.entity.customer.po.Customer;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class CommServiceImpl implements CommService {
+
+    @Autowired
+    private CustomerService customerService;
+
+    /**
+     * 更新客户业务员
+     */
+    @Override
+    public void updateCustomerSalesperson(Long handoverPersonId, Long recipientId) {
+        customerService.update(q -> q.eq(Customer::getUserId, handoverPersonId).set(Customer::getUserId, recipientId));
+    }
+}