From 80b2025993331ac057b9a63210be2cb6ba124806 Mon Sep 17 00:00:00 2001
From: “zhuo” <“zhuo@itcast.cn”>
Date: 星期三, 09 八月 2023 17:55:19 +0800
Subject: [PATCH] 8-9提交代码

---
 inspection-server/src/main/resources/mapper/ReportMapper.xml                                 |    3 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java |   61 ++++++++++++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java    |   49 +++++++++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java          |   26 +++++
 sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java                        |   12 ++
 inspection-server/src/main/resources/mapper/PlanMapper.xml                                   |   42 ++++++++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/PlanMapper.java            |   14 ++
 sys/src/main/resources/application-dev.yml                                                   |    4 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/PlanVo.java               |   60 ++++++++++++
 9 files changed, 267 insertions(+), 4 deletions(-)

diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java
new file mode 100644
index 0000000..6768f4c
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java
@@ -0,0 +1,49 @@
+package com.yuanchu.limslaboratory.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.pojo.vo.PlanVo;
+import com.yuanchu.limslaboratory.service.PlanService;
+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.format.annotation.DateTimeFormat;
+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;
+import java.util.*;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-09
+ */
+@Api(tags = "妫�楠屾ā鍧�-->妫�楠岃鍒�")
+@RestController
+@RequestMapping("/plan")
+public class PlanController {
+
+    @Resource
+    private PlanService planService;
+
+
+    @ApiOperation("鏌ヨ妫�楠岃鍒�")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "deviceId", value = "璁惧鍚嶇ОId", dataTypeClass = Integer.class),
+            @ApiImplicitParam(name = "beginTime", value = "妫�楠屽紑濮嬫椂闂�", dataTypeClass = Date.class),
+            @ApiImplicitParam(name = "endTime", value = "妫�楠岀粨鏉熸椂闂�", dataTypeClass = Date.class),
+            @ApiImplicitParam(name = "userId", value = "妫�楠屼汉", dataTypeClass = Integer.class)
+    })
+    @GetMapping("/selectAllPlan")
+    public Result selectAllPlan(Integer deviceId, @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime, Integer userId) {
+        List<PlanVo> planVoList = planService.selectAllPlan(deviceId, beginTime, endTime, userId);
+        return Result.success(planVoList);
+    }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/PlanMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/PlanMapper.java
new file mode 100644
index 0000000..356a29d
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/PlanMapper.java
@@ -0,0 +1,14 @@
+package com.yuanchu.limslaboratory.mapper;
+
+import com.yuanchu.limslaboratory.pojo.vo.PlanVo;
+
+import java.util.Date;
+import java.util.List;
+
+public interface PlanMapper {
+    /**
+     * 鏌ヨ妫�楠岃鍒�
+     * @return
+     */
+    List<PlanVo> selectAllPlan(Integer deviceId, Date beginTime, Date endTime, Integer userId);
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/PlanVo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/PlanVo.java
new file mode 100644
index 0000000..b876d6a
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/PlanVo.java
@@ -0,0 +1,60 @@
+package com.yuanchu.limslaboratory.pojo.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 妫�楠岃鍒扸O
+ */
+@Data
+public class PlanVo {
+    @ApiModelProperty(value = "璁惧鍚嶇О")
+    @JsonSerialize
+    private String device;
+    @ApiModelProperty(value = "鏍峰搧鍚嶇О")
+    @JsonSerialize
+    private String samplename;
+    @ApiModelProperty(value = "鏍峰搧缂栧彿")
+    @JsonSerialize
+    private String sampleid;
+    @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
+    @JsonSerialize
+    private String modelandspecification;
+    @ApiModelProperty(value = "鍗曚綅")
+    @JsonSerialize
+    private String unit;
+    @ApiModelProperty(value = "鏁伴噺")
+    @JsonSerialize
+    private Integer amount;
+    @ApiModelProperty(value = "妫�楠岄」鐩�")
+    @JsonSerialize
+    private String checkproject;
+    @ApiModelProperty(value = "妫�楠屼汉")
+    @JsonSerialize
+    private String checker;
+    @ApiModelProperty(value = "璁″垝宸ユ湡")
+    @JsonSerialize
+    private Integer duration;
+    @ApiModelProperty(value = "妫�楠岃繘搴�0:鏈垎閰�, 50:妫�楠屼腑, 100:宸插畬鎴�")
+    @JsonSerialize
+    private Integer progress;
+    @ApiModelProperty(value = "璁″垝寮�濮嬫椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date starttime;
+    @ApiModelProperty(value = "璁″垝缁撴潫鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date finishtime;
+    @ApiModelProperty(value = "璁惧id")
+    @JsonSerialize
+    private Integer deviceId;
+    @ApiModelProperty(value = "妫�楠屼汉id")
+    @JsonSerialize
+    private Integer userId;
+
+    //鍒ゆ柇椤圭洰鐘舵��
+    private Integer state;
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java
new file mode 100644
index 0000000..205e0c8
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java
@@ -0,0 +1,26 @@
+package com.yuanchu.limslaboratory.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.pojo.vo.PlanVo;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-09
+ */
+public interface PlanService {
+    /**
+     * 鏌ヨ妫�楠岃鍒�
+     * @return
+     */
+    List<PlanVo> selectAllPlan(Integer deviceId, Date beginTime, Date endTime, Integer userId);
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
new file mode 100644
index 0000000..df39e9c
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
@@ -0,0 +1,61 @@
+package com.yuanchu.limslaboratory.service.impl;
+
+import com.yuanchu.limslaboratory.mapper.PlanMapper;
+import com.yuanchu.limslaboratory.pojo.vo.PlanVo;
+import com.yuanchu.limslaboratory.service.PlanService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-09
+ */
+@Service
+public class PlanServiceImpl implements PlanService {
+
+    @Resource
+    private PlanMapper planMapper;
+
+    /**
+     * 鏌ヨ妫�楠岃鍒�
+     *
+     * @return
+     */
+    @Override
+    public List<PlanVo> selectAllPlan(Integer deviceId, Date beginTime, Date endTime, Integer userId) {
+        //鑾峰彇鏁版嵁搴撴暟鎹�
+        List<PlanVo> planVos = planMapper.selectAllPlan(deviceId, beginTime, endTime, userId);
+        //娣诲姞璁″垝宸ユ湡鍜屾楠岃繘搴�
+        planVos.forEach(planVo -> {
+            //娣诲姞妫�楠岃繘搴�
+            //鍒ゆ柇鏄惁鏄凡瀹屾垚
+            if (planVo.getState() != null) {
+                planVo.setProgress(100);
+            }
+            //鍒ゆ柇鏄惁鏄湭鍒嗛厤
+            if (planVo.getCheckproject() == null) {
+                planVo.setProgress(0);
+            }
+            //鍒ゆ柇鏄惁鏄繘琛屼腑
+            if (planVo.getState() == null && planVo.getCheckproject() != null) {
+                planVo.setProgress(50);
+            }
+            //娣诲姞璁″垝宸ユ湡
+            if (planVo.getFinishtime() != null && planVo.getStarttime() != null) {
+                long startTimeInMillis = planVo.getStarttime().getTime();
+                long endTimeInMillis = planVo.getFinishtime().getTime();
+                long durationInMillis = endTimeInMillis - startTimeInMillis;
+                long duration = durationInMillis / (1000 * 60 * 60);
+                planVo.setDuration(Integer.valueOf((int) duration));
+            }
+        });
+        return planVos;
+    }
+}
diff --git a/inspection-server/src/main/resources/mapper/PlanMapper.xml b/inspection-server/src/main/resources/mapper/PlanMapper.xml
new file mode 100644
index 0000000..3f04caf
--- /dev/null
+++ b/inspection-server/src/main/resources/mapper/PlanMapper.xml
@@ -0,0 +1,42 @@
+<?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.PlanMapper">
+
+    <!--鏌ヨ妫�楠岃鍒�-->
+    <select id="selectAllPlan" resultType="com.yuanchu.limslaboratory.pojo.vo.PlanVo">
+        select i.equipment_name device,
+        im.name samplename,
+        im.code sampleid,
+        im.specifications modelandspecification,
+        im.unit unit,
+        im.num amount,
+        ip.name checkproject,
+        u.name checker,
+        ip.start_time starttime,
+        ip.end_time finishtime,
+        i.id deviceId,
+        u.id userId,
+        ip.test_state state
+        from instrument i
+        left join (select ip.*
+        from inspection_product ip
+        right join (select instrument_id, max(ip.end_time) t
+        from inspection_product ip
+        group by instrument_id) it
+        on ip.instrument_id = it.instrument_id and ip.end_time = it.t) ip
+        on i.id = ip.instrument_id
+        left join inspection_material im on im.id = ip.inspection_material_id
+        left join user u on u.id = ip.user_id
+        <where>
+            <if test="deviceId != null">
+                and i.id = #{deviceId}
+            </if>
+            <if test="userId != null">
+                and u.id = #{userId}
+            </if>
+            <if test="beginTime != null and endTime != null">
+                and ip.start_time between #{beginTime} and #{endTime}
+            </if>
+        </where>
+    </select>
+</mapper>
diff --git a/inspection-server/src/main/resources/mapper/ReportMapper.xml b/inspection-server/src/main/resources/mapper/ReportMapper.xml
index 54d2f39..2beac5c 100644
--- a/inspection-server/src/main/resources/mapper/ReportMapper.xml
+++ b/inspection-server/src/main/resources/mapper/ReportMapper.xml
@@ -39,6 +39,9 @@
         join inspection i on r.inspection_id = i.id
         join inspection_material im on i.id = im.inspection_id
         <where>
+            <if test="status == null">
+                and r.status in (0, 1)
+            </if>
             <if test="status != null">
                 and r.status = #{status}
             </if>
diff --git a/sys/src/main/resources/application-dev.yml b/sys/src/main/resources/application-dev.yml
index 7dc4eaa..559d340 100644
--- a/sys/src/main/resources/application-dev.yml
+++ b/sys/src/main/resources/application-dev.yml
@@ -40,8 +40,8 @@
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     driverClassName: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://localhost:3306/lims_laboratory?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
-    username: root
+    url: jdbc:mysql://192.168.110.209:3306/lims_laboratory?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
+    username: user
     password: 123456
     druid:
       #   Druid鏁版嵁婧愰厤缃�
diff --git a/sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java b/sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java
index 183445b..8d48ad9 100644
--- a/sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java
+++ b/sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java
@@ -1,10 +1,18 @@
 package com.yuanchu.limslaboratory;
+import com.yuanchu.limslaboratory.pojo.vo.PlanVo;
+import com.yuanchu.limslaboratory.service.PlanService;
 import com.yuanchu.limslaboratory.utils.MyUtil;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import javax.annotation.Resource;
+import java.util.List;
+
 @SpringBootTest
 class SysApplicationTests {
+
+    @Resource
+    private PlanService planService;
 
     @Test
     void contextLoads() {
@@ -14,8 +22,8 @@
     }
     @Test
     void TT() {
-        System.out.println(MyUtil.getTimeSixNumberCode("BG"));
-
+        List<PlanVo> planVos = planService.selectAllPlan(null, null, null, null);
+        planVos.forEach(System.out::println);
     }
 }
 

--
Gitblit v1.9.3