From b7586ba9b38136c7af8ca9b31f92f570a0b039c2 Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期一, 21 八月 2023 18:02:35 +0800 Subject: [PATCH] 计量管理-》计量修改 试验管理-》合格率统计 --- laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java | 2 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java | 25 ++ laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml | 24 ++ framework/src/main/java/com/yuanchu/limslaboratory/utils/MapUtil.java | 36 +++ laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java | 18 + inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SeriesDto.java | 32 ++ inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectQualificationRateDto.java | 52 ++++ inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java | 101 +++++++++ inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml | 27 ++ inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java | 22 ++ framework/src/main/java/com/yuanchu/limslaboratory/utils/ArrayListUtil.java | 128 +++++++++++ inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java | 22 ++ laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MetricalInformationService.java | 3 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java | 50 ++++ laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java | 6 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdatedMetricalInformationDto.java | 43 +++ framework/src/main/java/com/yuanchu/limslaboratory/utils/JsonUtil.java | 54 ++++ 17 files changed, 641 insertions(+), 4 deletions(-) diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/ArrayListUtil.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/ArrayListUtil.java new file mode 100644 index 0000000..760e5c7 --- /dev/null +++ b/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鏂规硶娣诲姞閿�煎锛屽鏋渕ap闆嗗悎涓病鏈夎key瀵瑰簲鐨勫�硷紝鍒欑洿鎺ユ坊鍔狅紝骞惰繑鍥瀗ull锛屽鏋滃凡缁忓瓨鍦ㄥ搴旂殑鍊硷紝鍒欎緷鏃т负鍘熸潵鐨勫�笺�� + //濡傛灉杩斿洖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()); + } + + +} diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/JsonUtil.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/JsonUtil.java new file mode 100644 index 0000000..27b1f82 --- /dev/null +++ b/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; + } + + /** + * 瀹炰綋杞崲鎴恓son瀛楃 + * @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; + } + +} diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/MapUtil.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/MapUtil.java new file mode 100644 index 0000000..072aadf --- /dev/null +++ b/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涓牴鎹甼ey鎵归噺鍒犻櫎閿�煎 + * @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 鍒氬ソ鍦ㄨ鎺掗櫎鐨刱ey鐨勮寖鍥翠腑 + if (ArrayUtils.contains(excludeKeys, key)) { + iterator.remove(); + map.remove(key); + } + } + return map; + } +} + diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java new file mode 100644 index 0000000..4f3c981 --- /dev/null +++ b/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)); + } + +} diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java new file mode 100644 index 0000000..590dc28 --- /dev/null +++ b/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); + + +} diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java new file mode 100644 index 0000000..03c894f --- /dev/null +++ b/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")); + } +} diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectQualificationRateDto.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectQualificationRateDto.java new file mode 100644 index 0000000..29d0c71 --- /dev/null +++ b/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; + + +} diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SeriesDto.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SeriesDto.java new file mode 100644 index 0000000..1474065 --- /dev/null +++ b/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"; + } +} diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java new file mode 100644 index 0000000..35640c3 --- /dev/null +++ b/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); +} diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java new file mode 100644 index 0000000..dea8314 --- /dev/null +++ b/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; + } + + +} diff --git a/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml b/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml new file mode 100644 index 0000000..754f647 --- /dev/null +++ b/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> \ No newline at end of file diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java index fa11132..cabf979 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java +++ b/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)); } } diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java index a63535e..ff44554 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java +++ b/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; diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdatedMetricalInformationDto.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdatedMetricalInformationDto.java new file mode 100644 index 0000000..1202cf4 --- /dev/null +++ b/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; +} diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MetricalInformationService.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MetricalInformationService.java index eb8ad69..04ad32b 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MetricalInformationService.java +++ b/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); } diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java index c52e053..ae2dc00 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java +++ b/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; + } } diff --git a/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml b/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml index f1af9c6..1a7b226 100644 --- a/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml +++ b/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> -- Gitblit v1.9.3