Fixiaobai
2023-08-21 b7586ba9b38136c7af8ca9b31f92f570a0b039c2
计量管理-》计量修改                                  试验管理-》合格率统计
已修改5个文件
已添加12个文件
645 ■■■■■ 文件已修改
framework/src/main/java/com/yuanchu/limslaboratory/utils/ArrayListUtil.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/com/yuanchu/limslaboratory/utils/JsonUtil.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/com/yuanchu/limslaboratory/utils/MapUtil.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectQualificationRateDto.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SeriesDto.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdatedMetricalInformationDto.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MetricalInformationService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/com/yuanchu/limslaboratory/utils/ArrayListUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,128 @@
package com.yuanchu.limslaboratory.utils;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * @Author å¼ å®¾
 */
public class ArrayListUtil {
    /**
     * å•值集合去重
     * @param objList
     * @param <T>
     * @return
     */
    public static <T> List<T> singleValueDistinct(List<T>objList){
        return  objList.stream().distinct().collect(Collectors.toList());
    }
    /**
     * å•值集合比较 ä¸»é›†åˆä¸­ä¸Žæ¬¡é›†åˆä¸ç›¸ç­‰æ•°æ®
     * @param mainList ä¸»é›†åˆ
     * @param secondaryList æ¬¡è¦é›†åˆ
     * @param <T>
     * @return ä¸»é›†åˆä¸­è·Ÿæ¬¡è¦é›†åˆä¸ç›¸ç­‰çš„æ•°æ®
     */
    public static <T> List<T> compareNotEqualListBySingleValue(List<T>mainList,List<T>secondaryList){
        return mainList.stream().filter(item -> !secondaryList.stream()
                        .map(e -> e).distinct().collect(Collectors.toList())
                        .contains(item))
                .collect(Collectors.toList());
    }
    /**
     * å•值集合比较 ä¸»é›†åˆä¸­ä¸Žæ¬¡é›†åˆç›¸ç­‰æ•°æ®
     * @param mainList ä¸»é›†åˆ
     * @param secondaryList æ¬¡è¦é›†åˆ
     * @param <T>
     * @return ä¸»é›†åˆä¸­è·Ÿæ¬¡è¦é›†åˆä¸ç›¸ç­‰çš„æ•°æ®
     */
    public static <T> List<T> compareEqualListBySingleValue(List<T>mainList,List<T>secondaryList){
        return mainList.stream().filter(item -> secondaryList.stream()
                        .map(e -> e).collect(Collectors.toList())
                        .contains(item))
                .collect(Collectors.toList());
    }
    /**
     * å•值集合合并
     * @param isDistinct
     * @param values
     * @param <T>
     * @return
     */
    @SafeVarargs
    public static <T> List<T> mergeListBySingleValue(boolean isDistinct, List<T>... values){
        //去重合并
        if (isDistinct){
            return Stream.of(values).flatMap(Collection::stream).distinct().collect(Collectors.toList());
        }
        return Stream.of(values).flatMap(Collection::stream).collect(Collectors.toList());
    }
    /**
     * å•个对象集合根据对象属性去重集合
     * @param keyExtractor
     * @param objects
     * @param <T>
     * @return
     */
    public static <T> List<T> oneObjectsDistinctByProperty(Function<? super T, ?> keyExtractor,List<T> objects){
        List<T> newList = new ArrayList<>();
        objects.stream().filter(distinctByKey(keyExtractor))  //filter保留true的值
                .forEach(newList::add);
        return newList;
    }
    /**
     * å¤šå¯¹è±¡é›†åˆåˆå¹¶æ ¹æ®å±žæ€§åŽ»é‡
     * @param objects
     * @param <T>
     * @return
     */
    @SafeVarargs
    public static <T> List<T> mergeListByObjectsDistinct(Function<? super T, ?> keyExtractor,List<T>... objects){
        List<T> tList = mergeListByObjects(objects);
        return oneObjectsDistinctByProperty(keyExtractor,tList);
    }
    /**
     * å¤šå¯¹è±¡é›†åˆåˆå¹¶æ— éœ€åŽ»é‡ é‡è½½
     * @param objects
     * @param <T>
     * @return
     */
    @SafeVarargs
    public static <T> List<T> mergeListByObjectsDistinct(List<T>... objects){
        return mergeListByObjects(objects);
    }
    private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor)  {
        Map<Object,Boolean> seen = new ConcurrentHashMap<>();
        //putIfAbsent方法添加键值对,如果map集合中没有该key对应的值,则直接添加,并返回null,如果已经存在对应的值,则依旧为原来的值。
        //如果返回null表示添加数据成功(不重复),不重复(null==null :TRUE)
        return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
    }
    /**
     * å¯¹è±¡é›†åˆåˆå¹¶
     * @param objects
     * @param <T>
     * @return
     */
    @SafeVarargs
    private static <T> List<T> mergeListByObjects(List<T>... objects){
        return Stream.of(objects).flatMap(Collection::stream).collect(Collectors.toList());
    }
}
framework/src/main/java/com/yuanchu/limslaboratory/utils/JsonUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
package com.yuanchu.limslaboratory.utils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import java.text.SimpleDateFormat;
/**
 * @Author å¼ å®¾
 */
public class JsonUtil {
    private static ObjectMapper JSON_MAPPER = new ObjectMapper().disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
    static {
        JSON_MAPPER.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
        JSON_MAPPER.registerModule(new JavaTimeModule());
    }
    /**
     * json转换对应实体
     * @param json
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T jsonToPojo(String json, Class<T> clazz){
        T t=null;
        try {
            t=JSON_MAPPER.readValue(json,clazz);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return t;
    }
    /**
     * å®žä½“转换成json字符
     * @param t
     * @param <T>
     * @return
     */
    public static <T> String jsonToString(T t){
        String result=null;
        try {
            result=JSON_MAPPER.writeValueAsString(t);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return result;
    }
}
framework/src/main/java/com/yuanchu/limslaboratory/utils/MapUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package com.yuanchu.limslaboratory.utils;
import org.apache.commons.lang3.ArrayUtils;
import java.util.Iterator;
import java.util.Map;
/**
 * @Author å¼ å®¾
 */
public class MapUtil{
    /**
     * Map中根据key批量删除键值对
     * @param map
     * @param excludeKeys
     * @param <K>
     * @param <V>
     * @return
     */
    public static <K, V> Map removeEntries(Map<K, V> map, K[] excludeKeys) {
        Iterator<K> iterator = map.keySet().iterator();
        while (iterator.hasNext()) {
            K key = iterator.next();
            // å¦‚æžœkey åˆšå¥½åœ¨è¦æŽ’除的key的范围中
            if (ArrayUtils.contains(excludeKeys, key)) {
                iterator.remove();
                map.remove(key);
            }
        }
        return map;
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package com.yuanchu.limslaboratory.controller;
import com.yuanchu.limslaboratory.pojo.Dto.SelectQualificationRateDto;
import com.yuanchu.limslaboratory.service.QualificationRateStatisticsService;
import com.yuanchu.limslaboratory.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/21
 */
@Api(tags = "试验管理-->合格率统计")
@RequestMapping("/qualificationRate")
@RestController
public class QualificationRateStatisticsController {
    @Resource
    private QualificationRateStatisticsService service;
    @ApiOperation("查询申请物料单供应商列表")
    @GetMapping("/getSupplierList")
    public Result<?> getSupplierList() {
        return Result.success(service.getSupplierList());
    }
    @ApiOperation("查询检验样品合格率统计")
    @GetMapping("/getTestSampleStatistics")
    public Result<?> getTestSampleStatistics(SelectQualificationRateDto dto){
        return Result.success(service.getTestSampleStatistics(dto));
    }
    @ApiOperation("查询供应商不合格统计次数")
    @GetMapping("/getSupplierNoPassStatistics")
    public Result<?> getSupplierNoPassStatistics(SelectQualificationRateDto dto){
        return Result.success(service.getSupplierNoPassStatistics(dto));
    }
    @ApiOperation("查询不合格项目统计")
    @GetMapping("/getNoPassProjectStatistics")
    public Result<?> getNoPassProjectStatistics(SelectQualificationRateDto dto){
        return Result.success(service.getNoPassProjectStatistics(dto));
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.yuanchu.limslaboratory.mapper;
import com.yuanchu.limslaboratory.pojo.Dto.SelectQualificationRateDto;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/21
 */
@Repository
public interface QualificationRateStatisticsMapper {
    @MapKey("id")
    List<Map<String, Object>>selectSupplierByCondition(@Param("dto") SelectQualificationRateDto dto);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.yuanchu.limslaboratory.pojo.Dto;
import com.yuanchu.limslaboratory.utils.JackSonUtil;
import com.yuanchu.limslaboratory.utils.JsonUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/21
 */
@Component
@Slf4j
public class MapHandlerDto {
    public static  String comparingBySupplier(Object o){
        Map map= JsonUtil.jsonToPojo(JsonUtil.jsonToString(o),Map.class);
        return String.valueOf(map.get("supplier"));
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectQualificationRateDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
package com.yuanchu.limslaboratory.pojo.Dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/21
 */
@Data
@ApiModel(value="查询合格率对象", description="")
public class SelectQualificationRateDto implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * å¼€å§‹æ—¶é—´
     */
    @ApiModelProperty(value = "开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date beginDate;
    /**
     * ç»“束时间
     */
    @ApiModelProperty(value = "结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endDate;
    /***
     * ç±»åž‹
     */
    @ApiModelProperty(value = "检验类型")
    private Integer type;
    /**
     * ä¾›åº”商
     */
    @ApiModelProperty(value = "供应商")
    private String supplier;
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SeriesDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
package com.yuanchu.limslaboratory.pojo.Dto;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/21
 */
@Data
public class SeriesDto implements Serializable {
    private String name;
    private List<Long> data;
    private String type;
    private String stack;
    public SeriesDto(String name, List<Long> data) {
        this.name = name;
        this.data = data;
        this.type = "bar";
        this.stack = "x";
    }
    public SeriesDto(String name) {
        this.name = name;
        this.type = "bar";
        this.stack = "x";
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.yuanchu.limslaboratory.service;
import com.yuanchu.limslaboratory.pojo.Dto.SelectQualificationRateDto;
import com.yuanchu.limslaboratory.pojo.InspectionMaterial;
import java.util.List;
import java.util.Map;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/21
 */
public interface QualificationRateStatisticsService {
    /**
     * èŽ·å–ç”³è¯·ç‰©æ–™å•ä¸‹æ‰€æœ‰ä¾›åº”å•†åˆ—è¡¨
     * @return
     */
    List<InspectionMaterial> getSupplierList();
    Map<String, Object> getTestSampleStatistics(SelectQualificationRateDto dto);
    Map<String, Object> getSupplierNoPassStatistics(SelectQualificationRateDto dto);
    Map<String, Object> getNoPassProjectStatistics(SelectQualificationRateDto dto);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,101 @@
package com.yuanchu.limslaboratory.service.impl;
import cn.hutool.json.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yuanchu.limslaboratory.mapper.InspectionMaterialMapper;
import com.yuanchu.limslaboratory.mapper.QualificationRateStatisticsMapper;
import com.yuanchu.limslaboratory.pojo.Dto.MapHandlerDto;
import com.yuanchu.limslaboratory.pojo.Dto.SelectQualificationRateDto;
import com.yuanchu.limslaboratory.pojo.Dto.SeriesDto;
import com.yuanchu.limslaboratory.pojo.InspectionMaterial;
import com.yuanchu.limslaboratory.service.QualificationRateStatisticsService;
import com.yuanchu.limslaboratory.utils.ArrayListUtil;
import com.yuanchu.limslaboratory.utils.JackSonUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/21
 */
@Service
@Slf4j
public class QualificationRateStatisticsServiceImpl implements QualificationRateStatisticsService {
    @Resource
    private InspectionMaterialMapper inspectionMaterialMapper;
    @Resource
    private QualificationRateStatisticsMapper qualificationRateStatisticsMapper;
    @Override
    public List<InspectionMaterial> getSupplierList() {
        QueryWrapper<InspectionMaterial> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().select(InspectionMaterial::getSupplier)
                .eq(InspectionMaterial::getState, 1).groupBy(InspectionMaterial::getSupplier);
        return inspectionMaterialMapper.selectList(queryWrapper);
    }
    @Override
    public Map<String, Object> getTestSampleStatistics(SelectQualificationRateDto dto) {
        System.out.println(dto);
        return null;
    }
    @Override
    public Map<String, Object> getSupplierNoPassStatistics(SelectQualificationRateDto dto) {
        Map<String, Object> allMap = new HashMap<>(16);
        List<Map<String, Object>> mapList = qualificationRateStatisticsMapper.selectSupplierByCondition(dto);
        mapList.forEach(System.out::println);
        System.out.println("=================================");
        //去重取出供应商
        List<Map<String, Object>> supplierDistinct = ArrayListUtil.oneObjectsDistinctByProperty(MapHandlerDto::comparingBySupplier, mapList);
        List<String> supplierList = new ArrayList<String>();
        supplierDistinct.forEach(l -> {
            supplierList.add(String.valueOf(l.get("supplier")));
        });
        allMap.put("xAxis", supplierList);
        List<SeriesDto>seriesDtoList=new ArrayList<SeriesDto>(2);
        SeriesDto seriesDto2=new SeriesDto("不合格数量");
        SeriesDto seriesDto=new SeriesDto("合格数量");
        // å–出对应合格数量不合格数量
        List<Long>pass=new ArrayList<>();
        List<Long>noPass=new ArrayList<>();
        AtomicLong integerPass=new AtomicLong(0L);
        AtomicLong integerNoPass=new AtomicLong(0L);
        supplierList.forEach(s -> {
            mapList.stream()
                    .filter(l -> Objects.equals(l.get("supplier"), s))
                    .forEach(l -> {
                        if(Objects.equals(l.get("inspectionStatus"),1)){
                            integerPass.incrementAndGet();
                        }else {
                            integerNoPass.incrementAndGet();
                        }
                    });
            pass.add(integerPass.get());
            noPass.add(integerNoPass.get());
            integerNoPass.set(0L);
            integerPass.set(0L);
        });
        seriesDto.setData(pass);
        seriesDto2.setData(noPass);
        seriesDtoList.add(seriesDto);
        seriesDtoList.add(seriesDto2);
        System.out.println("数量=======>");
        System.out.println(seriesDtoList);
        return null;
    }
    @Override
    public Map<String, Object> getNoPassProjectStatistics(SelectQualificationRateDto dto) {
        return null;
    }
}
inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
<?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.yuanchu.limslaboratory.mapper.QualificationRateStatisticsMapper">
    <select id="selectSupplierByCondition" resultType="java.util.Map">
        SELECT i.id,
        i.type,
        im.`name`,
        im.supplier,
        i.inspection_status inspectionStatus,
        i.start_time startTime,
        i.end_time endTime
        FROM inspection i
        INNER JOIN inspection_material im ON i.id = im.inspection_id
        where (i.state = 1 AND TRUE = IFNULL(i.inspection_status, FALSE))
        <if test="dto.beginDate!=null and dto.endDate!=null">
            DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
            AND #{dto.endDate}
            AND DATE_FORMAT( i.start_time, '%Y-%m-%d' )>= #{dto.beginDate}
        </if>
        <if test="dto.type!=null">
            and i.type=#{dto.type}
        </if>
        <if test="dto.supplier!=null and dto.supplier!=''">
            and im.supplier=#{dto.supplier}
        </if>
    </select>
</mapper>
laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java
@@ -2,6 +2,7 @@
import com.yuanchu.limslaboratory.pojo.MetricalInformation;
import com.yuanchu.limslaboratory.pojo.dto.UpdateMetricalInformationDto;
import com.yuanchu.limslaboratory.pojo.dto.UpdatedMetricalInformationDto;
import com.yuanchu.limslaboratory.service.MetricalInformationService;
import com.yuanchu.limslaboratory.service.UserService;
import com.yuanchu.limslaboratory.utils.JackSonUtil;
@@ -89,8 +90,9 @@
    }
    @ApiOperation("更新计量结果")
    public Result<?> updateMetricalInformationResult(String code,Integer result){
        return null;
    @PostMapping("/updateMetricalInformationInfo")
    public Result<?> updateMetricalInformationInfo(@RequestBody UpdatedMetricalInformationDto dto){
        return Result.success(metricalInformationService.updateMetricalInformationInfo(dto));
    }
}
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java
@@ -21,6 +21,8 @@
@ApiModel(value="MeteringPlanAndInfoAndIns对象", description="")
public class MetricalInfoAndIns extends Instrument implements Serializable {
    private Long imId;
    @ApiModelProperty(value = "计量编号", example = "1", required = true)
    private String code;
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdatedMetricalInformationDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.yuanchu.limslaboratory.pojo.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;
import java.io.Serializable;
import java.util.Date;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/21
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "UpdatedMetricalInformationDto对象", description = "")
public class UpdatedMetricalInformationDto implements Serializable {
 @ApiModelProperty(value = "主键", example = "1", required = true)
 private Integer id;
 @ApiModelProperty(value = "编码", example = "1", required = true)
 private String code;
 @ApiModelProperty(value = "结果", example = "1", required = true)
 private Integer result;
 @ApiModelProperty(value = "计量日期", example = "1", required = true)
 @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
 @DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE_TIME)
 private Date date;
 @ApiModelProperty(value = "不确定度", example = "1", required = true)
 private String uncertainty;
 @ApiModelProperty(value = "性能指标", example = "1", required = true)
 private String performanceIndex;
 @ApiModelProperty(value = "备注", example = "1", required = true)
 private String remarks;
 //@ApiModelProperty(value = "文件", example = "1", required = true)
 //private MultipartFile[] file;
 //@ApiModelProperty(value = "有效周期", example = "1", required = true)
 //private String termValidity;
}
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MetricalInformationService.java
@@ -2,6 +2,7 @@
import com.yuanchu.limslaboratory.pojo.MetricalInformation;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.limslaboratory.pojo.dto.UpdatedMetricalInformationDto;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@@ -24,4 +25,6 @@
    Integer deleteMetricalInformation(Integer metricalInformationId);
    Integer updateMetricalInformation(MetricalInformation metricalInformation, MultipartFile file);
    boolean updateMetricalInformationInfo(UpdatedMetricalInformationDto dto);
}
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java
@@ -1,9 +1,11 @@
package com.yuanchu.limslaboratory.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.yuanchu.limslaboratory.pojo.MetricalInformation;
import com.yuanchu.limslaboratory.mapper.MetricalInformationMapper;
import com.yuanchu.limslaboratory.pojo.dto.UpdatedMetricalInformationDto;
import com.yuanchu.limslaboratory.service.MetricalInformationService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.limslaboratory.utils.FileSaveUtil;
@@ -68,4 +70,20 @@
        }
        return metricalInformationMapper.updateById(metricalInformation);
    }
    @Override
    public boolean updateMetricalInformationInfo(UpdatedMetricalInformationDto dto) {
        System.out.println(dto);
        MetricalInformation info = new MetricalInformation();
        info.setId(dto.getId());
        info.setRemarks(dto.getRemarks());
        info.setPerformanceIndex(dto.getPerformanceIndex());
        info.setResult(dto.getResult());
        info.setUncertainty(dto.getUncertainty());
        info.setEndDate(dto.getDate());
        info.setUpdateTime(DateUtil.date());
        System.out.println(info);
        //文件滤过
        return metricalInformationMapper.updateById(info)>0;
    }
}
laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
@@ -77,14 +77,22 @@
               im.imName                                           imName,
               im.create_time                                      imCreateTime,
               im.measurement_unit                                 imUnit,
               im.`code`                                           imCode
               im.`code`                                           imCode,
               im.id                                                imId,
               im.uncertainty                                       uncertainty ,
               im.performance_index                                  performanceIndex ,
               im.remarks                                           remarks
        FROM metering_plan m
                 LEFT JOIN `user` u ON m.create_Person = u.id
                 LEFT JOIN (
            SELECT i.equipment_code,
                   i.equipment_name,
                   i.measuring_range,
                   im.id,
                   i.term_validity,
                   im.uncertainty,
                   im.performance_index,
                   im.remarks,
                   im.result,
                   im.end_date,
                   (SELECT NAME FROM USER WHERE id = im.user_id) imName,
@@ -114,7 +122,11 @@
               (SELECT NAME FROM USER WHERE id = im.user_id) imName,
               im.create_time                                imCreateTime,
               im.measurement_unit                           imUnit,
               im.`code`                                     imCode
               im.`code`                                     imCode,
               im.id                                            imId,
               im.uncertainty                                       uncertainty ,
               im.performance_index                                  performanceIndex ,
               im.remarks                                           remarks
        FROM metrical_information im,
             metering_plan m,
             instrument i
@@ -144,6 +156,10 @@
        <result property="measuringRange" column="measuringRange"/>
        <result property="equipmentName" column="equipmentName"/>
        <result property="equipmentCode" column="equipmentCode"/>
        <result property="imId" column="imId"/>
        <result property="performanceIndex" column="performanceIndex"/>
        <result property="uncertainty" column="uncertainty"/>
        <result property="remarks" column="remarks"/>
    </resultMap>
    <resultMap id="measureInsAndPlanMap" type="meteringPlanAndInfoAndIns">
@@ -166,6 +182,10 @@
            <result property="measuringRange" column="measuringRange"/>
            <result property="equipmentName" column="equipmentName"/>
            <result property="equipmentCode" column="equipmentCode"/>
            <result property="imId" column="imId"/>
            <result property="performanceIndex" column="performanceIndex"/>
            <result property="uncertainty" column="uncertainty"/>
            <result property="remarks" column="remarks"/>
        </collection>
    </resultMap>