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