chenrui
2025-04-01 0a305b633bb743f01cbb636670c2fc02620168d0
标准库功能修改备份开发
已修改8个文件
已添加8个文件
770 ■■■■■ 文件已修改
basic-server/src/main/java/com/ruoyi/basic/controller/StandardTreeController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/dto/StandardProductListDto.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/enums/StandardProductListChcekTypeEnums.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/enums/StandardProductListOperationTypeEnums.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/enums/TestPorjectTypeEnums.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListBackupRelMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListUpdateRecordMapper.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/pojo/StandardProductList.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/pojo/StandardProductListBackupRel.java 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/pojo/StandardProductListUpdateRecord.java 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/StandardProductListService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java 118 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/resources/mapper/StandardProductListMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/resources/mapper/StandardProductListUpdateRecordMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/controller/StandardTreeController.java
@@ -2,11 +2,10 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.*;
import com.ruoyi.basic.pojo.*;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.basic.pojo.StandardProductList;
import com.ruoyi.basic.pojo.StandardProductListSupplierAsk;
import com.ruoyi.basic.pojo.StandardTree;
import com.ruoyi.basic.service.StandardMethodListService;
import com.ruoyi.basic.service.StandardProductListService;
import com.ruoyi.basic.service.StandardProductListSupplierAskService;
@@ -255,4 +254,17 @@
    public Result copyStandardProductSort(@RequestBody CopyStandardProductListDto copyStandardProductListDto) {
        return Result.success(standardProductListService.copyStandardProductSort(copyStandardProductListDto));
    }
    @ApiOperation(value = "标准树下检验项处理")
    @PostMapping("/productListOperate")
    public Result productListOperate(@RequestBody StandardProductListDto standardProductListDto) {
        standardProductListService.productListOperate(standardProductListDto);
        return Result.success();
    }
    @ApiOperation(value = "标准树下检验项修改记录分页查询")
    @GetMapping("/standardProductListRecordPage")
    public Result standardProductListRecordPage(Page page, StandardProductListUpdateRecord standardProductListUpdateRecord) {
        return Result.success(standardProductListService.standardProductListRecordPage(page,standardProductListUpdateRecord));
    }
}
basic-server/src/main/java/com/ruoyi/basic/dto/StandardProductListDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.ruoyi.basic.dto;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.basic.pojo.StandardProductList;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * æ ‡å‡†æ ‘下的检验项目
 * @TableName standard_product_list
 */
@Data
public class StandardProductListDto extends StandardProductList {
    private String operationStatus;
}
basic-server/src/main/java/com/ruoyi/basic/enums/StandardProductListChcekTypeEnums.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package com.ruoyi.basic.enums;
public enum StandardProductListChcekTypeEnums {
    WAIT_CHECK("0","未审核"),
    CHECK_ING("1","审核中"),
    PASS_CHECK("2","审核通过"),
    NO_PASS_CHECK("3","审核未通过");
    private String code;
    private String name;
    StandardProductListChcekTypeEnums(String code, String name) {
        this.code = code;
        this.name = name;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
basic-server/src/main/java/com/ruoyi/basic/enums/StandardProductListOperationTypeEnums.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
package com.ruoyi.basic.enums;
public enum StandardProductListOperationTypeEnums {
    SUBMIT_OP("0","提交"),
    PASS_CHECK_OP("1","审核通过"),
    NO_PASS_CHECK_OP("2","审核未通过");
    private String code;
    private String name;
    StandardProductListOperationTypeEnums(String code, String name) {
        this.code = code;
        this.name = name;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
basic-server/src/main/java/com/ruoyi/basic/enums/TestPorjectTypeEnums.java
@@ -2,7 +2,7 @@
public enum TestPorjectTypeEnums {
    RAW_MATERIALS("1","原辅料"),
    RAW_MATERIALS("1","原辅材"),
    FINISHED_PRODUCT("2","成品"),
    SEMI_FINISHED_PRODUCT("3","半成品"),
    PURCHASED_PART("4","外购件"),
basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListBackupRelMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.basic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.basic.pojo.StandardProductListBackupRel;
/**
* @author Administrator
* @description é’ˆå¯¹è¡¨ã€standard_product_list(标准树下的检验项目)】的数据库操作Mapper
* @createDate 2024-03-05 10:33:29
* @Entity com.ruoyi.basic.pojo.StandardProductList
*/
public interface StandardProductListBackupRelMapper extends BaseMapper<StandardProductListBackupRel> {
}
basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListMapper.java
@@ -2,7 +2,9 @@
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.basic.pojo.StandardProductList;
import com.ruoyi.basic.pojo.StandardProductListUpdateRecord;
import org.apache.ibatis.annotations.Param;
import java.util.List;
basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListUpdateRecordMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package com.ruoyi.basic.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.basic.pojo.StandardProductListUpdateRecord;
import org.apache.ibatis.annotations.Param;
/**
* @author Administrator
* @description é’ˆå¯¹è¡¨ã€standard_product_list(标准树下的检验项目)】的数据库操作Mapper
* @createDate 2024-03-05 10:33:29
* @Entity com.ruoyi.basic.pojo.StandardProductList
*/
public interface StandardProductListUpdateRecordMapper extends BaseMapper<StandardProductListUpdateRecord> {
    /**
     * æ ‡å‡†æ ‘下检验项修改记录分页查询
     *
     * @param page
     * @param ew
     * @return
     */
    IPage<StandardProductListUpdateRecord> standardProductListRecordPage(Page page, @Param("ew") QueryWrapper<StandardProductListUpdateRecord> ew);
}
basic-server/src/main/java/com/ruoyi/basic/pojo/StandardProductList.java
@@ -219,4 +219,7 @@
     */
    @ApiModelProperty("导体类型")
    private String conductorType;
    @ApiModelProperty("审核状态 0 æœªå®¡æ ¸ 1 å®¡æ ¸ä¸­ 2 å®¡æ ¸é€šè¿‡ 3 å®¡æ ¸æœªé€šè¿‡")
    private String checkStatus;
}
basic-server/src/main/java/com/ruoyi/basic/pojo/StandardProductListBackupRel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,222 @@
package com.ruoyi.basic.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * æ ‡å‡†æ ‘下的检验项目
 * @TableName standard_product_list
 */
@TableName(value ="standard_product_list_backup_rel")
@Data
public class StandardProductListBackupRel implements Serializable {
    /**
     * ä¸»é”®id
     */
    @TableId(value = "id",type = IdType.ASSIGN_ID)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * æ£€éªŒé¡¹
     */
    @ApiModelProperty("检验项")
    private String inspectionItem;
    @ApiModelProperty("检验项EN")
    private String inspectionItemEn;
    /**
     * æ£€éªŒé¡¹å°ç±»
     */
    @ApiModelProperty("检验项小类")
    private String inspectionItemSubclass;
    @ApiModelProperty("检验项小类EN")
    private String inspectionItemSubclassEn;
    /**
     * å®žéªŒå®¤
     */
    @ApiModelProperty("实验室")
    private String laboratory;
    @ApiModelProperty("子实验室")
    private String sonLaboratory;
    /**
     * è®¡é‡å•位
     */
    @ApiModelProperty("计量单位")
    private String unit;
    /**
     * å•ä»·(元)
     */
    @ApiModelProperty("单价")
    private String price;
    /**
     * å·¥æ—¶(H)
     */
    @ApiModelProperty("工时")
    private String manHour;
    /**
     * å·¥æ—¶åˆ†ç»„
     */
    @ApiModelProperty("工时分组")
    private String manHourGroup;
    /**
     * æ£€éªŒé¡¹ç±»åž‹
     */
    @ApiModelProperty("检验项类型")
    private String inspectionItemType;
    /**
     * æ£€éªŒå€¼ç±»åž‹
     */
    @ApiModelProperty("检验值类型")
    private String inspectionValueType;
    /**
     * æ£€éªŒæ¬¡æ•°
     */
    @ApiModelProperty("检验次数")
    private Integer checkoutNumber;
    /**
     * åŒºé—´
     */
    @ApiModelProperty("区间")
    private String section;
    /**
     * åŒºé—´
     */
    @ApiModelProperty("芯数区间")
    private String cores;
    /**
     * æ–¹æ³•
     */
    @ApiModelProperty("方法列表")
    private String method;
    @ApiModelProperty("方法")
    private String methodS;
    /**
     * é¢„计时间(天)
     */
    @ApiModelProperty("预计时间")
    private Integer manDay;
    /**
     * ç‰¹æ®Šæ ‡è¯†
     */
    @ApiModelProperty("特殊标识")
    private String bsm;
    /**
     * è¦æ±‚值
     */
    @ApiModelProperty("要求值")
    private String ask;
    @ApiModelProperty("要求描述")
    private String tell;
    /**
     * å¤–键:标准方法id
     */
    @ApiModelProperty("标准方法id")
    private Integer standardMethodListId;
    @ApiModelProperty("工厂")
    private String factory;
    @ApiModelProperty("样品分类")
    private String sampleType;
    @ApiModelProperty("样品")
    private String sample;
    @ApiModelProperty("型号")
    private String model;
    @ApiModelProperty("模板id")
    private Integer templateId;
    @ApiModelProperty("")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    /**
     *
     */
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    /**
     *
     */
    @ApiModelProperty("")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    /**
     *
     */
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    @ApiModelProperty("1:有效 0:无效")
    private Integer state;
    private String dic;
    private String tree;
    @ApiModelProperty("检验项id")
    private Integer structureItemParameterId;
    @ApiModelProperty(value = "检验项分类")
    private String inspectionItemClass;
    @ApiModelProperty(value = "检验项分类EN")
    private String inspectionItemClassEn;
    @ApiModelProperty(value = "条件")
    private String radius;
    @ApiModelProperty(value = "条件列表")
    private String radiusList;
    @ApiModelProperty(value = "收费标准(元/次)")
    private String rates;
    @ApiModelProperty(value = "索引顺序")
    private Integer sort;
    /**
     * å¯¼ä½“材质
     */
    @ApiModelProperty("导体材质")
    private String conductorMaterial;
    /**
     * å¯¼ä½“类型
     */
    @ApiModelProperty("导体类型")
    private String conductorType;
}
basic-server/src/main/java/com/ruoyi/basic/pojo/StandardProductListUpdateRecord.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,228 @@
package com.ruoyi.basic.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * æ ‡å‡†æ ‘下的检验项目
 * @TableName standard_product_list
 */
@TableName(value ="standard_product_list_backup_rel")
@Data
public class StandardProductListUpdateRecord implements Serializable {
    /**
     * ä¸»é”®id
     */
    @TableId(value = "id",type = IdType.ASSIGN_ID)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * æ£€éªŒé¡¹
     */
    @ApiModelProperty("检验项")
    private String inspectionItem;
    @ApiModelProperty("检验项EN")
    private String inspectionItemEn;
    /**
     * æ£€éªŒé¡¹å°ç±»
     */
    @ApiModelProperty("检验项小类")
    private String inspectionItemSubclass;
    @ApiModelProperty("检验项小类EN")
    private String inspectionItemSubclassEn;
    /**
     * å®žéªŒå®¤
     */
    @ApiModelProperty("实验室")
    private String laboratory;
    @ApiModelProperty("子实验室")
    private String sonLaboratory;
    /**
     * è®¡é‡å•位
     */
    @ApiModelProperty("计量单位")
    private String unit;
    /**
     * å•ä»·(元)
     */
    @ApiModelProperty("单价")
    private String price;
    /**
     * å·¥æ—¶(H)
     */
    @ApiModelProperty("工时")
    private String manHour;
    /**
     * å·¥æ—¶åˆ†ç»„
     */
    @ApiModelProperty("工时分组")
    private String manHourGroup;
    /**
     * æ£€éªŒé¡¹ç±»åž‹
     */
    @ApiModelProperty("检验项类型")
    private String inspectionItemType;
    /**
     * æ£€éªŒå€¼ç±»åž‹
     */
    @ApiModelProperty("检验值类型")
    private String inspectionValueType;
    /**
     * æ£€éªŒæ¬¡æ•°
     */
    @ApiModelProperty("检验次数")
    private Integer checkoutNumber;
    /**
     * åŒºé—´
     */
    @ApiModelProperty("区间")
    private String section;
    /**
     * åŒºé—´
     */
    @ApiModelProperty("芯数区间")
    private String cores;
    /**
     * æ–¹æ³•
     */
    @ApiModelProperty("方法列表")
    private String method;
    @ApiModelProperty("方法")
    private String methodS;
    /**
     * é¢„计时间(天)
     */
    @ApiModelProperty("预计时间")
    private Integer manDay;
    /**
     * ç‰¹æ®Šæ ‡è¯†
     */
    @ApiModelProperty("特殊标识")
    private String bsm;
    /**
     * è¦æ±‚值
     */
    @ApiModelProperty("要求值")
    private String ask;
    @ApiModelProperty("要求描述")
    private String tell;
    /**
     * å¤–键:标准方法id
     */
    @ApiModelProperty("标准方法id")
    private Integer standardMethodListId;
    @ApiModelProperty("工厂")
    private String factory;
    @ApiModelProperty("样品分类")
    private String sampleType;
    @ApiModelProperty("样品")
    private String sample;
    @ApiModelProperty("型号")
    private String model;
    @ApiModelProperty("模板id")
    private Integer templateId;
    @ApiModelProperty("")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    /**
     *
     */
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    /**
     *
     */
    @ApiModelProperty("")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    /**
     *
     */
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    @ApiModelProperty("1:有效 0:无效")
    private Integer state;
    private String dic;
    private String tree;
    @ApiModelProperty("检验项id")
    private Integer structureItemParameterId;
    @ApiModelProperty(value = "检验项分类")
    private String inspectionItemClass;
    @ApiModelProperty(value = "检验项分类EN")
    private String inspectionItemClassEn;
    @ApiModelProperty(value = "条件")
    private String radius;
    @ApiModelProperty(value = "条件列表")
    private String radiusList;
    @ApiModelProperty(value = "收费标准(元/次)")
    private String rates;
    @ApiModelProperty(value = "索引顺序")
    private Integer sort;
    /**
     * å¯¼ä½“材质
     */
    @ApiModelProperty("导体材质")
    private String conductorMaterial;
    /**
     * å¯¼ä½“类型
     */
    @ApiModelProperty("导体类型")
    private String conductorType;
    @ApiModelProperty("标准树下检验项目表ID")
    private Long standardProductListId;
    @ApiModelProperty("操作记录 0 ä¿®æ”¹ 1 å®¡æ ¸é€šè¿‡ 2 å®¡æ ¸æœªé€šè¿‡")
    private String operationType;
}
basic-server/src/main/java/com/ruoyi/basic/service/StandardProductListService.java
@@ -2,11 +2,15 @@
import com.alibaba.fastjson.JSONArray;
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.basic.dto.CopyStandardProductListDto;
import com.ruoyi.basic.dto.InsSampleReceiveDto;
import com.ruoyi.basic.dto.ResetTreeDragDTO;
import com.ruoyi.basic.dto.StandardProductListDto;
import com.ruoyi.basic.pojo.StandardProductList;
import com.ruoyi.basic.pojo.StandardProductListUpdateRecord;
import com.ruoyi.basic.pojo.StructureItemParameter;
import java.util.List;
import java.util.Map;
@@ -62,4 +66,18 @@
     * @return
     */
    boolean copyStandardProductSort(CopyStandardProductListDto copyStandardProductListDto);
    /**
     * æ ‡å‡†æ ‘下检验项处理
     * @param standardProductListDto
     */
    void productListOperate(StandardProductListDto standardProductListDto);
    /**
     * æ ‡å‡†æ ‘下检验项修改记录分页查询
     * @param page
     * @param record
     * @return
     */
    IPage<StandardProductListUpdateRecord> standardProductListRecordPage(Page page, StandardProductListUpdateRecord record);
}
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
@@ -7,16 +7,17 @@
import com.baomidou.mybatisplus.core.toolkit.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.dto.*;
import com.ruoyi.basic.enums.BasicTreeEnums;
import com.ruoyi.basic.enums.StandardProductListChcekTypeEnums;
import com.ruoyi.basic.enums.StandardProductListOperationTypeEnums;
import com.ruoyi.basic.mapper.*;
import com.ruoyi.basic.pojo.*;
import com.ruoyi.basic.service.StandardMethodListService;
import com.ruoyi.basic.service.StandardMethodService;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.basic.dto.CopyStandardProductListDto;
import com.ruoyi.basic.dto.InsSampleReceiveDto;
import com.ruoyi.basic.dto.ProductDto;
import com.ruoyi.basic.dto.ResetTreeDragDTO;
import com.ruoyi.basic.service.StandardProductListService;
import lombok.AllArgsConstructor;
import org.apache.catalina.security.SecurityUtil;
@@ -59,9 +60,36 @@
    @Autowired
    private StructureItemParameterMapper structureItemParameterMapper;
    @Autowired
    private ModelMapper modelMapper;
    @Autowired
    private StandardProductListBackupRelMapper standardProductListBackupRelMapper;
    @Autowired
    private StandardProductListUpdateRecordMapper standardProductListUpdateRecordMapper;
    @Override
    public int upStandardProductList(StandardProductList list) {
        // æ ¹æ®id æŸ¥è¯¢åˆ°åŽŸå§‹å€¼
        StandardProductList standardProductList = standardProductListMapper.selectById(list.getId());
        if(ObjectUtils.isEmpty(standardProductList)){
            throw new RuntimeException("更新失败,未查找到检查项");
        }
        // åˆ¤æ–­å½“前状态 å¦‚果是审核中
        if(StandardProductListChcekTypeEnums.CHECK_ING.getCode().equals(list.getCheckStatus())){
            throw new RuntimeException("审核中不支持修改");
        }
        // æŸ¥è¯¢æœ€æ–°çš„一次关联备份 å¦‚果存在说明未审核完继续修改了。不做数据处理。
        StandardProductListBackupRel standardProductListBackupRel = standardProductListBackupRelMapper.selectById(list.getId());
        if(ObjectUtils.isEmpty(standardProductListBackupRel)){
            StandardProductListBackupRel productListBackupRel = new StandardProductListBackupRel();
            BeanUtils.copyProperties(standardProductList, productListBackupRel);
            standardProductListBackupRelMapper.insert(productListBackupRel);
        }
        // ä¿®æ”¹çŠ¶æ€
        list.setCheckStatus(StandardProductListChcekTypeEnums.WAIT_CHECK.getCode());
        return standardProductListMapper.updateById(list);
    }
@@ -290,6 +318,7 @@
        String sampleType = "";
        String sample = "";
        String model = "";
        StringBuilder checkItemQueryTree = new StringBuilder();   // æ£€æŸ¥é¡¹æŸ¥è¯¢ åªæ‹¼æŽ¥ æ£€æŸ¥å¯¹è±¡-产品
        // è¿”回结果
        Map<String, Object> map = new HashMap<>();
@@ -303,57 +332,60 @@
        if(trees == null && trees.length < 4){
            return map;
        }
        StringBuilder queryTreeBuilder = new StringBuilder();
        // è½¦é—´å±‚级多一层级
        if(existWorkShopFlag){
            switch (trees.length) {
                case 7:
                    queryTreeBuilder.append("[").append("\"").append(trees[4]).append("\",\"").append(trees[5]).append("\",\"").append(trees[6]).append("\"").append("]");
                    sampleType = trees[4];
                    sample = trees[5];
                    model = trees[6];
                    checkItemQueryTree.append("[").append("\"").append(trees[4]).append("\",\"").append(trees[5]).append("\"").append("]");
                    break;
                case 6:
                    queryTreeBuilder.append("[").append("\"").append(trees[4]).append("\",\"").append(trees[5]).append("\"").append("]");
                    sampleType = trees[4];
                    sample = trees[5];
                    checkItemQueryTree.append("[").append("\"").append(trees[4]).append("\",\"").append(trees[5]).append("\"").append("]");
                    break;
                case 5:
                    queryTreeBuilder.append("[").append("\"").append(trees[4]).append("\"").append("]");
                    sampleType = trees[4];
                    checkItemQueryTree.append("[").append("\"").append(trees[4]).append("\"").append("]");
                    break;
            }
        }else {
            switch (trees.length) {
                case 6:
                    queryTreeBuilder.append("[").append("\"").append(trees[3]).append("\",\"").append(trees[4]).append("\",\"").append(trees[5]).append("\"").append("]");
                    sampleType = trees[3];
                    sample = trees[4];
                    model = trees[5];
                    checkItemQueryTree.append("[").append("\"").append(trees[3]).append("\",\"").append(trees[4]).append("\"").append("]");
                    break;
                case 5:
                    queryTreeBuilder.append("[").append("\"").append(trees[3]).append("\",\"").append(trees[4]).append("\"").append("]");
                    sampleType = trees[3];
                    sample = trees[4];
                    checkItemQueryTree.append("[").append("\"").append(trees[3]).append("\",\"").append(trees[4]).append("\"").append("]");
                    break;
                case 4:
                    queryTreeBuilder.append("[").append("\"").append(trees[3]).append("\"").append("]");
                    sampleType = trees[3];
                    checkItemQueryTree.append("[").append("\"").append(trees[3]).append("\"").append("]");
                    break;
            }
        }
        if(StringUtils.isEmpty(queryTreeBuilder.toString())){
        if(StringUtils.isEmpty(checkItemQueryTree.toString())){
            return map;
        }
        // æ ¹æ®æ£€éªŒå¯¹è±¡/产品/型号查询检验项
        List<StructureItemParameter> structureItemParameterList = structureItemParameterMapper.selectItemParameterBySample(queryTreeBuilder.toString());
        // æ ¹æ®æ£€éªŒå¯¹è±¡/产品查询检验项
        List<StructureItemParameter> structureItemParameterList = structureItemParameterMapper.selectItemParameterBySample(checkItemQueryTree.toString());
        // å¦‚果是产品的检查项为空向上推
        if(CollectionUtils.isEmpty(structureItemParameterList)){
            String query = "[\"" + sampleType + "\"]";
            structureItemParameterList = structureItemParameterMapper.selectItemParameterBySample(query);
        }
        // æŸ¥è¯¢æ ‡å‡†åº“已绑定检查项目
        List<StandardProductList> standardProductList = standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery()
                .eq(StandardProductList::getStandardMethodListId, id)
                .like(StandardProductList::getTree, tree)
                .orderByAsc(StandardProductList::getSort));
        // å°è£…参数
        List<StandardProductList> batchInsertStandardProductListArray = new ArrayList<>();
@@ -374,11 +406,10 @@
                addStandProductList.setStructureItemParameterId(structureItemParameter.getId());
            }
            addStandProductList.setId(null);
            addStandProductList.setId(addStandProductList.getId() != null ? addStandProductList.getId() : IdWorker.getId());
            batchInsertStandardProductListArray.add(addStandProductList);
        }
        // æŽ’序处理 å·²æœ‰é¡ºåºæŒ‰ç…§åŽŸé¡ºåº æ²¡æœ‰é¡ºåºçš„æŒ‰ç…§æ£€éªŒé¡¹çš„id升序,默认排在最后
        batchInsertStandardProductListArray.sort(Comparator.comparing((StandardProductList item) -> item.getSort() != null ? item.getSort() : Integer.MAX_VALUE)
                .thenComparing(StandardProductList::getStructureItemParameterId));
@@ -611,6 +642,59 @@
        this.updateBatchById(productLists);
        return false;
    }
    /**
     * æ ‡å‡†æ ‘下检验项处理
     * @param standardProductListDto
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void productListOperate(StandardProductListDto standardProductListDto) {
        StandardProductList standardProductList = new StandardProductList();
        standardProductList.setId(standardProductListDto.getId());
        StandardProductListUpdateRecord standardProductListUpdateRecord = new StandardProductListUpdateRecord();
        // å®¡æ ¸é€šè¿‡
        if(StandardProductListOperationTypeEnums.PASS_CHECK_OP.getCode().equals(standardProductListDto.getOperationStatus())){
            // åˆ é™¤å¤‡ä»½æ•°æ®
            standardProductListBackupRelMapper.deleteById(standardProductListDto.getId());
            standardProductList.setCheckStatus(StandardProductListChcekTypeEnums.PASS_CHECK.getCode());
        // å®¡æ ¸ä¸é€šè¿‡
        }else if(StandardProductListOperationTypeEnums.NO_PASS_CHECK_OP.getCode().equals(standardProductListDto.getOperationStatus())) {
            // è¿˜åŽŸæ•°æ®
            StandardProductListBackupRel standardProductListBackupRel = standardProductListBackupRelMapper.selectById(standardProductListDto.getId());
            if(ObjectUtils.isEmpty(standardProductListBackupRel)){
                throw new RuntimeException("备份数据查找失败");
            }
            BeanUtils.copyProperties(standardProductListBackupRel, standardProductList);
            standardProductList.setCheckStatus(StandardProductListChcekTypeEnums.NO_PASS_CHECK.getCode());
        // æäº¤
        }else if(StandardProductListOperationTypeEnums.SUBMIT_OP.getCode().equals(standardProductListDto.getOperationStatus())) {
            standardProductListUpdateRecord.setOperationType(StandardProductListOperationTypeEnums.PASS_CHECK_OP.getCode());
            standardProductList.setCheckStatus(StandardProductListChcekTypeEnums.CHECK_ING.getCode());
        } else {
            throw new RuntimeException("操作有误");
        }
        // æ–°å¢žæ“ä½œè®°å½•
        standardProductListUpdateRecord.setStandardProductListId(standardProductListDto.getId());
        standardProductListUpdateRecord.setOperationType(standardProductListDto.getOperationStatus());
        standardProductListUpdateRecordMapper.insert(standardProductListUpdateRecord);
        // ä¿®æ”¹å®¡æ ¸çŠ¶æ€
        standardProductList.setCheckStatus(standardProductListDto.getOperationStatus());
        standardProductListMapper.updateById(standardProductList);
    }
    /**
     * æ ‡å‡†æ ‘下检验项修改记录分页查询
     * @param page
     * @param record
     * @return
     */
    @Override
    public IPage<StandardProductListUpdateRecord> standardProductListRecordPage(Page page, StandardProductListUpdateRecord record) {
        return standardProductListUpdateRecordMapper.standardProductListRecordPage(page,QueryWrappers.queryWrappers(record));
    }
}
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java
@@ -266,7 +266,7 @@
        for (Model model : modelList) {
            BasicTreeDto basicTreeDto = new BasicTreeDto();
            basicTreeDto.setLevel(BasicTreeEnums.MODEL_TYPE.getCode());
            basicTreeDto.setValue(String.valueOf(model.getId()));
            basicTreeDto.setValue(model.getModelName());
            basicTreeDto.setLabel(model.getModelName());
            basicTreeDto.setChildren(null);
            if(model.getProductId() != null) {
@@ -293,7 +293,7 @@
                Product::getObjectId,
                Collectors.mapping(product -> {
                    BasicTreeDto basicTreeDto = new BasicTreeDto();
                    basicTreeDto.setValue(String.valueOf(product.getId()));
                    basicTreeDto.setValue(product.getName());
                    basicTreeDto.setLabel(product.getName());
                    basicTreeDto.setLevel(BasicTreeEnums.PRODUCT_TYPE.getCode());
                    basicTreeDto.setChildren(productModelMap.get(product.getId()));
@@ -303,8 +303,9 @@
        // å¯¹æ£€æµ‹å¯¹è±¡å…ˆæŒ‰ç…§å®žéªŒå®¤åœ¨æŒ‰ç…§æ£€æŸ¥å¯¹è±¡ç±»åˆ«åˆ†ç±»
        List<BasicTreeDto> testProjectBasicTreeList = structureTestObjectList.stream().map(structureTestObject -> {
            BasicTreeDto basicTreeDto = new BasicTreeDto();
            basicTreeDto.setValue(String.valueOf(structureTestObject.getId()));
            basicTreeDto.setValue(structureTestObject.getSpecimenName());
            basicTreeDto.setLabel(structureTestObject.getSpecimenName());
            basicTreeDto.setLevel(BasicTreeEnums.STRUCTURE_TEST_OBJECT_TYPE.getCode());
            List<BasicTreeDto> children = new ArrayList<>();
            if (!CollectionUtils.isEmpty(productMap.get(structureTestObject.getId()))) {
                children.addAll(productMap.get(structureTestObject.getId()));
basic-server/src/main/resources/mapper/StandardProductListMapper.xml
@@ -29,7 +29,7 @@
    </resultMap>
    <!-- æ‰¹é‡æ·»åŠ æ£€æµ‹æ ‡å‡† -->
    <insert id="saveBatchProductLists" keyProperty="id" useGeneratedKeys="true">
    <insert id="saveBatchProductLists">
        INSERT INTO standard_product_list (id, inspection_item, inspection_item_en, inspection_item_subclass, inspection_item_subclass_en, factory, laboratory, sample_type, sample, model, son_laboratory, unit, price, man_hour, man_hour_group, inspection_item_type, inspection_value_type, checkout_number, section, cores, method, method_s, man_day, bsm, ask, tell, standard_method_list_id, template_id, state, dic, tree, structure_item_parameter_id, inspection_item_class, inspection_item_class_en, radius, radius_list, rates, sort, conductor_material, conductor_type)
        VALUES
        <foreach item="item" collection="productLists" open="(" separator="),(" close=")">
basic-server/src/main/resources/mapper/StandardProductListUpdateRecordMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
<?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.basic.mapper.StandardProductListUpdateRecordMapper">
    <select id="standardProductListRecordPage" resultType="com.ruoyi.basic.pojo.StandardProductListUpdateRecord">
        select * from standard_product_list_update_record
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>