inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/HomeController.java
@@ -6,6 +6,8 @@ import com.yuanchu.limslaboratory.service.HomeService; import com.yuanchu.limslaboratory.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -55,4 +57,13 @@ StatisticsDataVo statisticsData =homeService.qualified(); return Result.success(statisticsData); } @ApiOperation("ç»è®¡") @ApiImplicitParams(value = { @ApiImplicitParam(name = "type", value = "1:æ¬å¨;2:æ¬æ;3:æ¬å¹´", dataTypeClass = Integer.class, required = true) }) @GetMapping("/turno") public Result turno(Integer type) { return Result.success(homeService.turno(type)); } } inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java
@@ -48,5 +48,11 @@ //计ç®åææåæ ¼ç Long qualifiedfin(Integer i); //æ¥è¯¢è¯¥æ¥æçåæææ£éªæ°é Integer getMaterByDay(String dayofWeek); //æ¥è¯¢è¯¥æ¥æçæåæ£éªæ°é Integer getFinByDay(String dayofWeek); } inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java
@@ -14,8 +14,7 @@ */ public interface InspectionProductMapper extends BaseMapper<InspectionProduct> { //æ ¹æ®é¡¹ç®idå°å·²æçæ£éªç»è®ºæ¹ä¸ºnull void upda(Integer id); //æ ¹æ®æ£éªåidæ¥è¯¢æ£éªé¡¹ç®çæ£éªç»æ List<Integer> getresult(Integer id); inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LineChartVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ package com.yuanchu.limslaboratory.pojo.vo; import lombok.Data; import java.util.ArrayList; import java.util.List; @Data public class LineChartVO { private List<String> xAxis = new ArrayList<>(); private List<LineSeriesVO> series = new ArrayList<>(); } inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LineSeriesVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.yuanchu.limslaboratory.pojo.vo; import lombok.Data; import java.util.ArrayList; import java.util.List; @Data public class LineSeriesVO { private String name; private List<Object> data =new ArrayList<>(); } inspection-server/src/main/java/com/yuanchu/limslaboratory/service/HomeService.java
@@ -1,5 +1,6 @@ package com.yuanchu.limslaboratory.service; import com.yuanchu.limslaboratory.pojo.vo.LineChartVO; import com.yuanchu.limslaboratory.pojo.vo.ProjectNumVo; import com.yuanchu.limslaboratory.pojo.vo.StatisticsDataVo; @@ -34,4 +35,11 @@ * @return */ StatisticsDataVo qualified(); /** * ç»è®¡ * @param type * @return */ LineChartVO turno(Integer type); } inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java
@@ -2,6 +2,8 @@ import com.yuanchu.limslaboratory.mapper.InspectionMapper; import com.yuanchu.limslaboratory.mapper.InspectionProductMapper; import com.yuanchu.limslaboratory.pojo.vo.LineChartVO; import com.yuanchu.limslaboratory.pojo.vo.LineSeriesVO; import com.yuanchu.limslaboratory.pojo.vo.ProjectNumVo; import com.yuanchu.limslaboratory.pojo.vo.StatisticsDataVo; import com.yuanchu.limslaboratory.service.HomeService; @@ -10,6 +12,12 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.YearMonth; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -95,6 +103,61 @@ return statisticsDataVo; } //ç»è®¡ @Override @Transactional(rollbackFor = Exception.class) public LineChartVO turno(Integer type) { LineChartVO lineChartVO = new LineChartVO(); List<LineSeriesVO> series = new ArrayList<>(); //æå»ºç¬¬ä¸ä¸ªlineSeriesVO1(åæææ£éªæ°é) LineSeriesVO lineSeriesVO1 = new LineSeriesVO(); lineSeriesVO1.setName("åæææ£éªæ°é"); //æå»ºç¬¬äºä¸ªlineSeriesVO2(æåæ£éªæ°é) LineSeriesVO lineSeriesVO2 = new LineSeriesVO(); lineSeriesVO2.setName("æåæ£éªæ°é"); //æå»ºç¬¬ä¸ä¸ªlineSeriesVO3(åææåæ ¼ç) LineSeriesVO lineSeriesVO3 = new LineSeriesVO(); lineSeriesVO3.setName("åææåæ ¼ç"); //æå»ºç¬¬å个lineSeriesVO4(æååæ ¼ç) LineSeriesVO lineSeriesVO4 = new LineSeriesVO(); lineSeriesVO4.setName("æååæ ¼ç"); List<Object> list1 = new ArrayList<>(); List<Object> list2 = new ArrayList<>(); List<Object> list3 = new ArrayList<>(); List<Object> list4 = new ArrayList<>(); switch (type) { case 1: /*æ¬å¨*/ List<String> dayofWeeks = getDayofWeeks(); lineChartVO.setXAxis(dayofWeeks); for (String dayofWeek : dayofWeeks) { //æ¥è¯¢è¯¥æ¥æçåæææ£éªæ°é Integer allMaterByDay = inspectionMapper.getMaterByDay(dayofWeek); list1.add(allMaterByDay); //æ¥è¯¢è¯¥æ¥æçæåæ£éªæ°é Integer allFinByDay = inspectionMapper.getFinByDay(dayofWeek); list2.add(allFinByDay); // } lineSeriesVO1.setData(list1); break; case 2: /*æ¬æ*/ List<String> dayofMonths = getDayofMonth(); lineChartVO.setXAxis(dayofMonths); break; case 3: /*æ¬å¹´*/ List<String> monthofYears = getMonthofYear(); lineChartVO.setXAxis(monthofYears); break; } series.add(lineSeriesVO1); series.add(lineSeriesVO2); series.add(lineSeriesVO3); series.add(lineSeriesVO4); lineChartVO.setSeries(series); return lineChartVO; } /*计ç®ç¾åæ¯*/ private BigDecimal getRadio(Integer all, Long num) { if (all.intValue() == 0) { @@ -105,4 +168,61 @@ BigDecimal divide = numBigDecimal.divide(allBigDecimal, 4, BigDecimal.ROUND_HALF_UP); return divide.multiply(new BigDecimal(100)); } /*è·åæ¬å¹´æä»½listéå*/ private List<String> getMonthofYear() { // è·åå½å年份 int year = YearMonth.now().getYear(); // å建æä»½å表 List<String> months = new ArrayList<>(); // æ·»å æä»½å°å表 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM"); for (int i = 1; i <= 12; i++) { YearMonth month = YearMonth.of(year, i); String monthString = month.format(formatter); months.add(monthString); } return months; } /*è·åæ¬ææ¥ä»½listéå*/ private List<String> getDayofMonth() { // è·åå½åæ¥æ LocalDate now = LocalDate.now(); // è·åå½åæä»½ YearMonth currentMonth = YearMonth.from(now); // è·å该æçå¤©æ° int daysInMonth = currentMonth.lengthOfMonth(); // åå»ºæ¥æå表 List<String> dates = new ArrayList<>(); // æ·»å æ¥æå°å表 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); for (int i = 1; i <= daysInMonth; i++) { LocalDate date = currentMonth.atDay(i); String dateString = date.format(formatter); dates.add(dateString); } return dates; } /*è·åæ¬å¨æ¥ä»½listéå*/ private List<String> getDayofWeeks() { // è·åå½åæ¥æ LocalDate now = LocalDate.now(); // è·åæ¬å¨ç第ä¸å¤©åæåä¸å¤© LocalDate startOfWeek = now.with(DayOfWeek.MONDAY); LocalDate endOfWeek = now.with(DayOfWeek.SUNDAY); // åå»ºæ¥æå表 List<String> dates = new ArrayList<>(); // æ·»å æ¥æå°å表 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); while (!startOfWeek.isAfter(endOfWeek)) { String dateString = startOfWeek.format(formatter); dates.add(dateString); startOfWeek = startOfWeek.plusDays(1); } return dates; } } inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
@@ -10,8 +10,10 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * <p> @@ -76,19 +78,22 @@ @Override @Transactional(rollbackFor = Exception.class) public String check(Integer id, String value) { //妿æ£éªå¼ä¸ä¸ºç©º if (StringUtils.isNotBlank(value)) { InspectionProduct inspectionProduct = inspectionProductMapper.selectById(id); //å¤ææ£æµå¼æ¯å¦æ»¡è¶³æ åå¼åå æ§å¼çè¦æ±,妿䏿»¡è¶³åæ£éªç»è®ºä¸ºä¸åæ ¼0 String required = inspectionProduct.getRequired();//æ åå¼ String internal = inspectionProduct.getInternal();//å æ§å¼ inspectionProduct.setTestValue(value); inspectionProduct.setTestState(checkValues(required, internal, value)); inspectionProductMapper.updateById(inspectionProduct); List<Integer> list = Arrays.stream(value.split(",")).map(s -> { int values = checkValues(required, internal, s); return values; }).collect(Collectors.toList()); if (list.contains(0)) { //å¦æå ¶ä¸ä¸ä¸ªæ£éªå¼ä¸åæ ¼åè¯¥é¡¹ç®æ£éªä¸åæ ¼ inspectionProduct.setTestState(0); } else { //妿æ£éªå¼ä¸ºç©º,å°åæçæ£éªç»è®ºè¦ç为null inspectionProductMapper.upda(id); inspectionProduct.setTestState(1); } inspectionProductMapper.updateById(inspectionProduct); return "æäº¤æå!"; } inspection-server/src/main/resources/mapper/InspectionMapper.xml
@@ -103,4 +103,22 @@ and inspection_status is null </if> </select> <!--æ¥è¯¢è¯¥æ¥æçåæææ£éªæ°é--> <select id="getMaterByDay" resultType="java.lang.Integer"> select count(id) from lims_laboratory.inspection where state = 1 and type = 0 and create_time = #{dayofWeek} </select> <!--æ¥è¯¢è¯¥æ¥æçæåæ£éªæ°é--> <select id="getFinByDay" resultType="java.lang.Integer"> select count(id) from lims_laboratory.inspection where state = 1 and type in (1, 2) and create_time = #{dayofWeek} </select> </mapper> inspection-server/src/main/resources/mapper/InspectionProductMapper.xml
@@ -1,12 +1,7 @@ <?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.InspectionProductMapper"> <update id="upda"> update lims_laboratory.inspection_product set test_state=null where id = #{id} and state = 1 </update> <!--æ ¹æ®æ£éªåidæ¥è¯¢æ£éªé¡¹ç®çæ£éªç»æ--> <select id="getresult" resultType="java.lang.Integer"> inspection-server/src/main/resources/mapper/PlanMapper.xml
@@ -16,6 +16,7 @@ <result property="unit" column="unit"/> <result property="required" column="required"/> <result property="internal" column="internal"/> <result property="test_value" column="test_value"/> <result property="testState" column="testState"/> <result property="checker" column="checker"/> <result property="instrumentname" column="instrumentname"/> @@ -33,6 +34,7 @@ ip.unit, required, internal, test_value, test_state testState, u.name checker, equipment_name instrumentname laboratory-server/src/main/resources/mapper/InstrumentMapper.xml
@@ -44,5 +44,6 @@ equipment_name name from lims_laboratory.instrument left join lims_laboratory.classify c on c.id = instrument.classify_id where conditions in(1,5) </select> </mapper>