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