zss
2026-04-20 6be5b0d015888a840473e536800561cf1493c765
客户拜访记录增加图片上传
已添加1个文件
已修改7个文件
114 ■■■■ 文件已修改
src/main/java/com/ruoyi/common/enums/FileNameType.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/customervisits/controller/CustomerVisitsController.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/customervisits/dto/CustomerVisitsDto.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/customervisits/mapper/CustomerVisitsMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/customervisits/pojo/CustomerVisits.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/customervisits/service/CustomerVisitsService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/customervisits/service/impl/CustomerVisitsServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/customervisits/CustomerVisitsMapper.xml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/common/enums/FileNameType.java
@@ -18,7 +18,8 @@
    INSPECTION_PRODUCTION_AFTER(11),
    INSPECTION(12),//巡检 ç”Ÿäº§å‰
    APP(13),
    QUALITY_UQUALIFIED(14);//质量 ä¸åˆæ ¼
    QUALITY_UQUALIFIED(14),//质量 ä¸åˆæ ¼
    CUSTOMER_VISITS(15);//客户拜访
    private final int value;
src/main/java/com/ruoyi/customervisits/controller/CustomerVisitsController.java
@@ -2,15 +2,20 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.compensationperformance.pojo.CompensationPerformance;
import com.ruoyi.customervisits.dto.CustomerVisitsDto;
import com.ruoyi.customervisits.pojo.CustomerVisits;
import com.ruoyi.customervisits.service.impl.CustomerVisitsServiceImpl;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.other.service.impl.TempFileServiceImpl;
import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@@ -27,11 +32,17 @@
    @Autowired
    private CustomerVisitsServiceImpl customerVisitsService;
    @Autowired
    private TempFileServiceImpl tempFileService;
    @Autowired
    private CommonFileServiceImpl commonFileService;
    @GetMapping("/listPage")
    @Log(title = "客户拜访-分页查询", businessType = BusinessType.OTHER)
    @ApiOperation("客户拜访-分页查询")
    public AjaxResult listPage(Page page, CustomerVisits customerVisits) {
        IPage<CustomerVisits> listPage = customerVisitsService.listPage(page, customerVisits);
        IPage<CustomerVisitsDto> listPage = customerVisitsService.listPage(page, customerVisits);
        return AjaxResult.success(listPage);
    }
@@ -39,8 +50,12 @@
    @ApiOperation("客户拜访-添加")
    @PostMapping("/add")
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult add(@RequestBody CustomerVisits customerVisits) {
    public AjaxResult add(@RequestBody CustomerVisitsDto customerVisitsDto) throws Exception{
        CustomerVisits customerVisits = new CustomerVisits();
        BeanUtils.copyProperties(customerVisitsDto,customerVisits);
        boolean save = customerVisitsService.save(customerVisits);
        // é™„件绑定
        tempFileService.migrateTempFilesToFormal(customerVisits.getId().longValue(), customerVisitsDto.getTempFileIds(), FileNameType.CUSTOMER_VISITS.getValue());
        if (save) {
            return AjaxResult.success("添加成功");
        }
@@ -50,9 +65,13 @@
    @Log(title = "客户拜访-编辑", businessType = BusinessType.UPDATE)
    @ApiOperation("客户拜访-编辑")
    @PostMapping("update")
    public AjaxResult updateCustomerVisit(@RequestBody CustomerVisits customerVisits) {
    public AjaxResult updateCustomerVisit(@RequestBody CustomerVisitsDto customerVisitsDto) throws Exception{
        CustomerVisits customerVisits = new CustomerVisits();
        BeanUtils.copyProperties(customerVisitsDto,customerVisits);
        boolean updateResult = customerVisitsService.updateCustomerVisit(customerVisits);
        if (updateResult) {
            // é™„件绑定
            tempFileService.migrateTempFilesToFormal(customerVisits.getId().longValue(), customerVisitsDto.getTempFileIds(), FileNameType.CUSTOMER_VISITS.getValue());
            return AjaxResult.success("编辑成功");
        }
        return AjaxResult.error("编辑失败");
@@ -67,6 +86,8 @@
        }
        boolean deleteResult = customerVisitsService.removeById(customerId);
        if (deleteResult) {
            // åˆ é™¤å¯¹åº”的附件
            commonFileService.deleteByBusinessId(customerId.longValue(), FileNameType.CUSTOMER_VISITS.getValue());
            return AjaxResult.success("删除成功");
        }
        return AjaxResult.error("删除失败");
src/main/java/com/ruoyi/customervisits/dto/CustomerVisitsDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package com.ruoyi.customervisits.dto;
import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.customervisits.pojo.CustomerVisits;
import com.ruoyi.sales.pojo.CommonFile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class CustomerVisitsDto  extends CustomerVisits {
    /**
     * ä¸´æ—¶æ–‡ä»¶id列表
     */
    @TableField(exist = false)
    private List<String> tempFileIds;
    /**
     * æ­£å¼æ–‡ä»¶id列表
     */
    @TableField(exist = false)
    private List<CommonFile> commonFileList;
}
src/main/java/com/ruoyi/customervisits/mapper/CustomerVisitsMapper.java
@@ -1,11 +1,16 @@
package com.ruoyi.customervisits.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.customervisits.dto.CustomerVisitsDto;
import com.ruoyi.customervisits.pojo.CustomerVisits;
import org.apache.ibatis.annotations.Param;
/**
 * @author :yys
 * @date : 2025/8/29 10:24
 */
public interface CustomerVisitsMapper extends BaseMapper<CustomerVisits> {
    IPage<CustomerVisitsDto> listPage(Page page, @Param("c") CustomerVisits customerVisits);
}
src/main/java/com/ruoyi/customervisits/pojo/CustomerVisits.java
@@ -20,7 +20,6 @@
 */
@TableName("customer_visits")
@Data
@Builder
@ApiModel
public class CustomerVisits {
src/main/java/com/ruoyi/customervisits/service/CustomerVisitsService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.customervisits.dto.CustomerVisitsDto;
import com.ruoyi.customervisits.pojo.CustomerVisits;
import com.ruoyi.framework.web.domain.AjaxResult;
@@ -11,7 +12,7 @@
 * @date : 2025/8/29 10:26
 */
public interface CustomerVisitsService extends IService<CustomerVisits> {
    IPage<CustomerVisits> listPage(Page page, CustomerVisits customerVisits);
    IPage<CustomerVisitsDto> listPage(Page page, CustomerVisits customerVisits);
    boolean updateCustomerVisit(CustomerVisits customerVisits);
src/main/java/com/ruoyi/customervisits/service/impl/CustomerVisitsServiceImpl.java
@@ -4,14 +4,21 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.customervisits.dto.CustomerVisitsDto;
import com.ruoyi.customervisits.mapper.CustomerVisitsMapper;
import com.ruoyi.customervisits.pojo.CustomerVisits;
import com.ruoyi.customervisits.service.CustomerVisitsService;
import com.ruoyi.quality.pojo.QualityUnqualified;
import com.ruoyi.sales.mapper.CommonFileMapper;
import com.ruoyi.sales.pojo.CommonFile;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
 * @author :yys
@@ -24,21 +31,19 @@
    @Autowired
    private CustomerVisitsMapper customerVisitsMapper;
    @Autowired
    private CommonFileMapper commonFileMapper;
    @Override
    public IPage<CustomerVisits> listPage(Page page, CustomerVisits customerVisits) {
        LambdaQueryWrapper<CustomerVisits> wrapper = new LambdaQueryWrapper<>();
        if (customerVisits != null) {
            if (StringUtils.hasText(customerVisits.getCustomerName())) {
                wrapper.like(CustomerVisits::getCustomerName, customerVisits.getCustomerName());
            }
            if (StringUtils.hasText(customerVisits.getVisitingPeople())) {
                wrapper.like(CustomerVisits::getVisitingPeople, customerVisits.getVisitingPeople());
            }
    public IPage<CustomerVisitsDto> listPage(Page page, CustomerVisits customerVisits) {
        IPage<CustomerVisitsDto> selectPage = customerVisitsMapper.listPage(page, customerVisits);
        for (CustomerVisitsDto record : selectPage.getRecords()) {
            List<CommonFile> allFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                    .eq(CommonFile::getCommonId, record.getId())
                    .eq(CommonFile::getType, FileNameType.CUSTOMER_VISITS.getValue()));
            record.setCommonFileList(allFiles);
        }
        return customerVisitsMapper.selectPage(page, wrapper);
        return selectPage;
    }
    @Override
src/main/resources/mapper/customervisits/CustomerVisitsMapper.xml
@@ -1,5 +1,15 @@
<?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.ruoyi.customervisits.mapper.CustomerVisitsMapper">
</mapper>
    <select id="listPage" resultType="com.ruoyi.customervisits.dto.CustomerVisitsDto">
        select * from customer_visits
        where 1=1
        <if test="c.customerName != null ">
            AND customer_name like concat('%',#{c.customerName},'%')
        </if>
        <if test="c.visitingPeople != null ">
            AND visiting_people like concat('%',#{c.visitingPeople},'%')
        </if>
    </select>
</mapper>