buhuazhen
昨天 0fcc63f1fc7f202627180658c19c93b0b7fa7f10
feat(inspectiontask): 新增质量检测项模块及相关接口和实现

- 创建QualityInspectItem实体类映射数据库表quality_inspect_item
- 定义QualityInspectItemMapper提供分页查询接口listPage
- 增加QualityInspectItemService接口及实现类,完成CRUD功能和分页查询
- 修改InspectItemDto中id类型由String改为Long以统一数据类型
- 新增MyBatis XML映射文件,配置查询SQL及结果映射
- 添加接口请求示例文档定义相关REST接口请求结构和参数说明
已添加6个文件
已修改1个文件
475 ■■■■■ 文件已修改
src/main/java/com/ruoyi/inspectiontask/dto/InspectItemDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/inspectiontask/mapper/QualityInspectItemMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/inspectiontask/pojo/QualityInspectItem.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/inspectiontask/service/QualityInspectItemService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/inspectiontask/service/impl/QualityInspectItemServiceImpl.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/inspectiontask/QualityInspectItemMapper.xml 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
tmp/request/projectManage.http 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/inspectiontask/dto/InspectItemDto.java
@@ -13,7 +13,7 @@
@AllArgsConstructor
@NoArgsConstructor
public class InspectItemDto {
    private String id;
    private Long id;
    private String name;
    private String unit;
    private String standardValue;
src/main/java/com/ruoyi/inspectiontask/mapper/QualityInspectItemMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.ruoyi.inspectiontask.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.inspectiontask.pojo.QualityInspectItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.inspectiontask.vo.InspectItemVo;
import com.ruoyi.inspectiontask.vo.SearchInspectItemVo;
/**
* @author buhuazhen
* @description é’ˆå¯¹è¡¨ã€quality_inspect_item(质量检测项)】的数据库操作Mapper
* @createDate 2026-03-13 16:29:59
* @Entity com.ruoyi.inspectiontask.pojo.QualityInspectItem
*/
public interface QualityInspectItemMapper extends BaseMapper<QualityInspectItem> {
    Page<InspectItemVo> listPage(SearchInspectItemVo searchInspectItemVo);
}
src/main/java/com/ruoyi/inspectiontask/pojo/QualityInspectItem.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
package com.ruoyi.inspectiontask.pojo;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
/**
 * è´¨é‡æ£€æµ‹é¡¹
 * @TableName quality_inspect_item
 */
@TableName(value ="quality_inspect_item")
@Data
public class QualityInspectItem implements Serializable {
    /**
     *
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * é¡¹ç›®åç§°
     */
    @TableField(value = "name")
    private String name;
    /**
     * å•位
     */
    @TableField(value = "unit")
    private String unit;
    /**
     * æ ‡å‡†å€¼
     */
    @TableField(value = "standard_value")
    private String standardValue;
    /**
     * å†…控值
     */
    @TableField(value = "internal_control")
    private String internalControl;
    /**
     * åŒ–验值
     */
    @TableField(value = "test_value")
    private String testValue;
    /**
     *
     */
    @TableField(value = "is_delete")
    private Integer isDelete;
    /**
     *
     */
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /**
     *
     */
    @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    /**
     *
     */
    @TableField(value = "create_user_name",fill = FieldFill.INSERT)
    private String createUserName;
    /**
     *
     */
    @TableField(value = "create_user",fill = FieldFill.INSERT)
    private Long createUser;
    /**
     *
     */
    @TableField(value = "update_user_name",fill = FieldFill.INSERT_UPDATE)
    private String updateUserName;
    @TableField(value = "update_user",fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
src/main/java/com/ruoyi/inspectiontask/service/QualityInspectItemService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.ruoyi.inspectiontask.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.inspectiontask.dto.InspectItemDto;
import com.ruoyi.inspectiontask.pojo.QualityInspectItem;
import com.ruoyi.inspectiontask.vo.InspectItemVo;
import com.ruoyi.inspectiontask.vo.SearchInspectItemVo;
import javax.annotation.Nullable;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @author buhuazhen
* @description é’ˆå¯¹è¡¨ã€quality_inspect_item(质量检测项)】的数据库操作Service
* @createDate 2026-03-13 16:29:59
*/
public interface QualityInspectItemService extends IService<QualityInspectItem> {
    Page<InspectItemVo> listPage(@NotNull SearchInspectItemVo searchInspectItemVo);
    void save(@NotNull InspectItemDto inspectItemDto);
    void delete(@Nullable List<Long> ids);
}
src/main/java/com/ruoyi/inspectiontask/service/impl/QualityInspectItemServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,68 @@
package com.ruoyi.inspectiontask.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.inspectiontask.dto.InspectItemDto;
import com.ruoyi.inspectiontask.pojo.QualityInspectItem;
import com.ruoyi.inspectiontask.service.QualityInspectItemService;
import com.ruoyi.inspectiontask.mapper.QualityInspectItemMapper;
import com.ruoyi.inspectiontask.vo.InspectItemVo;
import com.ruoyi.inspectiontask.vo.SearchInspectItemVo;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @author buhuazhen
* @description é’ˆå¯¹è¡¨ã€quality_inspect_item(质量检测项)】的数据库操作Service实现
* @createDate 2026-03-13 16:29:59
*/
@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
public class QualityInspectItemServiceImpl extends ServiceImpl<QualityInspectItemMapper, QualityInspectItem>
    implements QualityInspectItemService{
    private final QualityInspectItemMapper qualityInspectItemMapper;
    @Override
    public Page<InspectItemVo> listPage(SearchInspectItemVo searchInspectItemVo) {
        return qualityInspectItemMapper.listPage(searchInspectItemVo);
    }
    @Override
    @Transactional
    public void save(InspectItemDto inspectItemDto) {
        QualityInspectItem qualityInspectItem = new QualityInspectItem();
        BeanUtils.copyProperties(inspectItemDto, qualityInspectItem);
        if(qualityInspectItem.getId() == null){
            qualityInspectItemMapper.insert(qualityInspectItem);
        }else {
            qualityInspectItemMapper.updateById(qualityInspectItem);
        }
    }
    @Override
    @Transactional
    public void delete(List<Long> ids) {
        if(CollectionUtils.isEmpty(ids)){
            return;
        }
        LambdaUpdateWrapper<QualityInspectItem> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.in(QualityInspectItem::getId, ids).set(QualityInspectItem::getIsDelete, 1);
        qualityInspectItemMapper.update(null, updateWrapper);
    }
}
src/main/resources/mapper/inspectiontask/QualityInspectItemMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
<?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.inspectiontask.mapper.QualityInspectItemMapper">
    <resultMap id="BaseResultMap" type="com.ruoyi.inspectiontask.pojo.QualityInspectItem">
            <id property="id" column="id" jdbcType="BIGINT"/>
            <result property="name" column="name" jdbcType="VARCHAR"/>
            <result property="unit" column="unit" jdbcType="VARCHAR"/>
            <result property="standardValue" column="standard_value" jdbcType="VARCHAR"/>
            <result property="internalControl" column="internal_control" jdbcType="VARCHAR"/>
            <result property="testValue" column="test_value" jdbcType="VARCHAR"/>
            <result property="isDelete" column="is_delete" jdbcType="INTEGER"/>
            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
            <result property="createUserName" column="create_user_name" jdbcType="VARCHAR"/>
            <result property="createUser" column="create_user" jdbcType="BIGINT"/>
            <result property="updateUserName" column="update_user_name" jdbcType="VARCHAR"/>
    </resultMap>
    <sql id="Base_Column_List">
        id,name,unit,
        standard_value,internal_control,test_value,
        is_delete,create_time,update_time,
        create_user_name,create_user,update_user_name
    </sql>
    <select id="listPage" resultType="com.ruoyi.inspectiontask.vo.InspectItemVo">
        select t1.* from quality_inspect_item as t1
        where t1.is_delete = 0
        <if test="name != null and name != ''">
          and t1.name like concat('%', #{name}, '%')
        </if>
        order by t1.create_time desc
    </select>
</mapper>
tmp/request/projectManage.http
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,227 @@
### è®¡åˆ’保存
POST {{host}}/projectManagement/plan/save
Content-Type: application/json
Authorization: {{token}}
{
  "id": null,
  "name": "计划名称",
  "description": "计划描述",
  "attachmentIds": [
    1,
    2,
    3
  ],
  "savePlanNodeList": [
    {
      "name": "子节点1",
      "leaderId": "111",
      "leaderName": "张鹏举",
      "estimatedDuration": 7,
      "hourlyRate": "55.76",
      "workContent": "工作内容"
    }
  ]
}
### è®¡åˆ’列表
POST {{host}}/projectManagement/plan/listPage
Content-Type: application/json
Authorization: {{token}}
{
  "size": 10,
  "current": 1
}
### è®¡åˆ’删除
POST {{host}}/projectManagement/plan/delete/6
Content-Type: application/json
Authorization: {{token}}
### é¡¹ç›®ç®¡ç†ä¿å­˜
POST {{host}}/projectManagement/info/save
Content-Type: application/json
Authorization: {{token}}
{
  "info": {
    "id": null,
    "no": "",
    "title": "主题",
    "clientId": 11,
    "clientName": "客户名称",
    "projectManagementInfoParentId": null,
    "projectManagementPlanId": 17,
    "establishTime": "2023-04-01",
    "source": "来源",
    "managerId": 11,
    "managerName": "经理",
    "salesmanId": 22,
    "salesmanName": "业务员",
    "planStartTime": "2023-04-01",
    "planEndTime": "2023-10-11",
    "actualStartTime": "2023-04-01",
    "actualEndTime": "2023-10-11",
    "departmentId": 33,
    "departmentName": "部门",
    "orderDate": "2023-04-01",
    "orderAmount": "22.444",
    "remark": "备注",
    "attachmentIds": [1,2,3,4],
    "teamList":[
      {
        "userId":111,
        "userName": "张三",
        "userRoleId": "1",
        "userRoleName": "经理",
        "joinTime": "2023-04-01",
        "departTime": "2023-04-01",
        "contact": "联系",
        "remark": "备注"
      }
    ]
  },
  "shippingAddress": {
    "id": null,
    "consignee": "收货人",
    "contract": "联系方式",
    "address": "地址xxxx"
  },
  "contractInfo": {
    "id": null,
    "name": "联系人",
    "sex": "男",
    "birthday": "生日",
    "department": "部门",
    "job": "职务",
    "phoneNumber": "手机号",
    "email": "邮箱",
    "qq": "qq",
    "lineaFissa": "固定电话",
    "wx": "微信",
    "origineEtnica": "籍贯",
    "rappresentanteLegale": "法人代表"
  },
  "salesLedgerProductList": null
}
### åˆ é™¤äº§å“ä¿¡æ¯ èŽ·å–salesLedgerProductList中的id进行删除
DELETE {{host}}/sales/product/delProduct
Content-Type: application/json
Authorization: {{token}}
[1,2,3,4]
### ä¿®æ”¹å®¡æ ¸çŠ¶æ€ reviewStatus(0 å¾…审核 1 å®¡æ ¸é€šè¿‡ 2 å®¡æ ¸æœªé€šè¿‡)
POST {{host}}/projectManagement/info/updateStatus
Content-Type: application/json
Authorization: {{token}}
{
  "id": 1,
  "reviewStatus": "1",
}
### åˆ—表查询
POST {{host}}/projectManagement/info/listPage
Content-Type: application/json
Authorization: {{token}}
{
  "noOrName": "",
  "clientName": "",
  "salesmanName": "",
  "reviewStatus": null,
  "stage": null,
  "size": 10,
  "current": 1
}
### æŸ¥è¯¢å…·ä½“信息
POST {{host}}/projectManagement/info/23
Content-Type: application/json
Authorization: {{token}}
### åˆ é™¤ä¿¡æ¯
POST {{host}}/projectManagement/info/delete/17
Content-Type: application/json
Authorization: {{token}}
// é˜¶æ®µ
### æ–°å¢žé¡¹ç›®é˜¶æ®µ
POST {{host}}/projectManagement/info/saveStage
Content-Type: application/json
Authorization: {{token}}
{
  "id": null,
  "projectManagementPlanNodeId":20,
  "projectManagementInfoId":23,
  "description": "描述",
  "actualLeaderId": 111,
  "actualLeaderName": "实际负责人",
  "estimatedDuration": 222,
  "planStartTime": "2023-04-01",
  "planEndTime": "2023-04-01",
  "actualStartTime": "2023-04-01",
  "actualEndTime": "2023-04-01",
  "progress": 1,
  "attachmentIds": [1,2,3,4]
}
### æŸ¥è¯¢é¡¹ç›®é˜¶æ®µæ ¹æ®Id
POST {{host}}/projectManagement/info/listStage/23
Content-Type: application/json
Authorization: {{token}}
### åˆ é™¤é¡¹ç›®é˜¶æ®µæ ¹æ®id
POST {{host}}/projectManagement/info/deleteStage/5
Content-Type: application/json
Authorization: {{token}}
### èŽ·å–é¡¹ç›®è§’è‰²
POST {{host}}/projectManagement/roles/listSimpleRole
Content-Type: application/json
Authorization: {{token}}
### æ£€æµ‹é¡¹ç›®
POST {{host}}/qualityInspectItem/listPage
Content-Type: application/json
Authorization: {{token}}
{
  "name": null,
  "size": 10,
  "current": 1
}
### æ£€æµ‹é¡¹ç›®ä¿å­˜
POST {{host}}/qualityInspectItem/save
Content-Type: application/json
Authorization: {{token}}
{
  "id": null,
  "name": "检测项目名称",
  "unit": "单位",
  "standardValue": "标准值",
  "internalControl": "内控值",
  "testValue": "化验值"
}
### æ£€æµ‹é¡¹ç›®åˆ é™¤
POST {{host}}/qualityInspectItem/delete
Content-Type: application/json
Authorization: {{token}}
[1,2]