¶Ô±ÈÐÂÎļþ |
| | |
| | | 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()); |
| | | } |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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; |
| | | } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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; |
| | | } |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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)); |
| | | } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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); |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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")); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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; |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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"; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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; |
| | | } |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?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> |
| | |
| | | |
| | | 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; |
| | |
| | | } |
| | | |
| | | @ApiOperation("æ´æ°è®¡éç»æ") |
| | | public Result<?> updateMetricalInformationResult(String code,Integer result){ |
| | | return null; |
| | | @PostMapping("/updateMetricalInformationInfo") |
| | | public Result<?> updateMetricalInformationInfo(@RequestBody UpdatedMetricalInformationDto dto){ |
| | | return Result.success(metricalInformationService.updateMetricalInformationInfo(dto)); |
| | | } |
| | | |
| | | } |
| | |
| | | @ApiModel(value="MeteringPlanAndInfoAndIns对象", description="") |
| | | public class MetricalInfoAndIns extends Instrument implements Serializable { |
| | | |
| | | private Long imId; |
| | | |
| | | @ApiModelProperty(value = "计éç¼å·", example = "1", required = true) |
| | | private String code; |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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; |
| | | } |
| | |
| | | |
| | | 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; |
| | |
| | | Integer deleteMetricalInformation(Integer metricalInformationId); |
| | | |
| | | Integer updateMetricalInformation(MetricalInformation metricalInformation, MultipartFile file); |
| | | |
| | | boolean updateMetricalInformationInfo(UpdatedMetricalInformationDto dto); |
| | | } |
| | |
| | | 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; |
| | |
| | | } |
| | | 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; |
| | | } |
| | | } |
| | |
| | | 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, |
| | |
| | | (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 |
| | |
| | | <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"> |
| | |
| | | <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> |
| | | |